Access VBA 処理実行前のチェックパターン

 
処理実行開始時に、入力されたデータに対するチェックでよく使われる項目のメモ。
 
①データの有無
IsNull( )関数の使用、または(Me.列名.Value = "")でチェック。
 
 注意点
 (1)Null(初期化されていない)の場合。
 (2)長さが0の文字列の場合。
 (3)スペースが入力されている場合。
 
そのため、
IsNull(Me.列名.Value) Or Trim(Me.列名.Value) = ""
を使ってチェックするのがよい。  
 
 
②入力文字数
Len( )関数を使用。
この関数は漢字も1文字として返すので注意。
 
 
③最大桁数
DBに設定されている最大桁数をチェックする。
 
・チェックしていなくて起きたエラーの原因の一例
 (1)データ更新ボタンをクリック
 (2)処理中にエラー
 (3)初期設定地をセットして戻る
 (4)ON ERROR GO TO ステートメントなどを使用している場合、
  更新ボタンにフォーカスが当たったままなので、エラーとしてループし続けてしまう。
 
 
④数字かどうか
IsNumeric( )関数を使用。
しかし、"E"という文字に注意(浮動小数点で使用されるためエラーにはならない)。
 
 
⑤日付かどうか
IsDate( )関数を使用。
日付や時刻として認識できる文字列ならばチェックで検出できない。
例えば年あるいは日が省略された場合や、時刻だけでもエラー検出できないので注意が必要。
 
 
⑥範囲内かどうか
例えば数量であれば、次のようにチェックする。
(Me.数量.Value >= 最小値) And (Me.数量.Value <= 最大値)
 
 
⑦範囲外かどうか
例えば数量であれば、次のようにチェックする。
(Me.数量.Value < 最小値) Or (Me.数量.Value > 最大値)
 
 
⑧入力形式
入力文字列の一部を取り出してその形式をチェックする。
 
 取り出すパターンの例は、
 (1)先頭の2文字:Left(フィールド, 2)
 (2)先頭より3文字目から2文字:Mid(フィールド, 3, 2)
 (3)末尾の2文字:Right(フィールド, 2)