Recordset から、指定した条件を満たす行を検索します。必要に応じて、検索の方向、開始行、および開始行からのオフセットを指定できます。条件が一致すれば、カレント行の位置は、検出されたレコードに設定されます。条件を満たす行がない場合は、カレント行の位置は Recordset の最後 (または最初) に設定されます。
構文
Find (Criteria, SkipRows, SearchDirection, Start)
パラメータ
Criteria 検索に使用する列の名前、比較演算子、および値を指定するステートメントを含む文字列型 (String) の値を指定します。
SkipRows 省略可能です。検索を開始する、カレント行または Start ブックマークからの行のオフセットを指定する長整数型 (Long) の値を指定します。既定値は 0 です。既定では、カレント行から検索が開始されます。
SearchDirection 省略可能です。検索方向に向かって、カレント行または使用可能な次の行のどちらから検索を開始するかを指定する SearchDirectionEnum 値を指定します。検索に成功しなかった場合、この値に adSearchForward が指定されていると、Recordset の終わりで停止します。また、検索に成功しなかった場合、この値に adSearchBackward が指定されていると、Recordset の先頭で停止します。
Start 省略可能です。検索の開始位置として使用するバリアント型 (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 メソッドを呼び出す前にカレント行の位置が設定されていない場合は、エラーが発生します。Find メソッドを呼び出す前に、MoveFirst など、行の位置を設定するメソッドを呼び出す必要があります。