フォームの最後のコントロールでEnterキーかTabキーを押すと、自動的に次のレコードへ移動します。 |
商品入力フォームです。
このフォームの最後のコントロールの「単位」でEnterキーかTabキーを押します。
すると次のレコードに移動してしまいます。
次々と入力するする場合は便利ですが、例えばレコードが1件しかないテーブルなどでは、新規レコード入力画面になってしまいバグの原因になる可能性があります。
そこで、EnterキーとTabキーが押された場合、別の処理を行うVBAを作成します。
フォームをデザインビューで開き、最後のコントロールを選択します。
キークリック時のイベントプロシージャは、KeyDown(KeyCode As Integer, Shift As Integer)になります。
KeyCodeには、押されたキーのコードが入っています。
Shiftには、ShiftキーとCtrlキーの状態が入っています。
EnterキーとTabキーを無視するVBAです。
Private Sub 単位_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Or KeyCode = vbKeyTab Then
KeyCode = 0
End If
End Sub
最初のコントロールの商品IDに移動するようにしたVBAです。
・SetFocusで指定したコントロールに移動できます。
Private Sub 単位_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Or KeyCode = vbKeyTab Then
Me!商品ID.SetFocus
End If
End Sub