テーブル上のデータ型が日付/時刻型になっている場合、テーブルやクエリー、あるいはフォームからそのフィールドに数値や文字を入力しても、Accessが自動的にデータチェックを行ってくれるので、誤ったデータがテーブルに書き込まれることはありません。
しかし、VBAでInputBox$関数を使ってデータ入力を行うような場合、あるいはテーブルと連結されていないテキストボックスにデータ入力を行うような場合には、入力後にそのデータが日付あるいは時刻を表すものであるかどうかチェックしないと、その後の計算処理等でエラーを招く可能性があります。
そこで、「IsDate」関数を使うことによって、入力されたデータが日付/時刻型かどうかを事前に調べることができます。
Dim varInputData As Variant
Beep
'データの入力
varInputData = InputBox$("日付を入力してください!")
'データが日付かどうか調べる
If IsDate(varInputData) Then
'日付の場合は処理を実行する
'(ここで何らかの演算処理などを行う)
Else
'日付でない場合はメッセージを表示
Beep
MsgBox "入力されたデータは正しい日付ではありません!", vbOKOnly + vbExclamation
End If
次の図はこのコードの実行例です。ここでは実際には存在しない日付"2001/11/31"を入力してみました。


 |