IIf関数を使いこなす【Access】

こんにちはmasalifeです。

Accessの力を最大限に発揮させるためには、関数の知識が必要不可欠です。

僕が多くのシステム構築をしてきた経験から、

この関数は覚えといた方がいい

というものを順に紹介していきたいと思います。

今回紹介するのは、

IIf関数

です。

本当によく使います。

データ加工、システム構築、どちらにも対応できる万能関数です。

関数を知っていても、どうやって使えばいいか分からないという方のために、

代表的な使用例も紹介したいと思います。

関数の感覚を掴んでくださいね。

IIf関数とは?

microsoft-officeサポートでは次のように示されています。

【構文】

IIf( expr, truepart, falsepart

引数説明
expr 必ず指定します。評価する式です。
truepart必ず指定します。exprTrueの場合に返される値または式です。
falsepart必ず指定します。exprFalseの場合に返される値または式です。

分かりにくいですよね・・・

分かりやすく言い換えると、

引数説明
exprどういう条件で
truepartexprを満たした場合
falsepartexprを満たさなかった場合

といった感じになります。


では実際に次の関数を考えてみましょう。


[点数]が80点以上だったら、合格という文字を表示される。そうじゃなかったら、不合格という文字を表示させる。

関数となります。

イメージが付いたんじゃないですかね。

次は実際にAccessで活用するときの例を紹介したいと思います。

クエリでの活用

【条件を指定】表示させる文字を分岐させる

生徒ごとにテストの点数が格納されている【T_成績表】があります。

【T_成績表】

このデータを、

点数が80点以上だったら合格、80点未満だったら不合格

と加工します。

クエリでやってみましょう。


赤枠の部分を入力します。

補足すると、:(ダブルセミコロン)の前部分今回の場合は合否)は新しいフィールド名となります。

すでに使われている「生徒名」「点数」は使えないので注意が必要です。


クエリを実行して確認してみましょう。

80点以上なら合格、80点未満なら不合格と表示されていますね。

「合否」のフィールドも作成されています。

【条件を指定】して表示させる文字を分岐させることが出来ました。

【フィールド同士を比較】表示させる文字を分岐させる

会員ごとに登録されているパスワードと再確認パスワードが格納されている【T_会員名簿】があります。

【T_会員名簿】

このデータを、

[パスワード]と[再確認パスワード]が一致していたら○、異なっていたら×

と加工します。

赤枠の部分を入力します。

フィールド名は[ ]で囲うことを忘れないでください。


クエリを実行して確認してみましょう。

一致していたら○、異なっていたら×と表示されています。

異なるフィールドの数値を比較させたり、

フィールド同士の比較はよく使います。

考え方は同じなので、色々と試してみてください。

フォームでの活用【表示させる文字を分岐させる】

簡単な自己採点ツールがあります。

自己採点点数を入力して、

点数が80点以上だったら合格、80点未満だったら不合格

と合否判定に表示させるものです。

*自己採点点数が入力されていない場合、合否判定に「点数を入力」を表示させています。


フォームをデザインビューで開きます。

自己採点点数を入力させるテキストボックスの名前はtxt点数としてあります。

合否判定を表示させるテキストボックスのプロパティを確認してみましょう。

【データ】タブのコントロールソースでIIf関数が使用されていることが確認できます。

txt点数に入力されている値で表示を分岐させています。

*今回は自己採点点数が入力されていない場合、合否判定に「点数を入力」を表示させるために、IsNull関数やIIf関数内にIIf関数を入れています。

こちらに関してはまた別の記事で紹介したいと思います。


実際にツールを使ってみると、

点数によって、表示が合格・不合格と分岐しています。

さいごに

今回紹介した内容をちょっと変えるだけで、様々な場面で応用が効きます。

自分なりの使い方を模索しながら、ぜひマスターしてください。

やれることの幅が広がりますよ。

最後まで読んでいただきありがとうございました。