Move メソッド

Recordset オブジェクトのカレント レコードの位置を移動します。

構文

recordset.Move NumRecords, Start

Move メソッドの構文には、次の指定項目があります。

指定項目

説明

recordset

カレント レコードの位置を移動する Recordset オブジェクトを表すオブジェクト変数です。

NumRecords

カレント レコードの位置を移動するレコード数を指定する符号付き長整数型 (Long) の式です。

Start

(省略可能) 評価結果がブックマークとなる文字列型 (String) またはバリアント型 (Variant) です。

解説

Move メソッドは、すべての Recordset オブジェクトでサポートされています。

引数 NumRecords が 0 より大きい場合、カレント レコードの位置は順方向に (レコードセットの終端に向かって) 移動します。NumRecords が 0 より小さい場合、カレント レコードの位置は逆方向に (レコードセットの先頭に向かって) 移動します。

Move メソッド呼び出しでカレント レコードの位置を先頭のレコードよりも前に移動しようとした場合、ADO はカレント レコードをレコードセットの先頭のレコードよりも前の位置に設定します (BOFTrue になります)。BOF プロパティが既に True であるときに逆方向に移動しようとすると、エラーになります。

Move メソッド呼び出しでカレント レコードの位置を終端のレコードよりも後ろに移動しようとした場合、ADO はカレント レコードをレコードセットの終端のレコードよりも後ろの位置に設定します (EOFTrue になります)。BOF プロパティが既に True であるときに順方向に移動しようとすると、エラーになります。

空の Recordset オブジェクトから Move メソッドを呼び出そうとした場合はエラーになります。

引数 Start を渡すと、Recordset オブジェクトはブックマークをサポートしていると仮定され、このブックマークを持つレコードから移動が行われます。引数を指定しない場合は、カレント レコードから移動が行われます。

CacheSize プロパティを使ってプロバイダからレコードをローカルにキャッシュしている場合、現在のキャッシュ レコード集合の範囲外の位置にカレント レコードを移動するような NumRecords を渡すと、ADO は移動先レコードから始まる新しいレコード集合を強制的に取得します。新しく取得される集合のサイズは CacheSize プロパティによって決まり、移動先のレコードは取得される先頭のレコードとなります。また、ローカル キャッシュを使用していて引数 Start を渡した場合にも、ADO は新しいレコードの集合を取得します。

Recordset オブジェクトが前方スクロールの場合でも、移動先が現在のキャッシュ レコード集合の範囲内であれば、0 より小さい NumRecords の値を渡すことができます。一方、Move メソッドを呼び出してカレント レコードの位置を 1 番目のキャッシュ レコードよりも前のレコードに移動しようとすると、エラーになります。したがって、順逆両方向のスクロールをサポートするレコード キャッシュを使えば、プロバイダが前方スクロールだけしかサポートしていない場合にも対処できます。ただし、キャッシュされたレコードはメモリにロードされるため、必要以上にレコードをキャッシュしないようにしてください。また、この方法を使って前方スクロールの Recordset オブジェクトを逆方向にも移動できるようにした場合でも、前方スクロールの Recordset オブジェクトで MovePrevious メソッドを呼び出すと、エラーになります。

対象

Recordset

関連項目

MoveFirstMoveLastMoveNextMovePrevious