goo blog サービス終了のお知らせ 

access vba

goodbye

フォームのデータを更新する

2015年05月09日 | アクセス

フォームのデータを更新する


但しこの更新は、現在のフォームの元となっているレコードセットにのみ適用されます。

ですので、他の人が追加したレコード や 削除されたレコード は、更新できません。

これを手動で行うには、「Shft」+「F9」 を実行します。

これによって、フォームの元のレコードセットが再計算され、再び最新のデータが表示されます。

これは、VBAの 「Requery」 メソッドを使用した場合と同様です。

これに関連するメソッドが他にもあります。
以下にその違いを説明します。
≪Requery≫

  Me.Requery

フォームの元データを再クエリーします。 「Shift」+「F9」 と同様です。

自分以外のPCで追加・変更・削除された全ての結果がフォームに反映します。
ただし、特定のコントロールを指定してこのメソッドを使用した場合は、そのコントロールが再計算されます。
≪Recalc≫

  Me.Recalc

フォーム内の全ての演算コントロールを再計算します。 「F9」 と同様です。

当然、他者による、元データの変更結果は反映されません。
≪Refresh≫

  Me.Refresh

フォームの元データを更新します。
メニューの「レコード」-「更新」 (AcXPの場合は、「最新の情報に更新」) と同様です。

他者による、元データへの変更結果を現在の画面に反映させます。
ただし、これはカレントレコードに対する変更を反映するだけですので、
他者によって追加されたデータや削除されたデータは反映できません。

この「更新」は、Accessのmdbの場合、メニューの「オプション」の「詳細」タブにある、
「再表示の間隔」に基づいて、Accessが自動で行う処理と同様です。
また、 データがSQLサーバーなどの場合は、「ODBC の再表示の間隔」の処理と同様です。
≪Repaint≫

  Me.Repaint

フォームを再描画し、フォーム上のコントロールを再計算します。

再描画するだけですので、当然他者による、元データの変更結果は反映されません。