› 田舎のITコンサル社長ブログ › Access › Accessの入力後enterでカーソルを動かさない

2013年02月13日

Accessの入力後enterでカーソルを動かさない

Microsoft Access において、
テキストボックスに値を入力し[Enter]キーを押すと、
通常では、次のフィールドや、次のレコードにカーソルが移動します。
もちろんこれは普通な動きです。

しかし、例えばバーコードリーダーによる入力など、
固定のテキストボックスで連続した投稿を行いたい場合、
いちいちマウスでテキストボックスをクリックしなおして、
カーソルを元の位置に移動しなければならず、
この動作では非常に面倒です。

例えば、隠しオブジェクトを用意しておき、
テキストボックスの次のオブジェクトにフォーカスが移動したら、
再度テキストボックスにフォーカスを移動するなど、
細かい操作を考えるところですが、
もっとシンプルな方法があります。

Access2003では、以下になります。

メニューバーの[ツール(T)]、[オプション(O)]、
「キーボード」タグにある「Enterキー入力後の動作」にて、
移動しない(N)にチェックします。



しかし上記の方法では、
「Enterキーの入力後動作が共通」になってしまう為、
他のテキストボックスでも同様の動きになってしまいます。

そのテキストボックスにカーソルがある時だけ、
Enterキーの動作で移動させないようにし、
別の場所にカーソルがある時は、
元の状態に戻すというやり方が必要です。

もちろん理想的なのは、
このパラメータをプログラム側から操作することです。

以下がサンプルプログラムです。

Private Sub バーコードリーダ_Enter()
 'Enterキー動作・移動しない
 Application.SetOption "Move After Enter", 0
End Sub

Private Sub バーコードリーダ_Exit(Cancel As Integer)
 'Enterキー動作・次のフィールド
 Application.SetOption "Move After Enter", 1
End Sub


フォーカス取得時に、
Move After Enterフラグを0にし、
フォーカス喪失時に、
Move After Enterフラグを1に戻しています。



同じカテゴリー(Access)の記事画像
車検やオイル交換のお知らせ
Access2010でインポートエラー
同じカテゴリー(Access)の記事
 車検やオイル交換のお知らせ (2014-01-31 23:59)
 Access2010でインポートエラー (2013-04-24 06:00)

Posted by 大樹直人 (naohito ooki) at 00:00│Comments(0)Access
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。