Access デスクトップ データベースの"SearchForRecord/オブジェクトからレコードの検索" マクロ アクションを使うと、テーブル、クエリ、フォーム、またはレポートの特定のレコードを検索できます。
設定
"SearchForRecord/オブジェクトからレコードの検索" マクロ アクションには次の引数があります。
アクションの引数 |
説明 |
||||||||||
オブジェクトの種類 |
レコードを検索するデータベース オブジェクトの種類を入力または選択します。 [テーブル]、[クエリ]、[フォーム]、または [レポート] を選択できます。 |
||||||||||
オブジェクト名 |
検索対象のレコードが含まれている特定のオブジェクトを入力または選択します。 ドロップダウン リストに、"Object Type/オブジェクトの種類" 引数で選択した種類のすべてのデータベース オブジェクトが表示されます。 |
||||||||||
レコード |
検索の開始位置と方向を指定します。
|
||||||||||
Where 条件式 |
"WHERE" という単語を含まない SQL WHERE 句と同じ構文を使用して、検索の条件を入力します。 たとえば、 Description = "Beverages" フォーム上のテキスト ボックスからの値を含む条件を作成するには、条件の最初の部分と、検索対象の値を含むテキスト ボックスの名前を連結する式を作成する必要があります。 たとえば、次の条件は、Description フィールドで、frmCategories という名前のフォームの txtDescription という名前のテキスト ボックスの値を検索します。 式の先頭にある等号 (=) と、テキスト ボックス参照の両側に使われている単一引用符 (') にご注意ください。 ="Description = '" & Forms![frmCategories]![txtDescription] & "'" |
解説
-
"Where Condition/Where 条件式" 引数の抽出条件と複数のレコードが一致する場合、検索されるレコードは次の要因によって決まります。
-
レコード引数の設定 "Record/レコード" 引数に関する詳細については、「設定」セクションの表を参照してください。
-
レコードの並べ替え順序 たとえば、"Record/レコード" 引数を [先頭] に設定した場合、レコードの並べ替え順序を変更すると、見つかるレコードが変わることがあります。
-
-
このアクションを実行する前に、"Object Name/オブジェクト名" 引数で指定したオブジェクトを開いておく必要があります。 そうしないと、エラーが発生します。
-
"Where Condition/Where 条件式" 引数の抽出条件が満たされない場合、エラーは発生せず、フォーカスは現在のレコードのままになります。
-
前または次のレコードを検索する場合、データの終端になっても検索は "折り返されません"。 抽出条件に一致するレコードがそれ以上ない場合、エラーは発生せず、フォーカスは現在のレコードのままになります。 一致が見つかったことを確認するには、次のアクションの条件を入力し、条件を "Where Condition/Where 条件式" 引数の抽出条件と同じにします。
-
VBA モジュールで "SearchForRecord/オブジェクトからレコードの検索" アクションを実行するには、DoCmd オブジェクトの "SearchForRecord/オブジェクトからレコードの検索" メソッドを使います。
-
"SearchForRecord/オブジェクトからレコードの検索" マクロ アクションは "FindRecord/レコードの検索" マクロ アクションと似ていますが、"SearchForRecord/オブジェクトからレコードの検索" はさらに強力な検索機能を備えています。 "FindRecord/レコードの検索" マクロ アクションは、主に文字列の検索に使用され、[検索] ダイアログ ボックスの機能と同じです。 "SearchForRecord/オブジェクトからレコードの検索" マクロ アクションは、それよりもフィルターまたは SQL クエリに似た抽出条件を使います。 次の一覧では、"SearchForRecord/オブジェクトからレコードの検索" マクロ アクションで実行できることを示します。
-
"Where Condition/Where 条件式" 引数では、次のような複雑な抽出条件を使用できます。
-
Description = "Beverages" and CategoryID = 11
-
フォームまたはレポートのレコード ソース内にはあってもフォームまたはレポートに表示されないフィールドを参照できます。 前の例では、抽出条件が動作するために、Description および CategoryID のどちらもフォームまたはレポートに表示される必要はありません。
-
<、>、AND、OR、BETWEEN などの論理演算子を使用できます。 "FindRecord/レコードの検索" アクションは、検索対象の文字列と等しい文字列、その文字列で始まっている文字列、またはその文字列を含む文字列だけと一致します。
例
次のマクロは、最初に "OpenTable/テーブルを開く" アクションを使って、Categories テーブルを開きます。 次に、"SearchForRecord/オブジェクトからレコードの検索" マクロ アクションを使って、Description フィールドが "Beverages" と等しい最初のレコードをテーブル内で検索します。
アクション |
引数 |
OpenTable/テーブルを開く |
テーブル名:Categories 表示:データシート データ モード:Edit |
SearchForRecord/オブジェクトからレコードの検索 |
オブジェクトの種類:Table オブジェクト名:Categories レコード:First Where 条件式:Description = "Beverages" |