指定したレコード位置からシートに貼り付ける

レコードをシートに貼り付けるには、CopyFromRecordsetメソッドを使いましたが、貼り付けられるレコード位置は、レコードセットの位置からになります。
従いまして、全レコードを貼り付けるには、レコードセットを1番目の位置に移動しておけばOKなわけですし、10番目のレコードから貼り付けたい場合は、10番目の位置に移動しておけばOKです。
レコードセットのレコード移動は以下のMove系メソッドを使用します。
  • Recordset.MoveFirst : 先頭レコードへ
  • Recordset.MovePrevious : 1つ前のレコードへ
  • Recordset.MoveNext : 次のレコードへ
  • Recordset.MoveLast : 最終レコードへ
  • Recordset.Move[n] : 指定したレコード番号を基準にして前後に移動



Homeに戻る > Excel データベースのTipsへ

実行画面

元の顧客マスターです。
Access顧客マスターテーブル

3番目の位置に移動し、CopyFromRecordsetメソッドを実行しました。
3番目のレコード位置に移動するには「Move 2」と実行しました。
1番目から2つ前に移動することで3番目になります。
顧客IDが3のレコードのみはりつけられた

コード

'Access Accdbファイルを開く
Private Sub ExAccdbImport()
    Dim db As ADODB.Connection
    Dim rs As ADODB.Recordset
    
    '顧客管理のACCDBファイルに接続します
    Set db = New ADODB.Connection
    db.Provider = "Microsoft.Ace.OLEDB.12.0"
    db.Open "C:\MyHP\excel2007\Tips\顧客管理.accdb"

    'レコードセットを開きます
    Set rs = New ADODB.Recordset
    rs.Open "T_顧客マスター", db, adOpenStatic
    
    'レコード数の取得
    If rs.RecordCount = 0 Then
        MsgBox "顧客のレコードが見つかりません。"
    Else
        rs.Move 2
        
        'レコードをシートへ貼り付ける
        Range("B7").CopyFromRecordset rs
    End If
    
    rs.Close
    Set rs = Nothing
    Set db = Nothing
    
End Sub

Private Sub CommandButton1_Click()
    ExAccdbImport
End Sub


Homeに戻る > Excel データベースのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved