性別のオプションボタンで上下キーを無視し次に進む:Access物販向け顧客管理

性別を選択するためにオプショングループを設置しましたが、オプションボタンで上下キーを押すと自動的にレコードが追加されてしまいます。そこで上下キーを押すと次のコントロールへ進むようにします。

上下キーの入力イベントはマクロではできないようなので、VBAのKeyDownイベントで処理するようにします。
BackHome Backメニュー


■ ↓キーを押すと

性別のオプショングループにカーソルがある時、↓キーを押します。


「男」のオプションボタンが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は、↑キーが押された場合の処理です。


フォームビューにし、試します。
「男」のオプションボタンで↓キーを押します。


すると次の生年月日のテキストボックスに移動します。


「男」のオプションボタンで↑キーを押します。


すると顧客名のテキストボックスに移動します。
これで性別オプショングループで上下キーを押しても、空のレコードが追加されることはなくなりました。


Down-DownこれまでのAccess物販向け顧客管理ソフト 作成手順
24.追加で新規レコードにした時「顧客名」に移動する - 最初に入力するテキストボックスにフォーカスをあてる
23.フォームを開いた時、新規レコードに移動する - フォームが開いた時のイベント「読み込み時」に作成します
22.レコードを削除するボタンを作成 - ボタンをクリックすると「削除してもよろしいですか?」のメッセージが表示
21.レコードを追加するボタンを作成 - 追加ボタンでレコードは自動的に登録されて、新規入力画面に移動
20.水平垂直スクロールバーを非表示にする - プロパティで「水平/垂直」から「なし」に変更
19.レコードセレクタと移動ボタンを非表示にする - プロパティ シートで設定します
18.フォームを従来のMDIウィンドウにする - タブ形式のフォームから変更します
17.フォームを閉じるボタンを追加 - 背景色・境界線色を変え差別化をはかります
16.前・次・最後のレコード移動ボタンを追加 - 追加後サイズや位置を揃える
15.先頭レコードに移動するボタンの設置 - コントロールウィザードを使って配置

関連する記事関連する記事
フォーカスのあるテキストボックスを書式変更
フォームイベント一覧
ADOでデータの追加(AddNew ~ Update)
レコードを移動する

BackHome Backメニュー

Copyright(C) FeedSoft