Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Access 2016)
単票フォームでカレント番号入力できない
投稿日時: 18/04/13 10:52:21
投稿者: きき

単票フォームで移動ボタンの間にカレントレコードの番号がありますが、
ここへカレント番号を入力しようとしてもできません。
数日前はできていたのですが、デザインを変えているうちに
できなくなりました。
なぜだかわかりますでしょうか?

回答
投稿日時: 18/04/13 11:40:34
投稿者: sk

引用:
単票フォームで移動ボタンの間にカレントレコードの番号がありますが、
ここへカレント番号を入力しようとしてもできません。

・カレントレコードボックスにフォーカスを移動できない。
 
・フォーカスは移動できるが、キーボードからの入力を受け付けない。
 
・キーボードからの入力が可能だが、任意のレコード番号を入力して
 Enter キーをクリックしてもカレントレコードが移動しない。
 (何のエラーメッセージも表示されず、元の番号に戻る)
 
・上記以外の現象。
 
以上のどれに該当するのでしょうか。
 
また、ボックスの左右の矢印ボタンをクリックして
前のレコード/次のレコードに移動させることは
出来ているのでしょうか。

投稿日時: 18/04/13 11:59:33
投稿者: きき

以下の状況です。わかりますか?
 
・カレントレコードボックスにフォーカスを移動できない。 ==> できます。
 
・フォーカスは移動できるが、キーボードからの入力を受け付けない。 ==> 受け付けない。
 
ボックスの左右の矢印ボタンをクリックして
前のレコード/次のレコードに移動させることは ==> できます。

回答
投稿日時: 18/04/13 13:07:15
投稿者: よろずや

きき さんの引用:
・フォーカスは移動できるが、キーボードからの入力を受け付けない。 ==> 受け付けない。
ファイルが壊れた可能性があります。最適化/修復をやってみましょう。

回答
投稿日時: 18/04/13 14:03:51
投稿者: sk

引用:
・フォーカスは移動できるが、キーボードからの入力を受け付けない。 ==> 受け付けない。

・その現象は特定のフォームでのみ発生しているのか、
 それともそのファイル内の全てのフォームにおいて発生しているのか。
 (テーブルのデータシートビューでも同様の現象が発生するのか)
 
・新規作成した mdb / accdb ファイル上においても
 同様の現象が発生するのか。
 
・カレントレコードボックスに対して任意のレコード番号を入力する際、
 メインキーボード上の数字キーとテンキー上の数字キーのどちらを
 使用しているのか。
 
以上の点について再度ご確認を。

投稿日時: 18/04/13 14:15:17
投稿者: きき

原因がわかりました。
 
フォーム上のコンボボックスでキークリックイベントに
  KeyCode = 0 を記述して
キーボードからの入力を無効にしていました。
ほかのテキストボックスにフォーカスがある場合、
カレントレコードの番号入力、移動ができました。
 
カレントレコードの番号入力をするときに、コンボボックスから
フォーカスを外す方法はないでしょうか?

回答
投稿日時: 18/04/13 15:19:44
投稿者: sk

引用:
フォーム上のコンボボックスでキークリックイベントに
  KeyCode = 0 を記述して
キーボードからの入力を無効にしていました。
ほかのテキストボックスにフォーカスがある場合、
カレントレコードの番号入力、移動ができました。

なるほど。
  
引用:
カレントレコードの番号入力をするときに、コンボボックスから
フォーカスを外す方法はないでしょうか?

カレントレコードボックスにカーソルを移しても、
その時点におけるフォームのアクティブコントロールが
そのコンボボックスであることに変わりはないですし、
また「カレントレコードボックスの編集中であるか否か」を
検知する方法/イベントがない限りは KeyCode に対する
代入処理を制御することは難しいと思います。
 
また、「コンボボックスのテキストに対する直接入力
そのものを無効にする」という方式を採用するのは、
あまりお奨め出来ません。
 
入力インターフェースをマウス(またはタッチパネル)のみに
制限してしまうため、Tab キーによるコントロール間の移動、
F4 キーによるコンボボックスのリストのドロップダウンや、
(ドロップダウン中の)方向キーによるリスト行の選択
といった操作まで抑制されることになるからです。
 
リスト外の値が入力されてしまうことを制限したいなら、
コンボボックスの[入力チェック]プロパティを「はい」に
設定しておけばよいでしょう。

投稿日時: 18/04/13 15:22:08
投稿者: きき

回答ありがとうございました。
 
とても参考になりました。