お世話になります。現在案件リストの帳票から、1件ずつ詳細画面をダイアログで開けるようにしているのですが、その画面での修正をリストに反映させるため、me.requeryを使っています。
しかし、requeryするとリストの頭に画面が戻ってしまい、大変煩わしく感じられます。
この問題は解決できないですよね…?
念のためご確認をお願い致します。(requeryのせいではない、等、勘違いあれば申し訳ありません。)
通報 ...
お世話になります。現在案件リストの帳票から、1件ずつ詳細画面をダイアログで開けるようにしているのですが、その画面での修正をリストに反映させるため、me.requeryを使っています。
しかし、requeryするとリストの頭に画面が戻ってしまい、大変煩わしく感じられます。
この問題は解決できないですよね…?
念のためご確認をお願い致します。(requeryのせいではない、等、勘違いあれば申し訳ありません。)
フォームに対してrequeryした場合にリストが再読み込みされて先頭に戻ってしまうのは仕様ですね
requery前にスクロール状態を保存して再度スクロール位置を調整する(面倒)か、メイン-サブフォーム形式にしてサブフォームコントロールをrequeryするのがセオリーでしょうか
ご回答ありがとうございます。
そんな方法があるんですね。
今、帳票1案件毎に左に詳細フォームに飛ぶボタンがあるのですが、ここはメインに残しておいて、その他の部分をサブにして埋め込むイメージでしょうか・・?
(イメージがわいておらずスミマセン)
メイン-サブ形式で単純にやるなら、親フォームの枠いっぱいにサブフォームを置いてしまうのが楽だと思います。親フォームはただの外枠扱いですね
案件毎ということはボタンがたくさん並んでいると思います。これをメインとサブに分けて同期してスクロールさせるのは現実的ではありません。上記方法のように親フォームを外枠扱いとするか、「詳細ボタン」はメインに一つにして、選択中の案件が分かりやすいようにサブフォームは選択中の行の背景色を変えるような仕組みにするかですかね
Requeryは全レコードの再読み込みですので、先頭に戻ります。
帳票フォームのカレントレコードを詳細フォームで更新したのなら、カレントレコードの更新のみ反映させればいいので、その場合は、Refresh を使うといいでしょう。これなら、先頭に戻ることはないです。
Requeryは複数レコードを更新してそれを一気に反映させたい場合に使えばいいでしょう。