SearchForRecord マクロ アクション
適用先: Access 2013、Office 2013
SearchForRecord アクションは、テーブル、クエリ、フォーム、またはレポート内の特定のレコードを検索するために使用します。
設定
SearchForRecord アクションの引数は次のとおりです。
アクションの引数 |
説明 |
||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Object Type/オブジェクトの種類 |
検索先のデータベース オブジェクトの種類を入力または選択します。 [ テーブル ]、[ クエリ ]、[ フォーム ]、[ レポート ] のいずれかを選択できます。 |
||||||||||
Object Name/オブジェクト名 |
検索対象のレコードが含まれている特定のオブジェクトを入力または選択します。 ドロップダウン リストには、 Object Type/オブジェクトの種類 引数で選択した種類のデータベース オブジェクトがすべて表示されます。 |
||||||||||
レコード/Record |
検索の開始点と方向を指定します。
|
||||||||||
Where Condition/Where 条件式 |
SQL WHERE 句と同じ構文を使用して検索条件を入力します (ただし、"WHERE" という語は含めません)。 例えば、 'Description = "Beverages"' フォームのテキスト ボックスにある値を含む条件を作成するには、条件の最初の部分と、検索対象の値を含むテキスト ボックスの名前を連結する式を作成する必要があります。 たとえば、次の条件では、"説明" フィールドで frmCategories というフォーム上の txtDescription というテキスト ボックスに含まれる値を検索します。 式の先頭に等号 (=) があることと、テキスト ボックス参照の前後に単一引用符 (') があることに注意してください。 '="Description = ' " & Forms![frmCategories]![txtDescription] & "'"' |
注釈
複数のレコードが Where Condition/Where 条件式引数の条件と一致した場合は、次の要因によって、検出されるレコードが決まります。
Record/レコード引数の設定: 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 アクションを使用して [商品区分] テーブルを開きます。 次に、SearchForRecord アクションを使用して、テーブル内で [説明] フィールドが "飲料" である最初のレコードを検索します。
アクション |
引数 |
---|---|
OpenTable |
テーブル名: カテゴリビュー: データシートデータ モード: 編集 |
SearchForRecord |
オブジェクトの種類: TableObject 名: カテゴリレコード: FirstWhere 条件: Description = "Beverages" |