Access 2007でNumLockが消える問題を解決
仕事で使っているVista+Access 2007のシステムで、使用中にいつの間にかNumLockがオフになってしまうという問題が起きました。次のような動作のときにNumLockがオフになります。
- あるフィールドの更新後処理(AfterUpdateイベント)にSendKeysを使った処理が入っている
- 入力後、Enterキーを入力してフィールドを移動する
- 次のフィールドの更新後処理にも同様の処理が入っている
- 入力後、Enterキーを入力してフィールドを移動する
ネットで調べたところ、VBA(VB)に、SendKeysの動作中に他のSendKeysが動作するとNumLockがオフになるバグがあることがわかりました。
そこで、SendKeysを別のコードに書き換えることにしました。
更新後処理は次のようなコードでした。Shift+Enterを入力することで、レコードを保存しています。
SendKeys "+{ENTER}"
これを次のようなコードに書き換えました。
DoCmd.RunCommand acCmdSaveRecord
これで使用中にNumLockがオフにならないようになりました。
まとめると