質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

解決済

Access タブ付きフォーム(フォームビュー) で、タブクリック時「各タブページの【最上部】が確実に表示されず、ページ最下部 の サブフォーム(データシート)の 最初のセル にフォーカスしてしまう

daigono555
adoga

総合スコア20

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

1回答

0評価

0クリップ

304閲覧

投稿2022/01/24 09:18

【状況】: Access タブ付きフォーム(【フォームビュー】使用時) で、タブクリック時「各タブページの【最上部】が 確実に表示されず、

ページ最下部 の 埋め込みサブフォーム(データシート)の 最初のセル に フォーカスしてしまうことがほとんど(たまに「最上部」も 正しく表示されるが、クリックするたび結果がランダム)

どなた様か 解決方法 がお分かりでしたら、教えて頂ければ大変幸いです。

Access 2013 64bit 使用。某必要に迫られ、全く 空 から ネットのみで Access の使用方法 を調べて 1ヵ月程度 の 超初心者です。

VBA も 必要な動作 を 都度検索して 参考にして記述するだけで、他の PG言語・DB 知識 も 表面的なものだけです(非プログラマー)。

実現したい状態は、【タブコントロール使用のフォーム(「フォームビュー」使用時)で、上部 複数タブの 各タブを クリックしたとき、各ページ【最上部】が 確実に表示されるようにしたい】というものです。

最初に出てくるサブフォーム or コントロール に カーソルが フォーカスしていても していなくても、いずれでも OK です。

ググって出てきた 幾つかの対応 を試してみたのですが、現状の状態は、タブクリック時 うまく「該当ページの最上部」が表示されることもありますが、

タブクリック時 各ページの 【最終 の 埋め込みサブフォーム の 最初のセル部分 に フォーカスしてしまう】ことの方が多いような状況 です。

これまでに試みたことは(全て Access & PC 再起動 も試した上)、

https://hamachan.info/win7/access/hanten.html
https://www.latest-info-system.com/access-setfocus/

↑ のように、

(1) Access オプション で 「クライアントの設定」>「フィールド移動時の動作」> フィールド全体 or フィールドの先頭 いずれで試しても 症状同じ

(2) 各ページの 最上部 に 枠線・背景【透明】の 幅・高さ 0.011 の ダミーテキストボックス を 配置し、タブ移動順 0 & タブストップ いいえ にしても 同じ症状

(3) 各タブ の 「クリック時」の 「イベント プロシージャー」より

Private Sub タブA_Click() Me![タブAダミ(=最上位透明テキストボックス)].SetFocus End Sub

を(他のタブも)記述。 Me![タブAダミ].SetFocus / Me.タブAダミ.SetFocus いずれの書き方 でも 症状変わらず

* なお、タブ付きフォーム内 に 埋め込んでいる テキストボックス 等 以外の 各サブフォーム(メインテーブルからのコントロール 以外の 別の派生テーブル / クエリ 等)は、

A: コントロールウィザードより サブフォーム化 してみても、
B: 左の ウインドウから フォーム内に【非連結】でドラッグ挿入して、あとから「ソースオブジェクト」「リンク親フィールド」「リンク子フィールド」などを指定して表示させたとしても(「サブフォーム」は 左列に 生成されていない状態で)、いずれも症状変わらず です。

これを、【 確実に 各タブ クリック時、各タブページの「最上部」を 正しく表示させる / 「一番最終の埋め込みサブフォーム」の「最初のセル」にフォーカスさせない】ようにする方法を、お分かりになるどなた様 か、ぜひお教え頂ければ 大変幸いです。

* なお、タブクリック時「ページ最下部 の サブフォームの最初」に飛んでしまうようなときは、「タブ部分」のクリック のみならず、●ページ内の余白 の どこをクリックしても「ページ最下部 の サブフォーム」に飛んでしまうなど、Access の 【フォームビュー での スクロール描画自体】が 少し 挙動がおかしいような感じ になっています。

レコードは 何レコードか 登録していて、「最後まで入力が終わっている」でも、「途中までしか終わっていないレコード」でも、動作は同じような感じです。


なお、他所で質問し Access 上級者の方 より

タブコントロールのタブ部を『ダブルクリック』すると、
それ以降のそのタブの「クリック時」イベントが発生しなくなりますね。
タブ部横長のタブが表示されていない場所をクリックすると復活しますね。
バグかな。
引用テキスト
「変更時」イベントは機能するようですから、そちらに置き換えた方が良さそうです。

というご指摘を頂きましたが、「変更時」イベント の 存在する【タブ付きフォーム全体】の 「変更時」の [イベント プロシージャ]

タブA_Change() の方で

Me![タブAダミ].SetFocus

を設定してみましたが、挙動 は 変わりません。

なお、各タブページの ★最終(一番下)の コントロール最初の部分 に タブクリック時 フォーカスが飛んでしまうのは、

テーブル or クエリ or ボタン を 各タブページ 最下部 に 配置しているときです(ドラッグ挿入して、後からフィールドリストから連結したもの)。【テキストボックス・リストボックス だけのページ】 であれば、必ず タブクリック時 に【タブページ** 最上部**】が表示されます。

1つのレコードのデータ入力が 全て終わっているレコード でも、まだ空のレコード でも、同じように 一番下のコントロールに フォーカスが飛びます。「Access 2013 では そういう仕様になっている」バグかもしれません?

もし 解決策 がお分かりになれば、どなた様か ご教授頂ければ 大変幸いです。
宜しくお願い致します。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。