2020.2.4

テキストボックスに入力した「数値」の入力チェック(入力規則の例、データ型不一致)

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」でした。

参考リンク

Access】関連記事