性別のオプションボタンで上下キーを無視し次に進む:Access物販向け顧客管理
性別を選択するためにオプショングループを設置しましたが、オプションボタンで上下キーを押すと自動的にレコードが追加されてしまいます。そこで上下キーを押すと次のコントロールへ進むようにします。
上下キーの入力イベントはマクロではできないようなので、VBAのKeyDownイベントで処理するようにします。
■ ↓キーを押すと
性別のオプショングループにカーソルがある時、↓キーを押します。
「男」のオプションボタンがONになり、顧客IDが「新規」からレコード番号が表示され、レコードが追加されたことが分かります。
さらに↓キーを押すと「女」のオプションボタンに移動します。
これでは空のレコードが追加されてしまう可能性があるので、↑↓キーは無視して次のコントロールに移動するようにします。
■VBAの「キークリック時」イベントにコードを入力する
顧客マスターフォームをデザインビューにします。
1.「男」のオプションボタンを選択します。
2.プロパティシートの[イベント]タブを選択し、[キークリック時]から[イベント プロシージャー]を選択します。
VBE画面が開き、KeyDownイベントが表示されます。
下記のコードを入力します。
If KeyCode = 40 Then
生年月日.SetFocus
ElseIf KeyCode = 38 Then
顧客名.SetFocus
End If
If KeyCode = 40 Thenは、↓キーが押された場合の処理です。
ElseIf KeyCode = 38 Thenは、↑キーが押された場合の処理です。
フォームビューにし、試します。
「男」のオプションボタンで↓キーを押します。
すると次の生年月日のテキストボックスに移動します。
「男」のオプションボタンで↑キーを押します。
すると顧客名のテキストボックスに移動します。
これで性別オプショングループで上下キーを押しても、空のレコードが追加されることはなくなりました。
関連する記事
フォーカスのあるテキストボックスを書式変更
フォームイベント一覧
ADOでデータの追加(AddNew ~ Update)
レコードを移動する