2017年7月31日

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


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

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

テーブル名:T_Users

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

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

では、実際のコードは次のようになります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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

実行結果




スポンサーリンク



Follow Me on Pinterest
Clip to Evernote