Form.Requery メソッド (Access)

Requery メソッドは、指定したフォームの基になるデータを再クエリして更新します。

構文

再クエリ

expressionForm オブジェクトを表す変数です。

注釈

フォームまたはコントロールに最新のデータが表示されるようにするには、このメソッドを使用します。

Requery メソッドは、次の処理のいずれかを行います。

  • フォームやコントロールの基になるクエリを再度実行します。
  • フォームやコントロールの基になるテーブルで追加または変更されたレコードや削除されたレコードをすべて表示します。
  • フォームの " Filter /フィルター" プロパティへの変更に応じて、レコードの表示を更新します。

クエリやテーブルに基づくコントロールには次のようなものがあります。

  • リスト ボックスとコンボ ボックス。
  • サブフォーム コントロール。
  • グラフなどの OLE オブジェクト。
  • " ControlSource /コントロールソース" プロパティの設定値に定義域集計関数や SQL 集計関数が含まれるコントロール。

で指定されたオブジェクトに他の種類のコントロールを指定すると、フォームのレコード ソースが要求されます。

で指定されたオブジェクトがテーブルまたはクエリ内のフィールドにバインドされていない場合、Requery メソッドはコントロールの再計算を強制的に実行します。

で指定されたオブジェクトを省略すると、Requery メソッドは、フォーカスを持つフォームまたはコントロールの基になるデータ ソースを再クエリします。 フォーカスを持つコントロールがレコード ソースや値集合ソースを持っている場合は、再クエリが行われますが、それ以外の場合は、コントロールのデータが再表示されるだけです。

サブフォーム コントロールにフォーカスがある場合には、サブフォームのレコード ソースだけに再クエリを行います。

注:

  • Requery メソッドは、フォームやコントロールの基になるデータを更新して、最後にレコード ソースに再クエリを行った後に追加または削除されたレコードを反映します。 Refresh メソッドを使うと、カレント レコードセットに加えられた変更だけが表示され、レコード ソースで新しく追加されたレコードや削除されたレコードは表示されません。 Repaint メソッドを使うと、指定したフォームとそのコントロールが再描画されます。
  • Requery メソッドは制御をオペレーティング システムに渡さないので、Windows はメッセージ処理を続行できません。 一時的に制御をオペレーティング システムに渡す必要がある場合は、 DoEvents 関数を使います。
  • Requery メソッドは、Requery アクションよりも高速です。 再クエリ アクションを使用すると、Microsoft Access はクエリを閉じ、データベースから再読み込みします。 Requery メソッドを使用すると、Access はクエリを閉じて再読み込みせずにクエリを再実行します。

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