テーブルの内容を直接Excelシートに転記する

テーブル内容を転記する基本形その3 — SQL文で抽出する

Recordsetオブジェクトで受け取り、CopyFromRecordsetメソッドで転記

Sub シートに転記3()
'テーブル内容を転記する基本形その3 --- SQL文で抽出
Dim myCon As New ADODB.Connection, myRS As New ADODB.Recordset, FileName As String
Dim myTbl As String, myRng As Range

'接続先のファイル、取込元テーブル、取込先を指定
FileName = ThisWorkbook.Path & "\mdb\2-sampleDB.mdb"
myTbl = "SELECT * FROM 社員 WHERE 所属='営業1課';"
Set myRng = ThisWorkbook.Worksheets(1).Range("A1")

'接続
With myCon
  .Provider = "Microsoft.Jet.OLEDB.4.0"
  .Open FileName
End With

With myRS
  '対象テーブルを参照、転記、閉じる
  .Open myTbl, myCon
  myRng.CopyFromRecordset myRS
  .Close
End With

'Recordsetオブジェクトを破棄
Set myRS = Nothing
'データベースへの接続を切断し、オブジェクトを破棄
myCon.Close: Set myCon = Nothing

End Sub

実行結果

上記のリストはExcelブックにAccessのテーブル内容を転記する基本形である。

変数 変数の内容
FileName 取り込み元の「mdb」ファイル
myTbl 取り込み元となるテーブル、クエリ、SQL文も使用可能
myRng 転記先となるエクセルのセル番地