MS Access Tips/Sample and VBA and Blog customize etc...

データ型不一致エラーメッセージを変更する

連結テキストボックスで、データ型に合わない値を入力したとき、Accessくんは、

このフィールドに入力した値が正しくありません。
たとえば、数値型のフィールドに文字列を入力しました。

という無粋なエラーメッセージを出します。
もう少し分かりやすく具体的にメッセージを表示したいと思いますよね。

先日もこのような質問がとある掲示板でありました。私はついうっかり入力チェックは更新前処理というセオリーに従って回答してしまいましたが、このエラーは更新前処理より前に発生するので、そこではメッセージを変更することはできません

今回は、どこでこのデータ型不一致エラーを拾って、メッセージを変更すればいいのかについて考察してみます。

難易度:

下記の仕様をもとにします。

テキストボックス名: 受付時刻

連結フィールド名: 受付時刻
フィールドのデータ型: 日付/時刻型

入力するデータ: h:nn 形式の時刻 

入力データエラーメッセージ
700 のように : がない値を入力したとき時 と 分 の区切りに : を入力してください。
24:00 のように時刻としてありえない値を入力したとき0:00 から 23:59 までの時刻を入力してください。

さて、今回の解決策は簡単です。
データ型不一致エラー(Err.Number 2113)は、テキストボックスの更新前処理では拾えませんが、実はフォームの「エラー時」イベントで拾えるのです。

フォームの「エラー時」のイベントプロシージャ下記のように記述します。

補足
Err.Number 2113 でデータ型違反と確定しているので、IsDateでのチェックは不要。
受付時刻.Value では変更前のデータなので、入力中の値は 受付時刻.Text で取得。

Leave a reply






Trackbacks

trackback URL
https://hatenachips.blog.fc2.com/tb.php/25-6a6c2107
該当の記事は見つかりませんでした。