テーマ、知りたいこと
VBAからノートPCへダウンロードしたoracleへ接続方法
背景、状況
ネットでoracleへの接続方法を調べてコードを書いたがエラーが出て接続できない状況です。
エラー
「プロバイダが見つかりません、正しく接続されていない可能性があります」と表示される。
コードでいうと conn.Open この部分でエラーが発生しています。
##試したこと
oracleクライアントのインストール、Microsoft ActiveX Data Objects X.X Libraryの参照設定。
下記のサイトの内容を参考にしました。
https://skill-note.net/vba-oracle-connect/
VBA
1'TNS使用時 2 Provider = "OraOLEDB.Oracle" 'Provider 3 DATA_SOURCE = "XE" 'Data Source 4 USER_ID = "SYSTEM" 'userid 5 PASSWORD = "*********" 'password 6 7 'TNSサービス名を使用せず直接接続する場合 8 HOST_NAME = "LAPTOP-UA2JN1S2" 'データベースのホスト名orIPアドレス 9 PORT_NO = "1521" 'データベースのポート 10 SERVICE_NAME = "XE" 'サービス名 11 12 'Const DATA_SOURCE = "(DESCRIPTION=(ADDRESS=(PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = XE)))" 13 SQL = "Select * from t1" 14 Dim conn As New ADODB.Connection 15 16 'TNSサービス名を使用せず直接接続する場合 17 'cn.ConnectionString = "Provider=" & Provider & ";Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=HOST_NAME)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE)))" _ 18 ' & ";USER ID=" & USER_ID _ 19 ' & ";PASSWORD=" & Password 20 21 22 'TNS使用時 23 conn.ConnectionString = _ 24 "Provider=" & Provider & ";" & _ 25 "Data Source=" & DATA_SOURCE & ";" & _ 26 "USER ID=" & USER_ID & ";" & _ 27 "Password=" & PASSWORD & ";" 28 29 conn.Open 30 31 Dim rs As New ADODB.Recordset 32 33 rs.Source = SQL 34 rs.ActiveConnection = conn 35 rs.Open 36 37 With Worksheets("Sheet1") 38 Stop 39 .Cells.Clear 40 41 '列名の表示 42 For i = 0 To rs.Fields.Count - 1 43 .Cells(1, i + 1) = rs(i).Name 44 Next i 45 46 '値の表示 47 row = 1 48 Do Until rs.EOF 49 For i = 0 To rs.Fields.Count - 1 50 .Cells(row + 1, i + 1) = rs(i).Value 51 Next i 52 rs.MoveNext 53 row = row + 1 54 Loop 55 End With 56 57 rs.Close 58 conn.Close 59 Set rs = Nothing 60 Set conn = Nothing 61End Sub 62 63
よろしければご教授おねがいいたします。
・OS は?
・Oracle クライアントのバージョンは?また、32bit/64bit のどちらですか?
・Office のバージョンは?また、32bit/64bit のどちらですか?
質問を編集して記入してください。