ConnectionオブジェクトをオープンせずにRecordsetをオープンできる・・・

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 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

 ↓ facebook のフォローで応援してください。お願いします。



Microsoft Office ブログランキングへ