Access (一般機能)

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

 
■ Access タブ付きフォーム で、「最終タブページ」の「最後のコントロール」から、「最初のタブページ」の「次のレコード の 最初(入力待機)」に 移動する書き方
投稿日時: 22/01/23 18:01:11
投稿者: o

■ Access タブ付きフォーム で、「最終タブページ」の「最後のコントロール」から、「最初のタブページ」の「次のレコード の 最初(入力待機)」に 移動する書き方
 
空 から始めて、使用方法 ネット検索 のみ、Access 1ヵ月程度 の 超初心者です(非プログラマー) Access 2013 64bit 使用。
 
少し検索してみても中々見つからなかったので、書き方 を どなた様か 教えて頂ければ 大変幸いです。
 
【 実現したい内容 】
 
タブコントロールを使った【タブ付きフォーム】で、フォームビューで 複数タブの「最後のタブページ」の「最後のコントロール」を入力し終わった後に、
 
Tab キー or 最後のコントロールの下に配置したボタン を押せば、「最初のタブページ」の「★次のレコード」の「最初 の 入力コントロール(ID 等)」に フォーカスされた状態( or フォーカス前の状態)にしたい(たとえば 3〜4 個のタブページを渡って、1レコード を 最後まで入力してゆく全体構造。★その一番ラストから、「次のレコードの先頭」に飛びたい)
 
Access 2013 の プロパティ「その他」には、【★タブキークリックしたとき】のイベントが無く(ボタン なら ボタン名_Click() で行けますが)、
 
「次のレコードの最初の項目」にフォーカスする という点も、単なる Value では カレントレコード の表示になり、「次のレコード」の 最初の項目 の 入力待機 の状態 にはなりません。
 
【ボタン】を使えば、「次のレコードへ」という 埋め込みマクロが 最初から用意されていますが、「最後のタブページ の 同一コントロール の 次のレコードの情報」が表示されるだけで、やはり【最初のタブページ の ★次レコード一番最初のコントロール の 入力待機】という状態 にはなりません。
 
これを実現するには、どこに どう書けばできるか? (最後のコントロール での Tab キー 押下 でも 実現できるなら、その書き方でも OK です)
 
教えて頂けましたら幸いです。 宜しくお願い致します。

回答
投稿日時: 22/01/25 16:19:46
投稿者: Suzu

その 最後のコントロール が、フォームではなく、タブコントロール内のPageに属するとして。
 
1.タブコントロール内の、別の非アクティブとなっている、ページをアクティブにする
2.そのページ上のコントロールにフォーカスを移動させる
3.フォーカスがある状態でカレントレコードの移動を行う
 
 
気づけないとすれば、1 の部分でしょうか。
 
タブコントロールの ページの変更には、Valueプロパティを使います。
 
Me.タブコントロール名.Value = ページインデックス番号
 
※ページインデックス番号は、0から始まる事に注意
 1枚目なら『0』 2枚目なら『1』 〜

投稿日時: 22/01/26 00:34:00
投稿者: o

Suzu さんの引用:
その 最後のコントロール が、フォームではなく、タブコントロール内のPageに属するとして。
 
1.タブコントロール内の、別の非アクティブとなっている、ページをアクティブにする
2.そのページ上のコントロールにフォーカスを移動させる
3.フォーカスがある状態でカレントレコードの移動を行う
 
 
気づけないとすれば、1 の部分でしょうか。
 
タブコントロールの ページの変更には、Valueプロパティを使います。
 
Me.タブコントロール名.Value = ページインデックス番号
 
※ページインデックス番号は、0から始まる事に注意
 1枚目なら『0』 2枚目なら『1』 〜

 
コメントありがとうございます。
 
別スレッド での【参照】の理解 が 明確になれば、
 
.Value / .SetFocus
 
On Error Resume Next
DoCmd.GoToRecord , , acNext

などを プロシージャ内で使って 試してみたいと思います。

投稿日時: 22/01/29 00:59:16
投稿者: o

こちらは、最終のボタンに
 
.Value と .SetFocus と
 
On Error Resume Next
DoCmd.GoToRecord , , acNext
On Error GoTo 0
 
で Sub を書いて、意図通りになりました。
 
「切り分けて、各々の解決法 を 検索する」ですね。
 
こちらも、真に ありがとうございました。