いつもご指導いただきましてありがとうございます
テキストBOX形式のフィールドが空欄の場合は処理を
停止したく下記のように記述しましたがメッセージも表示されず
実行時エラーとなります。どこが間違っているのでしょうか?
宜しくお願いします。
If (Eval("[Forms]![F点数入力]![参加カテゴリ] Is Null")) Then
MsgBox "参加種目が選択されていません", vbOKOnly, ""
Exit Sub
Beep
End If
Forms!F点数入力![1-1].SetFocus
追加:[参加カテゴリ]が空欄の時は[1-1]フィールドへのコントロール移動を停止
させたいのです
この行で実行時エラーになるのでしょうか。
また、このコードはどこのどのイベントプロシージャに設定しているのでしょうか。
Sub から End Sub までのコード全体を提示してもらえると状況を把握しやすいです。
どのような状況のときにどのような処理をしたいのかもう少し具体的に説明してください。
[参加カテゴリ]テキストボックスにフォーカスあり未入力(Null値)のとき、他のテキストボックスに移動させたくないということでしょうか。
もし、テキストボックスにフォーカスある状態で未入力の場合はほかのコントロールにフォーカス移動を禁止したいという仕様がご希望なら、一般的には下記のような設計にします。
テキストボックスのフォーカス移動時のイベントプロシージャに下記のコードを設定します。
テキストボックス名が「参加カテゴリ」として、
これで未入力状態では他コントロールへ移動できません。
ただし、このフィールドを入力必須にしたいということなら、これでは不十分です。
このテキストボックスをとばして、他のテキストボックスへ移動したりして、レコード保存操作をすれば未入力のまま保存されます。
この場合は、テーブルデザインで入力必須の設定をするのが確実です。
ありがとうございます
こちらの記述で思う通りにできました
Private Sub 参加カテゴリ_Exit(Cancel As Integer)
If Nz(Me.参加カテゴリ.Value) = "" Then
Cancel = True 'フォーカス移動をキャンセル
MsgBox "参加種目が選択されていません", vbOKOnly
End If
End Sub