Find メソッド (ADO)
指定された条件を満たす行を Recordset で検索します。 必要に応じて、検索の方向、開始行、および開始行からのオフセットを指定できます。 条件が満たされている場合、現在の行位置は見つかったレコードに設定されます。それ以外の場合、Recordset の末尾 (または先頭) に設定されます。
構文
Find (Criteria, SkipRows, SearchDirection, Start)
パラメーター
条件
検索で使用する列名、比較演算子、および値を指定するステートメントを含む String 値。
SkipRows
省略可能。 検索を開始する現在の行または Start ブックマークからの行オフセットを指定する Long 値 (既定値は 0)。 既定では、現在の行から検索が開始されます。
SearchDirection
省略可能。 検索を現在の行から開始するか、検索の方向で次に使用可能な行から開始するかを指定する SearchDirectionEnum 値。 値が adSearchForward の場合、Recordset の末尾で失敗した検索が停止します。 値が adSearchBackward の場合、Recordset の先頭で失敗した検索が停止します。
[開始]
省略可能。 検索の開始位置として機能する Variant ブックマーク。
注釈
Criteria には単一列名のみを指定できます。 このメソッドでは複数列の検索はサポートされていません。
Criteria の比較演算子は、">" (より大きい)、"<" (より小さい)、"=" (等しい)、">=" (以上)、"<=" (以下)、"<>" (等しくない)、または "like" (パターン マッチング) にすることができます。
Criteria の値は、文字列、浮動小数点数、または日付にすることができます。 文字列の値は、単一引用符または "#" (番号記号) マークで区切られます (たとえば、"state = 'WA'" や "state = #WA#")。 日付の値は、"#" (番号記号) マークで区切られます (たとえば、"start_date > #7/22/97#")。 これらの値には、タイム スタンプを示す時間、分、秒を含めることができますが、ミリ秒は含めることはできません。そのようにすると、エラーが発生します。
比較演算子が "like" の場合、文字列値にはアスタリスク (*) を含め、任意の文字または部分文字列の 1 つまたは複数の出現箇所を検索できます。 たとえば、"state like 'M*'" は Maine および Massachusetts と一致します。 先頭と末尾のアスタリスクを使用して、値に含まれる部分文字列を検索することもできます。 たとえば、"state like '*as*'" は Alaska、Arkansas、および Massachusetts と一致します。
アスタリスクは、前述のように、条件文字列の末尾にのみ使用することも、条件文字列の先頭と末尾の両方で使用することもできます。 先頭のワイルドカード ('*str') または埋め込みワイルドカード ('s*r') としてアスタリスクを使用することはできません。 これにより、エラーが発生します。
注意
Find を呼び出す前に現在の行位置が設定されていない場合、エラーが発生します。 MoveFirst などの行位置を設定するメソッドは、Find を呼び出す前に呼び出す必要があります。
注意
レコードセットで Find メソッドを呼び出し、そのレコードセット内の現在の位置が最後のレコードまたはファイルの終わり (EOF) にある場合、何も見つかりません。 現在の位置やカーソルをレコードセットの先頭に設定するには、MoveFirst メソッドを呼び出す必要があります。
適用対象
参照
Find メソッドの例 (VB)
Index プロパティ
Optimize プロパティ - 動的 (ADO)
Seek メソッド