Move メソッド (ADO)

適用先: Access 2013、Office 2013

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

構文

recordsetNumRecords の移動、 開始

パラメーター

パラメーター 説明
NumRecords カレント レコードの位置を移動するレコード数を指定する、符号付きの長整数型 ( Long ) の式を指定します。
Start 省略可能です。 ブックマークとして評価される文字列型 ( String ) の値またはバリアント型 ( Variant ) を指定します。 BookmarkEnum 値を使用することもできます。

注釈

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

NumRecords 引数がゼロより大きい場合、現在のレコードの位置は前方 (Recordset の末尾方向) に移動します。 NumRecords がゼロより小さい場合、現在のレコードの位置は後方 (Recordset の先頭方向) に移動します。

Move 呼び出しが現在のレコード位置を最初のレコードの前のポイントに移動する場合、ADO は現在のレコードをレコードセットの最初のレコードの前の位置に設定します (BOFTrue)。 BOF プロパティが既に True の場合、後方へ移動しようとすると、エラーが発生します。

Move メソッドを呼び出してカレント レコードの位置を最後のレコードの後に移動しようとすると、カレント レコードがレコードセットの最後のレコードの後に設定され、EOFTrue になります。 EOF プロパティが既に True の場合、前方へ移動しようとすると、エラーが発生します。

空の Recordset オブジェクトから Move メソッドを呼び出すと、エラーが発生します。

Start 引数を指定した場合、Recordset オブジェクトではブックマークがサポートされていると見なされ、このブックマークを持つレコードが移動の基準となります。 指定しない場合は、カレント レコードが移動の基準となります。

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

Recordset オブジェクトが前方スクロールのみ可能な場合でも、移動先が現在キャッシュされているレコードセットの範囲内であれば、NumRecords 引数に 0 より小さい値を指定できます。 Move メソッドを呼び出して、カレント レコードの位置を、キャッシュされている最初のレコードより前のレコードに移動しようとすると、エラーが発生します。 このように、前方スクロールのみをサポートするプロバイダーで、完全スクロールをサポートするレコード キャッシュを使用することができます。 キャッシュされたレコードはメモリに読み込まれるため、必要以上のレコードのキャッシュは避けてください。 前方スクロールのみ可能な Recordset オブジェクトでも、この方法で後方への移動をサポートできますが、前方スクロールのみ可能な Recordset オブジェクトで MovePrevious メソッドを呼び出すと、エラーが発生します。

注:

[!メモ] 前方スクロールのみ可能な Recordset で後方への移動がサポートされているかどうかは、プロバイダーによります。 カレント レコードが Recordset の最後のレコードの後にある場合、後方への Move を実行しても現在の位置が正しく示されないことがあります。