Excel VBAのSQLServerに接続してselectするサンプルです。
目次
設定 | 参照の設定 |
コード | 接続してselectを実行する |
参照の設定
参照の設定を行います。
1.「ツール」→「参照設定」をクリックします。
2.参照可能なライブラリで「Microsoft ActiveX Data Objects 2.8 Library」にチェックをいれOKを押します。
チェックをしないで実行するとADODB.Connectionの行で
「ユーザ定義型は定義されていません。」のコンパイルエラーが表示されます。
接続してselectを実行する
SQLServerに接続してselectを実行するサンプルです。
Sub test1()
Dim SQL As String
Dim i As Long
Dim row As Long
Const pv = "SQLOLEDB" 'Provider
Const ds = "localhost\SQLEXPRESS" 'Data Source
Const db = "testDB1" 'DB
Const sec = "SSPI" 'Windows認証
SQL = "Select * from employee;"
Dim conn As New ADODB.Connection
conn.ConnectionString = _
"Provider=" & pv & ";" & _
"Data Source=" & ds & ";" & _
"Initial Catalog=" & db & ";" & _
"Integrated Security=" & sec & ";"
conn.Open
Dim rs As New ADODB.Recordset
rs.Source = SQL
rs.ActiveConnection = conn
rs.Open
With Worksheets("Sheet1")
.Cells.Clear
'列名の表示
For i = 0 To rs.Fields.Count - 1
.Cells(1, i + 1) = rs(i).Name
Next i
'値の表示
row = 1
Do Until rs.EOF
For i = 0 To rs.Fields.Count - 1
.Cells(row + 1, i + 1) = rs(i).Value
Next i
rs.MoveNext
row = row + 1
Loop
End With
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
End Sub
7行目は、Data Sourceです。
8行目は、データベース名です。
9行目は、Windows認証です。
11行目は、実行するSQLです。
27行目は、取得した値をsheet1に出力します。
33行目は、列名を出力します。
40行目からは、取得した値分ループで出力します。
実行結果
以下のように表示されます。
1行目は、DBの列名です。
2行目以降は、値です。
関連の記事