フォーム内のあるコントロールから別のコントロールにフォーカスが移ったと同時に あるコントロールから別のコントロールにフォーカスが移った際に発生するイベント ▼記述例2_フォームのモジュール内のGotFocusイベントに記述▼ テキストボックスのSelStartプロパティを使用し、 ▼記述例3_フォームのモジュール内のGotFocusイベントに記述▼ ▼Nz関数解説記事▼ Accessでエンターキーによるコントロールの移動ができない場合には下記設定を確認 メニューバー
何かしらの処理を行う方法
イベント【GotFocus】とは
このタイミングで、別のコントロールから値をコピーしたりすることができる
▼記述例1_フォームのモジュール内のGotFocusイベントに記述▼Private Sub txt2_GotFocus()
If IsNull(Me.txt2.Value) Then
Me.txt2.Value = "何か入力して"
End If
End Sub
▼処理結果▼
→→→
※上のボックス(txt1)から下のボックス(txt2)へフォーカスが移動したと同時に文字が入力されたPrivate Sub txt2_GotFocus()
Me.txt2.Value = Me.txt1.Value
End Sub
▼処理結果▼
→→→
※上のボックス(txt1)から下のボックス(txt2)へフォーカスが移動したと同時に上のボックスの値を下のボックスに反映した【SelStart】でカーソルの位置を調整
選択したテキストの開始位置、またはテキストが選択されている場合のカーソル位置を指定
コントロールのフォーカスが移った後の入力を、フォーム利用者が扱いやすいよう工夫することができる
▼参考記事▼
TextBox.SelStart プロパティ (Access) | Microsoft LearnPrivate Sub txt2_GotFocus()
Me.txt2.Value = Me.txt1.Value
Me.txt2.SelStart = Nz(InStr(Me.txt1.Value, "@"), 0)
End Sub
▼処理結果▼
→→→
※上のボックス(txt1)から下のボックス(txt2)へエンターキーかタブキーでフォーカスが移動したと同時に
上のボックスの値を下のボックスに反映しつつカーソルが「@」の後に位置するようにした
Nz関数 …Null値をほかの値に変換する - Officeのチカラ【参考】エンターキーによるコントロールの移動
事前準備としてあらかじめ確認しておくとよいかも
→[ツール]
→[オプション]
→[オプション]ダイアログ
→[キーボード]タグ
→左上の「Enter キー入力後の動作」
→「次のフィールド」を選択