VBEの[参照設定]で、「Microsoft ActiveX Data Objects X.X Library」を選択。
なるべく新しいライブラリを選択。
Access2007以降のaccdbファイルの開く時は、
Provider=Microsoft.ACE.OLEDB.12.0;
VBAProject --> Microsoft Excel Objects --> SheetXX
Public Const myDBName As String = "myDB.mdb"
Public Const Prv_Jet40 As String = "Provider=Microsoft.Jet.OLEDB.4.0;"
Private Sub CommandButton1_Click()
Dim myDBConnect As ADODB.Connection
Dim myRecSet As ADODB.Recordset
Dim strProvider As String, strDataSource As String
Dim myPath As String
'カレントフォルダへのパスの初期化
myPath = ThisWorkbook.Path
ChDrive myPath
ChDir myPath
'-------------------
'DBに接続
Set myDBConnect = New ADODB.Connection
strDataSource = "Data Source=" & myDBName
strProvider = Prv_Jet40 & strDataSource
With myDBConnect
.ConnectionString = strProvider
.Open
End With
'-------------------
'DBからレコードを取り出す
Set myRecSet = New ADODB.Recordset
With myRecSet
'テーブルでもクエリでも同じように取り出せる
.Source = "SELECT * FROM 法人顧客入力修正クエリ WHERE 決算月='1月'"
.ActiveConnection = myDBConnect
.Open
End With
'-------------------
'レコードをシートに転記
Sheets(3).Range("A1").CopyFromRecordset myRecSet
'-------------------
'レコードセットを閉じ、オブジェクト破棄
myRecSet.Close
Set myRecSet = Nothing
'-------------------
'DBに接続を閉じ、オブジェクト破棄
myDBConnect.Close
Set myDBConnect = Nothing