データベース(Oracle)に接続する(ODBC を使用)
ODBC接続(ADO)
ADOで、ODBC(Open Database Connectivity)ドライバを使って、Oracle データベースへ接続する場合、Open メソッド の ConnectionString プロパティに、ODBCドライバ名を指定する接続文字列を記述します。
→ OLE DB による接続
→ oo4o による接続
接続文字列
<ドライバ名・ネットサービス名を指定する場合>
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 |
実行結果
関連記事
-
Recordset オブジェクト内のレコード数(ADO)RecordCount プロパティ
RecordCount プロパティ Recordset オブジェクトのレコード数 …
-
レコードを並べ替える(ADO)Sort プロパティ
データベースのレコードを並べ替える Sort プロパティ 【書式】 object …
-
データベース(SQL Server)に接続する(ADO)
データベース(SQL Server)に接続 ODBC または OLE DB で接 …
-
フィールド名(ADO)Fields コレクション
Fields コレクション Recordset オブジェクト内の1つ以上の列(フ …
-
データベース(Access 等)に接続(ADO)
ADO で、データベースに接続 外部データベースを操作する方法のひとつに ADO …
-
CSVファイルに接続(ADO)
ADOでCSVファイルに接続 ADO を使用してCSVファイルを読み込みます。C …
-
カレントレコードの移動(ADO)MoveFirst、MoveLast、MoveNext、MovePrevious、Move
MoveFirst メソッド、MoveLast メソッド、MoveNext メソ …
-
データベースを作成する(ADOX)
ADOX を使用してデータベース(Access)を作成 Catalog オブジェ …
-
Recordset オブジェクトの内容をワークシートにコピーする(CopyFromRecordset メソッド・ADO)
CopyFromRecordset メソッド ADO の Recordset オ …
-
インデックス、プロパティの設定(ADOX)
インデックスを作成する index オブジェクト 【書式】 <CreateObj …