MoveFirst メソッド、MoveLast メソッド、MoveNext メソッド、MovePrevious メソッド
Recordset オブジェクト内のカーソルを移動するには、MoveFirst メソッド(先頭のレコード)、MoveLast メソッド(最後のレコード)、MoveNext メソッド(次のレコード)、MovePrevious メソッド(前のレコード)を使用します。末尾や先頭の位置を超えたカーソルを移動しようとするとエラーが発生します。
【書式】
object.MoveFirst
object.MoveLast
object.MoveNext
object.MovePrevious
引数・戻り値
- object ・・・ 対象となる Recordset オブジェクトを指定します。
MoveFirst … カーソルを Recordset オブジェクト内の先頭に移動します。
MoveLast … カーソルを Recordset オブジェクト内の最後に移動します。
MoveNext … カーソルを 次のレコードに移動します。カーソル位置が末尾を越えるとエラーが発生します。この時、EOF プロパティ が True になります。
MovePrevious … カーソルを 前のレコードに移動します。カーソル位置が先頭を越えるとエラーが発生します。この時、BOF プロパティが True になります。
EOF プロパティ、BOF プロパティ に関しては、BOF プロパティ・EOF プロパティ を参照してください。
Move メソッド
Recordset オブジェクト内のカーソルを移動します。
【書式】
object.Move( NumRecords[, Start] )
引数・戻り値
- NumRecords ・・・ カレントレコードの位置を移動するレコード数(符号付き長整数型(Long)の式を指定します。0 よりも大きい値を指定した場合、カレントレコードの位置は前方、つまり、Recordset の終端方向に移動します。0 よりも小さい値を指定した場合、カレントレコードの位置は後方、つまり、Recordset の始端方向に移動します。
- Start ・・・ ブックマークとして評価される文字列型 (String) またはバリアント型 (Variant) の値を指定します。BookmarkEnum 値を使用することもできます(省略可)。
定数 値 内容 adBookmarkCurrent 0 現在のレコードから開始します adBookmarkFirst 1 最初のレコードから開始します adBookmarkLast 2 最後のレコードから開始します
MoveFirst、MoveLast、MoveNext、MovePrevious 使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
Sub Sample_ADO_Move() '参照設定:Microsoft ActiveX Data Objects 6.1 Library Dim cn As ADODB.Connection Dim Rs As ADODB.Recordset Dim constr As String Dim DBFile As String Dim strSQL As String Dim i As Long Dim j As Long DBFile = ActiveWorkbook.Path & "\mydb1.accdb" constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DBFile Set cn = New ADODB.Connection cn.ConnectionString = constr cn.Open strSQL = "Select * from 社員名簿 where ID < 10 order by ID;" Set Rs = New ADODB.Recordset Rs.Source = strSQL Rs.ActiveConnection = cn Rs.Open With Worksheets("Sheet1") Rs.MoveFirst i = 1 .Cells.Clear Do Until Rs.EOF For j = 0 To Rs.Fields.Count - 1 .Cells(i, j + 1) = Rs(j).Value Next j Rs.MoveNext i = i + 1 Loop End With Rs.Close Set Rs = Nothing cn.Close Set cn = Nothing End Sub |