Access Nz関数は指定した値がNULLの時、設定した別の値を返します。
(NULL(ヌル)とは、「値が認識できない」「値が存在しない」という意味です。)
返す値は、バリアント型なので文字列・数値・日付などほぼ何でも返ります。
NULLになりそうな部分は、このNz関数を使用しエラーを回避するようにします。
Home Access関数
■ 構文
Nz(Value, ValueIfNull)
■ 引数
Value : (必須) バリアント型 (Variant) の変数を指定します
ValueIfNull : (省略可) ValueがNULLの場合に返す値をバリアント型 (Variant)で設定します
■ 変数がNULLかどうかチェック
n2=NULLなので、替わりに「123」が返りました
顧客ID=10 の初回来店日はNULLでないので、日付が返りました
顧客ID=11 の初回来店日はNULLなので、0が返り、「来店はありません」と表示されました。
■ Access VBA 実行コード
Option Compare Database
Private Sub コマンド0_Click()
Dim n1 As Variant
Dim n2 As Variant
Dim n3 As Variant
'変数がNULLならば置き換え
n2 = Null
n1 = Nz(n2, 123)
MsgBox "n1は " & n1
'データがNULLならば置き換え
n1 = Nz(DLookup("初回来店日", "顧客マスター", "顧客ID=10"), 0)
If n1 = 0 Then
MsgBox "顧客ID=10 の来店はありません"
Else
MsgBox "顧客ID=10 の初回来店日は " & n1
End If
n1 = Nz(DLookup("初回来店日", "顧客マスター", "顧客ID=11"), 0)
If n1 = 0 Then
MsgBox "顧客ID=11 の来店はありません"
Else
MsgBox "顧客ID=11 の初回来店日は " & n1
End If
End Sub