Find メソッド (ADO)

適用先: Access 2013、Office 2013

Recordset から、指定した条件を満たす行を検索します。 必要に応じて、検索の方向、開始行、および開始行からのオフセットを指定できます。 条件が一致すると、カレント行の位置は、検出されたレコードに設定され、条件を満たす行がない場合は、Recordset の最後 (または最初) に設定されます。

構文

Find (Criteria, SkipRows, SearchDirection, Start)

パラメーター

パラメーター 説明
基準 検索に使用する列の名前、比較演算子、および値を指定するステートメントを含む文字列型 ( String ) の値を指定します。
SkipRows 省略可能です。 現在の行からの行オフセットを指定する Long 値 (既定値は 0)、検索を開始するには [ ブックマークの開始] を指定します。 By default, the search will start on the current row.
SearchDirection 省略可能です。 A SearchDirectionEnum value that specifies whether the search should begin on the current row or the next available row in the direction of the search. An unsuccessful search stops at the end of the Recordset if the value is adSearchForward. An unsuccessful search stops at the start of the Recordset if the value is adSearchBackward.
Start 省略可能です。 検索の開始位置として使用する、バリアント型 (Variant) のブックマークを指定します。

注釈

criteria には、列の名前を 1 つだけ指定できます。 このメソッドでは、複数列の検索はサポートしていません。

抽出条件の比較演算子は、">" (より大きい)、"<" (より小さい)、"=" (等しい)、">=" (等しくないか等しくない)、"<=" (等しくない)<>、または "like" (パターン マッチング) のいずれかです。

Criteria の値には、文字列、浮動小数点数、または日付を指定できます。 String values are delimited with single quotes or "#" (number sign) marks (for example, "state = 'WA'" or "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 などの、行の位置を設定するメソッドを呼び出す必要があります。

注:

[!メモ] レコードセットに対して Find メソッドを呼び出す場合で、レコードセット内の現在の位置が最後のレコードまたはファイルの最後 (EOF) の場合、何も検索されません。 あらかじめ MoveFirst メソッドを呼び出して、現在の位置またはカーソルをレコードセットの先頭に設定する必要があります。