【状況】: 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 では そういう仕様になっている」バグかもしれません?
もし 解決策 がお分かりになれば、どなた様か ご教授頂ければ 大変幸いです。
宜しくお願い致します。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。