2017年7月31日

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


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

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

テーブル名:T_Users

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

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

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

    Dim cnn As New ADODB.Connection
    Dim cmd As ADODB.Command
    Dim rst As ADODB.Recordset
    Dim i As Integer
    
    cnn.Open "Driver={SQL Server}; Server=xxxxxx; Database=xxxxxx; UID=xxxxx; PWD=xxxxx;"
    
    Set cmd = New ADODB.Command
    
    With cmd
        .ActiveConnection = cnn
        .CommandText = "SELECT ID, EmployeeNumber, FirstName, LastName 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!EmployeeNumber
        Cells(i, 3).Value = rst!FirstName
        Cells(i, 4).Value = rst!LastName
    
        'レコードを移動
        rst.MoveNext
        i = i + 1
    Wend
    
    rst.Close
    Set rst = Nothing
    Set cmd = Nothing
    cnn.Close
    Set cnn = Nothing
    
End Sub

実行結果




スポンサーリンク