データ型不一致エラーメッセージを変更する
連結テキストボックスで、データ型に合わない値を入力したとき、Accessくんは、
このフィールドに入力した値が正しくありません。
たとえば、数値型のフィールドに文字列を入力しました。
という無粋なエラーメッセージを出します。
もう少し分かりやすく具体的にメッセージを表示したいと思いますよね。
先日もこのような質問がとある掲示板でありました。私はついうっかり入力チェックは更新前処理というセオリーに従って回答してしまいましたが、このエラーは更新前処理より前に発生するので、そこではメッセージを変更することはできません
今回は、どこでこのデータ型不一致エラーを拾って、メッセージを変更すればいいのかについて考察してみます。
難易度:
下記の仕様をもとにします。
テキストボックス名: 受付時刻
連結フィールド名: 受付時刻
フィールドのデータ型: 日付/時刻型
入力するデータ: h:nn 形式の時刻
入力データ | エラーメッセージ |
---|---|
700 のように : がない値を入力したとき | 時 と 分 の区切りに : を入力してください。 |
24:00 のように時刻としてありえない値を入力したとき | 0:00 から 23:59 までの時刻を入力してください。 |
さて、今回の解決策は簡単です。
データ型不一致エラー(Err.Number 2113)は、テキストボックスの更新前処理では拾えませんが、実はフォームの「エラー時」イベントで拾えるのです。
フォームの「エラー時」のイベントプロシージャ下記のように記述します。
補足
Err.Number 2113 でデータ型違反と確定しているので、IsDateでのチェックは不要。
受付時刻.Value では変更前のデータなので、入力中の値は 受付時刻.Text で取得。