#204 データが日付/時刻型かどうかを調べるには? VBA

テーブル上のデータ型が日付/時刻型になっている場合、テーブルやクエリー、あるいはフォームからそのフィールドに数値や文字を入力しても、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"を入力してみました。
インプットボックスにデータを入力

エラーメッセージが表示される
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved