ray88’s diary

お仕事で困ったとき用の自分用の覚書

ADOでレコードセットで取得したデータをエクセルにコピペする。

■構文
オブジェクト:取り込み先のセルのオブジェクト
データ:Recordsetオブジェクト

   オブジェクト.CopyFromRecordset Data:=データ

(例)サンプルコード

Sub copyFromRecordset()
    Dim adoCn As Object
    Dim adoRs As Object
    Dim strSQL As String    
    Set adoCn = CreateObject("ADODB.Connection")
    Set adoRs = CreateObject("ADODB.Recordset")
    'データベースに接続
    adoCn.Open "Provider =Microsoft.ACE.OLEDB.12.0;Data " & _
                "Source=C:\デスクトップ\Accessアプリ\data.accdb;"
    'SQL文発行
    strSQL = "SELECT * FROM T_注文履歴2 WHERE 商品コード = 'B0001';"
    'SQL文の内容でレコードセットを取得
    adoRs.Open strSQL, adoCn
    '取得したレコードセットのデータを「A1」セルを起点に貼り付ける
    ThisWorkbook.Sheets("Sheet1").Range("A1").copyFromRecordset Data:=adoRs    
    'レコードセットを閉じてDBの接続を解除
    adoRs.Close: adoCn.Close
    'オブジェクト変数を解放
    Set adoRs = Nothing: Set adoCn = Nothing
End Sub

ray88.hatenablog.com