• 締切済み

Accessで表をRequeryすると…

こんにちは。 Accessでサブフォームを持っているフォームがあり、サブフォーム側では Aというテーブルがレコードソースになっていて帳票形式で表示しています。 メインフォームで単票形式で表示してます。 サブフォームで表示された表の中から1レコードを選ぶと、メインのフォーム にコピーし編集が出来るようにしています。 そしてメインフォームで変更された内容をAテーブルに書き出し、サブフォーム の内容も最新の内容に書き換わっている、という事をしているのですが、 サブフォームをRequeryすると、表示順序やレコードセレクタの位置が変わって しまうのです。 サブフォームを、レコードを選択した時の位置のままで、内容は最新の状態で 表示できるようにするにはどうしたらいいのでしょうか? よろしくお願いします。

みんなの回答

  • Nac
  • ベストアンサー率63% (7/11)
回答No.2

どのように更新処理を行ってるかわからないのでなんとも言えませんが、 Requeryだとレコードの削除、追加を含めてテーブル全体の更新をして表示されるのに対し、 Refreshはカレントレコードへの変更を更新して表示するので、 メインフォームでサブフォームへ値を返す時に直接 Forms!メインフォーム.サブフォームオブジェクト名!項目名 = Forms!メインフォーム!項目名 として、最後に Forms!メインフォーム.サブフォームオブジェクト名.Form.Refresh Forms!メインフォーム.サブフォームオブジェクト名.SetFocus とすればいいかなと思います。 でも、仕様でこうできないのならばこの案もムダになっちゃいますね・・。

  • Nac
  • ベストアンサー率63% (7/11)
回答No.1

サブフォームのRequeryではなくメインフォームのRefreshでどうでしょう? データの追加や削除があるのならばRequeryを使用しないと正確に表示されませんが、 データの編集だけということならばRefreshでOKだと思います。

ruminow
質問者

お礼

データ更新を行うのでRefreshではダメなんです。 なにか良い方法ないですかねぇ。。。