Microsoft Access 掲示板

VBA IF関数 条件によって処理を中止させたい / 2

3 コメント
views
2

もし、テキストボックスにフォーカスある状態で未入力の場合はほかのコントロールにフォーカス移動を禁止したいという仕様がご希望なら、一般的には下記のような設計にします。

テキストボックスのフォーカス移動時のイベントプロシージャに下記のコードを設定します。

テキストボックス名が「参加カテゴリ」として、

Private Sub 参加カテゴリ_Exit(Cancel As Integer)

    If Nz(Me.参加カテゴリ.Value) = "" Then
        Cancel = True 'フォーカス移動をキャンセル
        MsgBox "参加種目が選択されていません", vbOKOnly
    End If

End Sub

これで未入力状態では他コントロールへ移動できません。

ただし、このフィールドを入力必須にしたいということなら、これでは不十分です。
このテキストボックスをとばして、他のテキストボックスへ移動したりして、レコード保存操作をすれば未入力のまま保存されます。

この場合は、テーブルデザインで入力必須の設定をするのが確実です。

通報 ...