ブックマークを利用する

ブックマークををつけて移動する

Sub ブックマーク1()
'レコードセットにブックマークをつけて移動する
Dim myCon As New ADODB.Connection, myRS As New ADODB.Recordset
Dim FileName As String, myBookmark As Variant
FileName = ThisWorkbook.Path & "\mdb\2-sampleDB.mdb"
myCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FileName
myRS.Open "伝票一覧", myCon, adOpenStatic, adLockReadOnly

'5番目のレコードへ移動
myRS.Move 4, adBookmarkFirst
'カレントレコードをブックマークとして登録
myBookmark = myRS.Bookmark
'最終レコードへ移動
myRS.MoveLast
'カレントレコードをブックマークの位置に移動
myRS.Bookmark = myBookmark
'カレントレコードを転記
Range("A1:E1").Value = myRS.GetString(adClipString, 1, ",")
'Range("A1:E1").Value = Split(myRS.GetString(adClipString, 1, ","), ",")

myRS.Close: Set myRS = Nothing
myCon.Close: Set myCon = Nothing

End Sub

Variant型の変数にブックマーク情報を格納する
変数名 = Recordsetオブジェクト.Bookmark

ブックマークしたレコードへ移動する
Recordsetオブジェクト.Bookmark = 変数名

「伝票一覧」テーブル

実行結果

レコード転記はSplit 関数を使用して1次元配列を作成してから転記している。
‘カレントレコードを転記
Range("A1:E1").Value = Split(myRS.GetString(adClipString, 1, ","),",")
この関数を使用しないと以下のように転記される。