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などの複雑な条件を使用します。フォームやレポートのレコード ソースにはあるが、フォームやレポートには表示されないフィールドを参照します。 前の例では、条件を機能させるために、フォームまたはレポートに
DescriptionもCategoryIDも表示しないでください。<、>、AND、OR、BETWEEN などの論理演算子を使用します。 FindRecord メソッドは、検索対象の文字列と等しい、その文字列で始まる、またはその文字列を含む文字列とのみ一致します。
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。