カレントレコードの移動(ADO)MoveFirst、MoveLast、MoveNext、MovePrevious、Move
2017/09/01
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 |
実行結果
関連記事
-
Excel VBA のクラスを使ってデータベースへ接続する(ADO)
データベースの処理をクラスモジュールに書く ExcelVBAで、クラス使用する方 …
-
トランザクション(ADO)BeginTrans、CommitTrans、RollbackTrans
ADO でのトランザクション処理 【書式】 Sub Sample_Transac …
-
Recordset オブジェクトの内容をワークシートにコピーする(CopyFromRecordset メソッド・ADO)
CopyFromRecordset メソッド ADO の Recordset オ …
-
クエリにパラメータを渡して結果を取得する(ADO)Command オブジェクト・Execute メソッド
クエリにパラメータを渡して結果を取得する手順 Command オブジェクトの作成 …
-
レコードの追加(ADO)AddNew メソッド,Update メソッド
データベースにレコードを追加する AddNew メソッド 新規レコードを追加し、 …
-
BOF プロパティ・EOF プロパティ(ADO)
EOF プロパティ・BOF プロパティ BOF プロパティは、カレントレコードの …
-
フィールド名(ADO)Field オブジェクト
Field オブジェクト Recordset オブジェクト内の列(フィールド)を …
-
レコードの更新(ADO)Update メソッド
データベースのレコードを更新する Update メソッド カレントレコードの内容 …
-
インデックス、プロパティの設定(ADOX)
インデックスを作成する index オブジェクト 【書式】 <CreateObj …
-
レコードを指定した条件で抽出する(ADO)Filter プロパティ
データベースのレコードを指定した条件で抽出する Filter プロパティ 【書式 …