CDaoRecordset::FindNext
更新 : 2007 年 11 月
指定された条件に一致する次のレコードを検索します。
BOOL FindNext(
LPCTSTR lpszFilter
);
パラメータ
- lpszFilter
レコードの位置検索に使われる文字列式 (SQL ステートメントの WHERE 句から WHERE を除いた部分に当たるようなもの)。
戻り値
一致するレコードが見つかった場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
FindNext メンバ関数は、現在のレコードから、レコードセットの末尾に向かって、検索を開始します。
検索で、(指定した条件に合うものだけでなく) すべてのレコードを含めたいときは、レコード間を移動する移動操作の 1 つを使います。テーブル タイプのレコードセットのレコードを位置付けるには、Seek メンバ関数を呼び出します。
条件に一致するレコードが見つからないと、現在のレコードのポインタは不定となり、FindNext は 0 を返します。レコードセットが条件に一致するレコードを 1 つ以上持っていると、FindFirst は最初のものを、FindNext は次のものを、以下同じように位置付けます。
注意 : |
---|
現在のレコードを編集したときは、他のレコードに移動する前に Update メンバ関数を呼び出して、変更を確実に保存するようにします。更新せずにほかのレコードに移動すると、変更は警告なしで失われます。 |
検索操作の 1 つを使うことは、MoveFirst または MoveNext の呼び出しと同じではありません。この 2 つの関数は、条件を指定せずに、単純に現在のレコードを先頭または次のレコードに移動します。移動操作の後に検索操作ができます。
検索操作を使うときは、次のことに注意してください。
Find が 0 以外を返すと、現在のレコードは不定となります。この場合、現在のレコードが有効なレコードを指すように、位置付ける必要があります。
前方スクロール専用のスナップショット タイプのレコードセットでは検索操作は使えません。
Microsoft Jet データベース エンジンの U.S. バージョンを使っていなくても、日付を持つフィールドを検索するときは、U.S. 日付形式 (month-day-year) を使うようにします。それ以外では、一致するレコードを検索できない場合があります。
ODBC データベースで大きなダイナセットを処理しているときに検索操作を実行すると、特にレコードセットが大きい場合は処理速度が低下します。カスタマイズされた ORDER BY 句または WHERE 句を使った SQL クエリ、パラメータ クエリ、または特定のインデックスされたレコードを取り出す CDaoQuerydef を使うことにより、パフォーマンスを向上させることができます。
関連情報については、DAO ヘルプの「FindFirst, FindLast, FindNext, FindPrevious Methods」を参照してください。
必要条件
ヘッダー : afxdao.h