フォーム更新で最上位にスクロールさせない|みどシステム工房
フォーム更新で最上位にスクロールさせない
親フォームのテーブルから修正する項目を選択して 子フォームでデータを修正登録して登録するとき、
親フォームのテーブルが再クエリして テーブルがスクロールして最上位の行から表示されます。
このとき、最上位にスクロールしない方法の紹介です。

アンザボレゴ砂漠州立公園
アンザボレゴ砂漠州立公園
【アメリカ合衆国カルフォルニア州】


はじめに

親フォームの詳細にデータ一覧を表示し、更新する項目をそこから選択して、子フォームで修正登録する画面があるとして、子フォームで修正したデータ登録して、親ホームを再クエリで変更を反映させると、親フォームのテーブルが自動的にスクロールして最上位の行から表示されて更新されます。

次々にデータを修正するとき、「スクロールしなければいいのに」と不便を感じることがあります。

Refresh関数でスクロールせずに再表示することもできますが、テキストボックスに関数が組み込まれていると更新た結果が表示がされないことがあります。

SelTop関数

SelTop関数は、最上位にある行 (レコード) を指定または決定するか、連続フォームの最上位にあるレコードを指定または決定します。この関数を使って、
① 変更する項目のレコード番号を取得
② 親フォームを再クエリして変更を反映
③ 取得したレコード番号のデータを親フォーム最上段に表示
させて、更新したレコードをテーブルの最上段に表示させます。

 

【AD】

 

サンプルコード

サンプルコードは次のとおりです。

        
'スクロールとめる処理1
Dim Id_Num As Integer
Id_Num = Forms!f_仕入[フォーム名].[テキスト名].Parent.SelTop
'再表示
Forms![フォーム名].Requery
'スクロールとめる処理2
DoCmd.GoToRecord acDataForm, "[フォーム名]", acGoTo, Id_Num
	

 

サンプル動画

サンプルコードを組み込んだ操作イメージがわかる動画です。
プレイヤーの ボタンを押すと再生します。

 

まとめ

このように再クエリ後のテーブル表示が最上段にならないので、スクロールすることなく次のレコードの修正が出来て作業時間の短縮に役立ちます。

 

【AD】