データベース(SQL Server)に接続する(ADO)
データベース(SQL Server)に接続
ODBC または OLE DB で接続します。ODBC 接続する場合は、ODBCデータソースを作成する必要があります。
接続文字列
<ODBC 接続>
DNS = DataSourceName;
[ UID = UserName;]
[ PWD = Password;]
<OLE DB 接続>
Provider = SQLOLEDB;
Data Source = ServerName;
[Ninsyo;]
[ User ID = UserName;]
[ Password = Password;]
引数・戻り値
- DataSourceName ・・・ ODBC データソース名を指定します。
- UserName ・・・ ユーザー名を指定します(Windows認証の場合は不要)。
- Password ・・・ パスワードを指定します(Windows認証の場合は不要)。
- ServerName ・・・ サーバーのホスト名、IPアドレス、ネットワーク上のPC名等を指定します。またポートも指定できます。
(例)localhost、127.0.0.1,1433、DesktopPC\SQLEXPRESS
※DesktopPC はネットワーク上に表示されるPC名で、SQLEXPRESS はインスタンス名です。ポートを指定する場合は、「,」のあとに指定します。 - Ninsyo ・・・ SQL Server認証の場合は不要です。Windows認証の場合は次のいずれかを指定します。Trusted_connection=yes または、Integrated Security=SSPI
データベース(SQL Server)接続
サンプルVBAソース
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
Sub Sample_ADO_SQLServer() Dim constr As String 'OLE DB Const MYPROVIDERE = "Provider=SQLOLEDB;" Const MYSERVER = "Data Source=localhost,1433;" 'サーバー,ポート Const MYNINSYO = "Trusted_connection=yes;" 'Windows認証の場合(「"Integrated Security=SSPI;"」でもよい) Const MYDATABASE = "Initial Catalog=TestDB01;" '接続するデータベース名 constr = MYPROVIDERE & MYSERVER & MYNINSYO & MYDATABASE 'Windows認証の場合 'Const USER = "User ID=sqluser;" 'SQL Server認証の場合のみ指定 'Const PSWD = "Password=psword;" 'SQL Server認証の場合のみ指定 'constr = MYPROVIDERE & MYSERVER & MYDATABASE & USER & PSWD 'SQL Server認証の場合 'ODBC 'Const DSN = "DSN=SQLServer_TESTDB01;" 'ODBCユーザーデータソース名 'constr = DSN 'Windows認証の場合 'Const USER = "UID=sqluser;" 'ユーザー名(SQL Server認証を使用する場合のみ指定) 'Const PSWD = "PWD=psword;" 'パスワード(SQL Server認証を使用する場合のみ指定) 'constr = DSN & USER & PSWD 'SQL Server認証の場合 Dim cn As New ADODB.Connection Dim Rs As New ADODB.Recordset Dim strSQL As String Dim i As Long Dim j As Long cn.ConnectionString = constr cn.Open strSQL = "Select * from T_SYAIN;" Rs.Source = strSQL Rs.ActiveConnection = cn Rs.Open With Worksheets("sqlserver") .Cells.Clear i = 1 Do Until Rs.EOF For j = 0 To Rs.Fields.Count - 1 If i = 1 Then .Cells(i, j + 1) = Rs.Fields(j).Name .Cells(i + 1, j + 1) = Rs(j).Value Next j Rs.MoveNext i = i + 1 Loop End With Rs.Close Set Rs = Nothing cn.Close Set cn = Nothing End Sub |
実行結果
関連記事
-
クエリの作成・削除(ADOX)
ADOX を使用してクエリを作成・削除 クエリを作成する手順 【書式】 <参照設 …
-
フィールド名(ADO)Fields コレクション
Fields コレクション Recordset オブジェクト内の1つ以上の列(フ …
-
データベース(Oracle)に接続する(OLE DB を使用)
OLE DB プロバイダ OLE DBには、Oracle 提供の Oracle …
-
レコードの更新(ADO)Update メソッド
データベースのレコードを更新する Update メソッド カレントレコードの内容 …
-
インデックス、プロパティの設定(ADOX)
インデックスを作成する index オブジェクト 【書式】 <CreateObj …
-
データベース(Oracle)に接続する(oo4o)
oo4o 接続 OO4O(Oracle Objects for OLE)はWin …
-
データベース(Oracle)に接続する(ODBC を使用)
ODBC接続(ADO) ADOで、ODBC(Open Database Conn …
-
カレントレコードの移動(ADO)MoveFirst、MoveLast、MoveNext、MovePrevious、Move
MoveFirst メソッド、MoveLast メソッド、MoveNext メソ …
-
フィールド名(ADO)Field オブジェクト
Field オブジェクト Recordset オブジェクト内の列(フィールド)を …
-
Excelファイルに接続(ADO)
ADOでExcelファイルに接続 ADO を使用してExcelファイルを読み込み …
- PREV
- CSVファイルに接続(ADO)
- NEXT
- データベース(MySQL)に接続する(ADO)