MoveFirst、MoveLast、MoveNext、MovePrevious メソッド

       

指定した Recordset オブジェクトの最初、最後、次、または前のレコードに移動して、そのレコードをカレント レコードにします。

構文

recordset.{MoveFirst | MoveLast | MoveNext | MovePrevious}

解説

MoveFirst メソッドでは、カレント レコードの位置を Recordset の最初のレコードに移動します。

MoveLast メソッドでは、カレント レコードの位置を Recordset の最後のレコードに移動します。この場合、Recordset オブジェクトがブックマークまたは後方スクロール タイプのカーソルをサポートしている必要があります。サポートしていない場合にこのメソッドを実行すると、エラーが発生します。

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

フィルタまたはソートが実行された Recordset でカレント レコードのデータを変更すると、その位置も変更されることがあります。その場合、MoveNext メソッドは正常に動作しますが、その位置が、元の位置からではなく、変更後の位置から 1 レコード先に移動されることに注意する必要があります。たとえば、カレント レコードのデータを、ソートされた Recordset の最後に移動するように変更した場合、MoveNext を呼び出すと、カレント レコードは Recordset の最後のレコードの後 (EOF = True) に設定されることになります。

MovePrevious メソッドでは、カレント レコードの位置を 1 レコード後方 (Recordset の始端方向) に移動します。この場合、Recordset オブジェクトがブックマークまたは後方スクロール タイプのカーソルをサポートしている必要があります。サポートしていない場合にこのメソッドを実行すると、エラーが発生します。カレント レコードが最初のレコードの場合に MovePrevious メソッドを呼び出すと、カレント レコードは Recordset の最初のレコードの前に設定され、BOFTrue になります。BOF プロパティが既に True の場合、後方へ移動しようとすると、エラーが発生します。Recordset オブジェクトがブックマークまたは後方スクロール タイプのカーソルをサポートしていない場合、MovePrevious メソッドを実行すると、エラーが発生します。

前方スクロールのみ可能な Recordset で両方向のスクロールを行う必要がある場合は、CacheSize プロパティを使ってレコード キャッシュを作成し、Move メソッドで後方へのカーソル移動を行うことができます。キャッシュされたレコードはメモリに読み込まれるため、必要以上のレコードのキャッシュは避けてください。前方スクロールのみ可能な Recordset オブジェクトで MoveFirst メソッドを呼び出すことはできますが、その場合、プロバイダで、Recordset オブジェクトを生成するコマンドが再度実行されることがあります。