お世話になります。
フォームのテキストボックスに数値型のフィールドをレコードソース設定しています。
そのテキストボックスに負の値をいれることがありますが、ユーザーが誤って―(マイナス)の1字のみ入力し、Enterキーを押す等でフォーカスを移動しようとすると、Access側から添付のようなメッセージが出ます。
これではユーザーには親切ではないので、オリジナルのメッセージを出そうと思い以下のコードを書きました
Private Sub テキストA_LostFocus()
DoCmd.SetWarnings False
If Me.テキストA= "-" then
Msgbox "数値を入力して下さい"
Me.テキストA.SetFocus
Else
End if
DoCmd.SetWarnings True
End Sub
ところがなんの変りもなく上のメッセージが出てしまいます。
回避策ありませんでしょうか?
そもそもコードが間違っているのでしょうか?
どなたかご教授よろしくお願いいたします。
LostFocusイベントが発生する前にエラーメッセージが出ますので、LostFocusイベントでは手遅れですね。
LostFocusイベントより前に発生するBeforeUpdate(更新前処理)イベントでも手遅れです。
どうするかというと、フォームの方の「エラー時」イベントで処理します。
Form.Error イベント (Access) | Microsoft Learn
ありがとうございます。やりたいことができました!