Control.Requery メソッド (Access)
Requery メソッドは、アクティブ フォームの指定したコントロールの基になるデータを、再クエリして更新します。
式。Requery
式Control オブジェクトを表す変数。
フォームまたはコントロールに最新のデータが表示されるようにするには、このメソッドを使用します。
Requery メソッドは、次の処理のいずれかを行います。
- フォームやコントロールの基になるクエリを再度実行します。
- フォームやコントロールの基になるテーブルで追加または変更されたレコードや削除されたレコードをすべて表示します。
- フォームの " Filter /フィルター" プロパティへの変更に応じて、レコードの表示を更新します。
クエリやテーブルに基づくコントロールには次のようなものがあります。
- リスト ボックスとコンボ ボックス。
- サブフォーム コントロール。
- グラフなどの OLE オブジェクト。
- " ControlSource /コントロールソース" プロパティの設定値に定義域集計関数や SQL 集計関数が含まれるコントロール。
expression で指定されたオブジェクトに対して他の種類のコントロールを指定すると、フォームのレコード ソースが再クエリされます。
式で指定されたオブジェクトがテーブルまたはクエリのフィールドにバインドされていない場合、Requery メソッドはコントロールの再計算を強制します。
式で指定されたオブジェクトを省略した場合、Requery メソッドは、フォーカスがあるフォームまたはコントロールの基になるデータ ソースを再クエリします。 フォーカスを持つコントロールがレコード ソースや値集合ソースを持っている場合は、再クエリが行われますが、それ以外の場合は、コントロールのデータが再表示されるだけです。
サブフォーム コントロールにフォーカスがある場合には、サブフォームのレコード ソースだけに再クエリを行います。
注意
- Requery メソッドは、フォームやコントロールの基になるデータを更新して、最後にレコード ソースに再クエリを行った後に追加または削除されたレコードを反映します。 Refresh メソッドを使うと、カレント レコードセットに加えられた変更だけが表示され、レコード ソースで新しく追加されたレコードや削除されたレコードは表示されません。 Repaint メソッドを使うと、指定したフォームとそのコントロールが再描画されます。
- Requery メソッドは制御をオペレーティング システムに渡さないので、Windows はメッセージ処理を続行できません。 一時的に制御をオペレーティング システムに渡す必要がある場合は、 DoEvents 関数を使います。
- Requery メソッドは、 Requery アクションよりも高速です。 Requery アクションを使用すると、Microsoft Access によってクエリが閉じられ、データベースから再読み込みされます。 Requery メソッドを使用すると、閉じて再読み込みせずにクエリが再実行されます。
次の例では、Requery メソッドを使用して、Employees フォームの EmployeeList リスト ボックスからデータを再クエリします。
Public Sub RequeryList()
Dim ctlCombo As Control
' Return Control object pointing to a combo box.
Set ctlCombo = Forms!Employees!ReportsTo
' Requery source of data for list box.
ctlCombo.Requery
End Sub
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。