カレントレコードの移動(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 |
実行結果
関連記事
-
データベース(Access 等)に接続(ADO)
ADO で、データベースに接続 外部データベースを操作する方法のひとつに ADO …
-
フィールド名(ADO)Fields コレクション
Fields コレクション Recordset オブジェクト内の1つ以上の列(フ …
-
データベース(MySQL)に接続する(ADO)
MySQL ODBCドライバ Windowsには標準で、いくつかの ODBC ド …
-
データベース(SQL Server)に接続する(ADO)
データベース(SQL Server)に接続 ODBC または OLE DB で接 …
-
レコードの追加(ADO)AddNew メソッド,Update メソッド
データベースにレコードを追加する AddNew メソッド 新規レコードを追加し、 …
-
トランザクション(ADO)BeginTrans、CommitTrans、RollbackTrans
ADO でのトランザクション処理 【書式】 Sub Sample_Transac …
-
テーブル名、クエリ名の取得(ADOX)
テーブル名の取得 Table.Type プロパティ 【書式】 <取得> obje …
-
クエリにパラメータを渡して結果を取得する(ADO)Command オブジェクト・Execute メソッド
クエリにパラメータを渡して結果を取得する手順 Command オブジェクトの作成 …
-
SQL文を実行する(ADO)Execute メソッド
Command オブジェクトの Execute メソッドで、SQL文を実行 Co …
-
CSVファイルに接続(ADO)
ADOでCSVファイルに接続 ADO を使用してCSVファイルを読み込みます。C …