ConnectionオブジェクトをオープンせずにRecordsetをオープンできる・・・
VBAProject --> Microsoft Excel Objects --> SheetXX
Access2007以降のaccdbファイルの開く時は、
Provider=Microsoft.ACE.OLEDB.12.0;
Public Const myDBName As String = "myDB.mdb"
Public Const Prv_Jet40 As String = "Provider=Microsoft.Jet.OLEDB.4.0;"
Private Sub CommandButton1_Click()
Dim myRecSet As ADODB.Recordset
Dim strProvider As String, strDataSource As String
Dim myPath As String
'カレントフォルダへのパスの初期化
myPath = ThisWorkbook.Path
ChDrive myPath
ChDir myPath
'-------------------
strDataSource = "Data Source=" & myDBName
strProvider = Prv_Jet40 & strDataSource
'-------------------
'DBからレコードを取り出す
Set myRecSet = New ADODB.Recordset
With myRecSet
'テーブルでもクエリでも同じように取り出せる
.Source = "SELECT 顧客ID, 法人名, 決算月 FROM 法人顧客入力修正クエリ ORDER BY 法人名"
.ActiveConnection = strProvider
.Open
End With
'-------------------
'レコードをシートに転記
Sheets(3).Range("A1").CopyFromRecordset myRecSet
'-------------------
'レコードセットを閉じ、オブジェクト破棄
myRecSet.Close
Set myRecSet = Nothing
End Sub