Access 2010 で 帳票フォームにデータを入力すると、意図せず画面がスクロールして明細行の表示位置が上下に移動する

現象
Access 2010 で、水平スクロール バーが表示される横長の帳票フォームにおいて、Tab や Enter キーで表示されていないレコードに移動すると、意図せず画面がスクロールし、明細行の表示位置が上下に移動します。
回避策
この現象を回避するには、以下のいずれかの方法を実行してください。

方法 1 : 帳票フォームのレイアウトを変更する

水平スクロール バーを使用しないで済むように、1 画面内に収まるようにコントロールを配置します。

方法 2 : データシート ビューを使用する
  1. フォームをデザイン ビューで開きます。
  2. フォームのプロパティ シートを開きます。
  3. [書式] タブをクリックし、[既定のビュー] で [データシート] をクリックします。
  4. フォーム デザインを保存して閉じます。
補足 : フォームのプロパティシートの [書式] タブ の [データシートビューの許可] を [はい] に設定すると、リボンの [ホーム] タブの [表示] ボタンから [データシート] を選択できるようになります。

方法 3 : フォームの KeyPress イベントを使用する

注 : この方法では、画面がスクロールされる現象は改善しませんが、帳票フォームの画面内にカレント フィールドを表示することができます。ただし、キー入力の度にイベントが発生することでコンピューターに負荷がかかります。
  1. 現象が発生するフォームのプロパティの [イベント] タブをクリックし、[キーボードイベント取得] で [はい] をクリックします。
  2. [キー入力時] に以下のコードを入力します。

    Private Sub Form_KeyPress(KeyAscii As Integer)    If (KeyAscii = vbKeyReturn) Or (KeyAscii = vbKeyTab) Then        ActiveControl.SetFocus    End IfEnd Sub
状況
マイクロソフトでは、この問題について現在調査中です。詳細については、わかりしだいこの資料に掲載する予定です。
詳細

問題の再現手順

  1. Access 2010 で、任意のデータ型の 15 フィールド程度を持つテーブルを作成します。
  2. 手順 1 のテーブルを基に、帳票フォームを作成します。このとき、左右にスクロールができる状態に横長のレイアウトにします。
  3. 作成したフォームをフォーム ビューで開き、上下にスクロールが可能になる程度のレコードを入力します。
  4. 新規レコードを入力し、Tab Enter キーで移動します。

結果

TabEnter キーでフィールドを移動すると、画面がスクロールされ、明細行の表示位置が上下に移動します。なお、データを入力すると編集中のフィールドが画面に表示されます。
プロパティ

文書番号:2486392 - 最終更新日: 10/04/2016 15:07:00 - リビジョン: 4.0

Microsoft Access 2010

  • kbharmony kbexpertiseinter kbtshoot kbbug kberrmsg kbsetup KB2486392
フィードバック