メニュー 表示 非表示

SQLServerに接続@Excel マクロ・VBA

ADODBを用いて、SQLServerに接続します。
Microsoft ActiveX Data Objectを参照設定します。

ADODB.Connectionを作成します。
SQLServerに接続する文字列を作成します。

接続を行います。
SQL文を実行して、RecordSETにて受け取ります。

RecordSETをループ処理して、結果をセルに書き込みます。



Dim con As New ADODB.Connection
Dim connectionString As String

Dim sDBSever As String
Dim sDBName As String
Dim sLoginID As String
Dim sPassWD As String

sDBSever = "(local)\SQLEXPRESS"
sDBName = "DBName"
sLoginID = "id"
sPassWD = "pass"

'接続文字列
connectionString = "Provider=Sqloledb;Data Source=" & sDBSever _
& ";Initial Catalog=" & sDBName _
& ";Connect Timeout=15" _
& ";user id=" & sLoginID _
& ";password=" & sPassWD _
& ""

On Error GoTo Err_DBConnectOpen

'接続
con.Open connectionString

'SQL文を実行(RecordSETで受け取ります)
Set rs = con.Execute("SELECT * FROM TABLE")

'結果をセルに書き込む
rs.MoveFirst
i = 1
Do Until rs.EOF = True
    Cells(i, 1) = rs.fields(0).Value
    Cells(i, 2) = rs.fields(1).Value
    rs.MoveNext
    i = i + 1
Loop

'接続を閉じる
con.Close
Set con = Nothing

Exit Sub

'エラー処理
Err_DBConnectOpen:
MsgBox Err.Description

'Connectionの状態を確認し、クローズ
If con.State <> ADODB.adStateClosed Then
    con.Close
End If
Set con = Nothing




Copyright (C) Excelマクロ・VBAのお勉強. All Rights Reserved.