1.Access VBA の Refresh,Requery,Repaintはそれぞれどんな時に使うと効果があるのですか?
まずは、Refresh, Requery, Repaint のヘルプを確認しましょう。詳しく解説されています。。
それぞれのコマンドにカーソルを置いてF1キーを押すとヘルプが表示されます。
それぞれのコマンドの意味の違いも「注意」というコラムに解説があります。
Me.Requery
Me.Refresh
Me.Repaint
のそれぞれの違いを簡単に説明しておきます。
Meというのはコードを記述してあるオブジェクトを指します。フォームモジュールに記述してあるのならそのフォームのことです。
Me.Requery はフォームのレコードソースのテーブル(またはクエリ)を再読み込みします。すべてのレコードを読み込みますので、カレントレコードは先頭へ移動します。
使いどころとしては、レコードソースか他から更新・削除・追加があったときに、それをフォームに反映させたいときです。
Me.Refresh はカレントレコードのみ再読み込みします。読み込むのはカレントレコードのみですので、レコード移動はしません。
使いどころは、他からカレントレコードに対してされた変更はフォームに反映させたいときです。
Me.Repaintはフォーム上のコントロールの再描画を行います。タスク実行中だとすぐに再描画されない場合があるので再描画を強制します。あくまでフォーム上の表示だけの問題ですので、レコードソースとは関係ありません。
VBAでループなどでコードを連続実行する場合、コントロールの値やプロパティを変更してもすぐに反映されないときに使います。