Accessに保管されているデータをExcelで取得する | カメレオンのVBA

カメレオンのVBA

VBAの私的メモ書き



Sub test()
    'アクセスへADOで接続して、データを抽出する

    '事前に[ツール]-[参照設定]より
    'Microsoft ActiveX Data Objects x.x Library にチェックマークを入れておく

    '画面の更新を止める
    Application.ScreenUpdating = False
   

    '↓↓↓ADO↓↓↓
    Dim myCn As New ADODB.Connection
    Dim myRs As New ADODB.Recordset
    Dim myFile As Variant
   
    'myFile に読み込むデータの保存先を設定する(適宜変更必要)
    '(今回は設定シートのA1セルにアドレスがあるとする)
    myFile = ThisWorkbook.Sheets("設定").Cells(1, 1).Value
   
    With myCn
        .Provider = "Microsoft.Ace.OLEDB.12.0"
        .Properties("Data Source") = myFile
        .Open
    End With
   
    'SQL文(適宜変更必要)
    'excelとは書き方が異なる(テーブル名は[ $]で囲わなくとも良い)
    myRs.Open "SELECT * FROM KEN_ALL;", myCn
   
    'データシートの...
    With ThisWorkbook.Sheets("データ")
        .Cells.Clear                         '以前抽出したデータを削除する
        .Cells(2, 1).CopyFromRecordset myRs  'A2セルにSQLで抽出したデータを取り込む
    End With

    'メモリをクリア
    myRs.Close
    Set myRs = Nothing
    myCn.Close
    Set myCn = Nothing

    '↑↑↑ADO↑↑↑
   
    '画面の更新再開
    Application.ScreenUpdating = True
   
    MsgBox "OK"
End Sub