こんにちはmasalifeです。
Accessの力を最大限に発揮させるためには、関数の知識が必要不可欠です。
僕が多くのシステム構築をしてきた経験から、
この関数は覚えといた方がいい
というものを順に紹介していきたいと思います。
今回紹介するのは、
IsNull関数
です。
式に無効なデータ(Null値)が含まれているかどうかを調べるときに使います。
IsNull関数は単独で使用するより、IIf関数と組み合わせて使用することが多いです。
関数を知っていても、どうやって使えばいいか分からないという方のために、
代表的な使用例も紹介したいと思います。
関数の感覚を掴んでくださいね。
IsNull関数とは?
microsoft-officeサポートでは次のように示されています。
【構文】
IsNull(expression)
*microsoft-officeサポートより引用
括弧内に数値式または文字列式を含む Variant を入れます。
括弧内に入れた式がNullの場合にTrue(-1)、それ以外の場合はFalse(0)を返します。
Nullとは何もない状態です。
実際にクエリでやってみて戻り値を確認してみましょう。
クエリでの活用
文字列式(フィールド)を指定する
テーブル【T_会員名簿】の【再確認パスワード】フィールドに空白のデータがあるため、クエリを使って戻り値を確認してみましょう。
IsNull関数の括弧内にフィールドを指定します。
【再確認パスワード】フィールドに空白のデータがあるため、括弧内には【再確認パスワード】フィールドを指定します。
赤枠の部分を入力します。
クエリを実行して戻り値を見てみましょう。
【再確認パスワード】にデータが入っていたら0(False)
【再確認パスワード】にデータが入っていなかったら-1(True)
が戻り値となっていることが分かります。
この戻り値を使用して、IIf関数と組み合わせると実用的になります。
IIf関数と組み合わせて使用する
テーブル【T_会員名簿】の【再確認パスワード】フィールドに空白のデータがある場合、「パスワード確認」と表示するフィールドを作成してみましょう。
IIf関数の引数にIsNull関数を入れます。
赤枠の部分を入力します。
IsNull([再確認パスワード])とした場合、【再確認パスワード】フィールドがNull
なら戻り値はTrue(-1)となります。
IIf構文で第一引数がTrueなら第二引数が戻り値となるので、
【再確認パスワード】フィールドがNullなら「パスワード要確認」という文字が表示
されることとなります。
IIf関数について詳しく知りたいという方はこちらへ
クエリを実行してみましょう。
正しく表示されていることが確認できます。
このようにIsNull関数はIIf関数と組み合わせて使用した方が実用的です。
フォームでの活用【必須項目の入力漏れをチェック】
IsNull関数とVBAを用いた簡単な入力フォームを作成してみましょう。
IsNull関数を使用して、入力漏れのチェックをする機能を作ります。
【登録】ボタンをクリックしたときに、再確認パスワードのテキストボックスが入力されているか、されていないかで処理を分岐します。
それでは作ってみましょう。
フォームをデザインビューで開いて、【登録】ボタンのプロパティシートを出します。
【イベント】タブにあるクリック時のコードビルダを選択します。
VBEに以下のコードを記述します。
再確認パスワードの入力が漏れていた場合はメッセージを出して、カーソルをテキストボックスに移動させています。
再確認パスワードが入力されていたらメッセージを出して、次のレコードに移動(登録完了)させています。
実際の入力フォームはもっと細かい制御が必要だと思いますが、IsNull関数を用いたシンプルな入力漏れチェック機能はこれで完成です。
さいごに
いかがだったでしょうか。何となくIsNull関数はこんなものと掴めていただけたでしょうか?
最後まで読んでいただいた方は空白=Nullとして理解してしまったかもしれませんが、
あくまでもNullは何も入っていない状態です。
別の表現をすると、
空白=Nullでもあれば空白≠Nullでもあります。
ここの部分はちょっと曲者なので、また別の記事で紹介したいと思います。
とりあえず、心の片隅にでも置いといてください。
最後まで読んでいただきありがとうございました。