テキストボックスに入力した「数値」の入力チェック(入力規則の例、データ型不一致)
Accessのテキストボックスコントロールで数値の入力チェックを行う方法についてです。ここでは入力規則を使った例を示します。(データ型の不一致はフォームエラーで処理)
目次
- テキストボックスの書式に「数値」を設定
- 数値の範囲指定
- 正の整数値のみ
- 数値以外が設定されていた場合(データ型不一致)のエラー処理
- 参考リンク
テキストボックスの書式に「数値」を設定
数値の範囲指定
テキストボックスに入力される数値の範囲が決まっている場合、プロパティ「入力規則」に以下の条件を設定します。
Is Null Or (>=-999 And <=999)
※ 「Is Null」は空OKという意味で任意の入力項目という意味(以降の例も同様)
正の整数値のみ
Likeを使って正の整数値のみに入力を制限することもできます。
Is Null Or Not Like "*[!0-9]*"
一般的な正規表現とごっちゃになって間違いやすいですが、上記のコードは、0~9以外の文字が1つでもあったらNGという意味になります。
数値以外が設定されていた場合(データ型不一致)のエラー処理
テキストボックスの書式に「数値」を設定していた場合で、数値に変換できない文字が入力されていた時(データ型の不一致)の処理になります。(フォームエラーで処理)
Private Sub Form_Error(DataErr As Integer, Response As Integer)
'データ型不一致エラー
If Me.ActiveControl Is Me.[txt数値] And DataErr = 2113 Then
Response = acDataErrContinue
MsgBox "数値を入力してください。", vbInformation + vbOKOnly
End If
End Sub
テキストボックスの書式を空にしていても、入力規則の判定で数値を扱うような判定を行っていると、フォームエラーが発生します。
ただし、その場合のエラーコード(DataErr)は「2470」でした。