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/再クエリ" メソッドと同じように機能します。