DoCmd.SearchForRecord メソッド (Access)

SearchForRecord メソッドを使用して、テーブル、クエリ、フォーム、またはレポート内の特定のレコードを検索します。

構文

SearchForRecord (ObjectType, ObjectName, Record, WhereCondition)

expression: DoCmd オブジェクトを表す変数。

パラメーター

名前 必須 / オプション データ型 説明
ObjectType 省略可能 AcDataObjectType 検索するデータベース オブジェクトの種類を指定する AcDataObjectType 定数です。 既定値は acActiveDataObject です。
ObjectName 省略可能 バリアント型 (Variant) 検索するレコードが含まれているデータベース オブジェクトの名前です。
Record 省略可能 AcRecord 検索の開始点と方向を指定する AcRecord 定数です。 既定値は acFirst です。
WhereCondition 省略可能 バリアント型 (Variant) レコードの位置を特定するために使用される文字列です。 SQL ステートメントの WHERE 句に似ていますが、WHERE という単語はありません。

注釈

複数のレコードが WhereCondition 引数の条件に一致する場合、どのレコードが見つかるかは以下の要因によって決まります。

  • Record 引数の設定。

  • レコードの並べ替え順序。 たとえば、 Record 引数が acFirst に設定されている場合、レコードの並べ替え順序を変更すると、見つかるレコードが変わる場合があります。

このアクションを実行する前に、 ObjectName 引数で指定されたオブジェクトを開く必要があります。 それ以外の場合、エラーが発生します。

WhereCondition 引数の条件が満たされない場合、エラーは発生せず、現在のレコードにフォーカスが残ります。

前のレコードまたは次のレコードを検索する場合、データの先頭または末尾まで検索すると、そこで終了します。 条件に一致するレコードがなくても、エラーは発生せず、フォーカスはカレント レコードに置かれたままになります。 一致するものが見つかったことを確認するには、次のアクションの条件を入力し、その条件を WhereCondition 引数の条件と同じようにします。

SearchForRecord メソッドは FindRecord メソッドに似ていますが、SearchForRecord にはより強力な検索機能があります。 FindRecord メソッドは主に文字列の検索に使用され、[検索] ダイアログ ボックスの機能と重複します。 SearchForRecord メソッドは、フィルターや SQL クエリの条件に似た抽出条件を使用します。

次の一覧は、 SearchForRecord メソッドでできることを示しています。

  • WhereCondition 引数には、Description = "Beverages" and CategoryID = 11 などの複雑な条件を使用します。

  • フォームやレポートのレコード ソースにはあるが、フォームやレポートには表示されないフィールドを参照します。 前の例では、条件を機能させるために、フォームまたはレポートに DescriptionCategoryID も表示しないでください。

  • <>ANDORBETWEEN などの論理演算子を使用します。 FindRecord メソッドは、検索対象の文字列と等しい、その文字列で始まる、またはその文字列を含む文字列とのみ一致します。

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。