2017年8月2日

【Excel】Accessのaccdbからデータを取得してシートに表示するマクロ



Accessのaccdbからデータを取得してシートに表示するマクロです。

まず、Accessでこのようなデータが格納されていたとします。

テーブル名:T_Users

このデータを次のシートに格納してみます。

1行目には列名をあらかじめ入力しています。

では、実際のコードは次のようになります。
Sub GetMdbData()

    Dim cnn As New ADODB.Connection
    Dim cmd As ADODB.Command
    Dim rst As ADODB.Recordset
    Dim i As Integer
    
    cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\work\access\test.accdb"
    
    Set cmd = New ADODB.Command
    
    With cmd
        .ActiveConnection = cnn
        .CommandText = "SELECT ID, ユーザーID, 名前, 備考 FROM T_Users"
        .CommandType = adCmdText
    End With
    
    'SQLを実行
    Set rst = cmd.Execute
    
    i = 2
    
    While rst.EOF = False
        'セルにデータを格納
        Cells(i, 1).Value = rst!ID
        Cells(i, 2).Value = rst!ユーザーID
        Cells(i, 3).Value = rst!名前
        Cells(i, 4).Value = rst!備考
    
        'レコードを移動
        rst.MoveNext
        i = i + 1
    Wend
    
    rst.Close
    Set rst = Nothing
    Set cmd = Nothing
    cnn.Close
    Set cnn = Nothing
    
End Sub

実行結果




スポンサーリンク