英語で読む

次の方法で共有


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 のサポートおよびフィードバックを参照してください。