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

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

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

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

Q&A

解決済

1回答

1402閲覧

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

daigono555

総合スコア20

Access

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

0グッド

0クリップ

投稿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 では そういう仕様になっている」バグかもしれません?

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

投稿2022/01/26 07:11

daigono555

総合スコア20

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問