次の方法で共有


SearchForRecord マクロ アクション

適用先: Access 2013、Office 2013

SearchForRecord アクションは、テーブル、クエリ、フォーム、またはレポート内の特定のレコードを検索するために使用します。

設定

SearchForRecord アクションの引数は次のとおりです。

アクションの引数

説明

Object Type/オブジェクトの種類

検索先のデータベース オブジェクトの種類を入力または選択します。 [ テーブル ]、[ クエリ ]、[ フォーム ]、[ レポート ] のいずれかを選択できます。

Object Name/オブジェクト名

検索対象のレコードが含まれている特定のオブジェクトを入力または選択します。 ドロップダウン リストには、 Object Type/オブジェクトの種類 引数で選択した種類のデータベース オブジェクトがすべて表示されます。

レコード/Record

検索の開始点と方向を指定します。

設定

説明

Previous

カレント レコードから前方へ検索します。

Next/次のレコード

カレント レコードから後方へ検索します。

First/先頭のレコード

最初のレコードから後方へ検索します。 この引数の既定値です。

Last/最後のレコード

最後のレコードから前方へ検索します。

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 も表示されない場合でも、条件は機能します。

    • <>ANDORBETWEEN などの論理演算子を使用できます。 FindRecord アクションでは、検索対象の文字列と完全に一致する文字列、検索対象の文字列で始まる文字列、検索対象の文字列を含む文字列のみが検索されます。

次のマクロは、まず OpenTable アクションを使用して [商品区分] テーブルを開きます。 次に、SearchForRecord アクションを使用して、テーブル内で [説明] フィールドが "飲料" である最初のレコードを検索します。

アクション

引数

OpenTable

テーブル名: カテゴリビュー: データシートデータ モード: 編集

SearchForRecord

オブジェクトの種類: TableObject 名: カテゴリレコード: FirstWhere 条件: Description = "Beverages"