【アメリカ合衆国カルフォルニア州】
2025.03.22
親フォームの詳細にデータ一覧を表示し、更新する項目をそこから選択して、子フォームで修正登録する画面があるとして、子フォームで修正したデータ登録して、親ホームを再クエリで変更を反映させると、親フォームのテーブルが自動的にスクロールして最上位の行から表示されて更新されます。
次々にデータを修正するとき、「スクロールしなければいいのに」と不便を感じることがあります。
Refresh関数でスクロールせずに再表示することもできますが、テキストボックスに関数が組み込まれていると更新た結果が表示がされないことがあります。
SelTop関数は、最上位にある行 (レコード) を指定または決定するか、連続フォームの最上位にあるレコードを指定または決定します。この関数を使って、
① 変更する項目のレコード番号を取得
② 親フォームを再クエリして変更を反映
③ 取得したレコード番号のデータを親フォーム最上段に表示
させて、更新したレコードをテーブルの最上段に表示させます。
サンプルコードは次のとおりです。
'スクロールとめる処理1
Dim Id_Num As Integer
Id_Num = Forms!f_仕入[フォーム名].[テキスト名].Parent.SelTop
'再表示
Forms![フォーム名].Requery
'スクロールとめる処理2
DoCmd.GoToRecord acDataForm, "[フォーム名]", acGoTo, Id_Num
サンプルコードを組み込んだ操作イメージがわかる動画です。
プレイヤーの ボタンを押すと再生します。
このように再クエリ後のテーブル表示が最上段にならないので、スクロールすることなく次のレコードの修正が出来て作業時間の短縮に役立ちます。
【AD】