Requery マクロ アクション

適用先
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Access データベースの Requery マクロ アクションを使用すると、コントロールのソースを再クエリすることで、アクティブ オブジェクトの指定されたコントロール内のデータを更新できます。 コントロールが指定されていない場合、オブジェクト自体のソースが再クエリされます。 このアクションを使用し、アクティブなオブジェクトまたはそのコントロールの 1 つに最新のデータが表示されるようにします。

設定

"Requery/再クエリ" マクロ アクションには次の引数があります。

アクションの引数 説明
コントロール名 更新するコントロールの名前です。 マクロ デザイン ウィンドウの [コントロール名] ボックスにコントロール名を入力します。 (Forms!フォーム名!コントロール名) 完全修飾識別子ではなく、コントロールの名前だけを使用してください。 この引数を空にすると、アクティブなオブジェクトのソースが再クエリされます。 アクティブ オブジェクトがデータシートまたはクエリ結果セットの場合は、この引数を空白のままにする必要があります。

解説

"Requery/再クエリ" マクロ アクションは、次のいずれかを実行します。

  • コントロールまたはオブジェクトが基礎にするクエリを再実行します。
  • 新しいレコードまたは変更されたレコードを表示し、コントロールまたはオブジェクトの基になっているテーブルから削除されたレコードを削除します。

"Requery/再クエリ" マクロ アクションは、レコード ポインターの位置に影響を与えません。

クエリまたはテーブルを基礎とするコントロールに含まれるもの:

  • リスト ボックスとコンボ ボックス。
  • サブフォーム コントロール。
  • OLE オブジェクト (グラフなど)。
  • ドメイン集計関数 ( DSum など) を含むコントロール。

指定したコントロールがクエリまたはテーブルを基礎としていない場合、このアクションでは、コントロールの再計算が強制されます。

Control Name 引数を空白のままにした場合、Requery アクションは、オブジェクトにフォーカスがあるときに Shift + F9 キーを押すのと同じ効果があります。 サブフォーム コントロールにフォーカスがある場合、このアクションはサブフォームのソースのみを再クエリします (Shift キーを押しながら F9 キーを押すのと同様)。

Requery マクロ アクションは、コントロールまたはオブジェクトのソースを再クエリします。 一方、 RepaintObject マクロ アクションは、指定したオブジェクト内のコントロールを再描画しますが、データベースの再クエリや新しいレコードの表示は行いません。 ShowAllRecords マクロ アクションは、アクティブなオブジェクトを再クエリするだけでなく、適用されたフィルターも削除します。これは、Requery マクロ アクションでは実行されません。

アクティブなオブジェクトにないコントロールを再クエリする場合、"Requery/再クエリ" マクロ アクションや DoCmd オブジェクトの "Requery/再クエリ" メソッドではなく、Visual Basic for Applications (VBA) モジュールの "Requery/再クエリ" メソッドを使用する必要があります。 VBA の "Requery/再クエリ" メソッドは、"Requery/再クエリ" マクロ アクションや DoCmd.Requery メソッドより高速になります。 さらに、 Requery マクロ アクションまたは DoCmd.Requery メソッドを使用すると、Access によってクエリが閉じられ、データベースから再読み込みが行われますが、 Requery メソッドを使用すると、クエリは閉じて再読み込みせずに再実行されます。 ActiveX Data Object (ADO) "Requery/再クエリ" メソッドは、Access "Requery/再クエリ" メソッドと同じように機能します。