へっぽこヘタレシステム管理人の管理者です。
アクセスでシステムを作っていると・・・
アクティブなフォームから別のフォームのサブフォームの内容を更新したい場合が出てきます。
別のフォーム全体を更新するコマンド次の様に仕込むと・・・
Forms.フォーム名.Recalc
フォームが参照しているデータ項目によっては、フリーズする事があります。
これは、管理人のフォームの設計が悪いのだとは思うのですが・・・
別のフォーム内のサブフォームだけを更新するれば、フリーズすることが無いことが分かったので・・・
なんとか実行する方法がないかと調べているうちに解決することができました。
コードの書き方だけの問題だったのですが・・・
次のように記述するとアクティブなフォームから別のフォームのサブフォームのみ更新することができます。
Forms!フォーム名!サブフォーム名.Requery
【Requery】を【Recalc】や【Refresh】にしてみたら動きませんでしたので・・・
この3つの違いをいまいちわかっていないのですが・・・
- 【Requery】 全てのクライアントからの変更を反映 Shift+F9と同じ
- 【Recalc】 演算コントロールを再計算 F9と同じ
- 【Refresh】 フォーム内各レコードの更新 メニューのレコード→更新と同じ
違いは上の3つらしいです。
違いがイマイチ分かりませんが、フォームの表示を更新したいなら【Requery】が良さそうです。