ODBC接続(ADO)
ADOで、ODBC(Open Database Connectivity)ドライバを使って、Oracle データベースへ接続する場合、Open メソッド の ConnectionString プロパティに、ODBCドライバ名を指定する接続文字列を記述します。
→ OLE DB による接続
→ oo4o による接続
接続文字列
【ConnectionString(ADO)に設定する文字列】
<ドライバ名・ネットサービス名を指定する場合>
DRIVER = {Microsoft ODBC for Oracle};
CONNECTSTRING = NetServiceName;
UID = UserName;
PWD = PassWord;
<データソース名を指定する場合>
DSN = DSN;UID = UserName;PWD = PassWord;
引数・戻り値
- NetServiceName ・・・ tnsnames.ora ファイルのネットサービス名を指定します。
- UserName ・・・ ユーザー名を指定します。
- PassWord ・・・ パスワードを指定します。
- DSN ・・・ データソース名をしていします。
Oracle 接続(ODBC)
サンプル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 60 61 62 63 |
Sub Sample_ODBC_oracle() Dim oraCon As ADODB.Connection Dim oraRs As ADODB.Recordset Dim constr As String Dim strSQL As String Dim col As Long Dim row As Long Const DRIVER = "{Microsoft ODBC for Oracle}" 'ドライバ名(Microsoft社製) 'Const DRIVER = "{Oracle in OraDb11g_home1}" 'ドライバ名(Oracle社製) Const NETSERVICENAME = "hpdb1" 'tnsnames.ora ファイルのネットサービス名' Const DSN = "ORACL_hpdb1" 'データソース名 Const USERNAME = "uhpdb1" '接続するデータベースのユーザー名 Const PASSWORD = "uhpdb1" 'パスワード Set oraCon = New ADODB.Connection 'ドライバー名・ネットサービス名を指定する場合 constr = "DRIVER=" & DRIVER constr = constr & ";CONNECTSTRING=" & NETSERVICENAME constr = constr & ";UID=" & USERNAME constr = constr & ";PWD=" & PASSWORD & ";" 'データソース名を指定する場合 ' constr = "DSN=" & DSN ' constr = constr & ";UID=" & USERNAME ' constr = constr & ";PWD=" & PASSWORD oraCon.ConnectionString = constr oraCon.Open strSQL = "select * from table01 order by id desc" Set oraRs = New ADODB.Recordset oraRs.Open strSQL, oraCon With Worksheets("oracle_odbc") .Cells.Clear 'フィールド名 For col = 0 To oraRs.Fields.Count - 1 .Cells(1, col + 1) = oraRs(col).Name Next col 'レコード Do Until oraRs.EOF For col = 0 To oraRs.Fields.Count - 1 .Cells(row + 2, col + 1) = oraRs(col).Value Next col row = row + 1 oraRs.MoveNext Loop End With oraRs.Close oraCon.Close Set oraCon = Nothing End Sub |