2017-11-06 39 views
0

私はいくつかのExcelのマクロVBAコードを持っている:VBA ExcelのマクロのOracle XE接続

Set dbconn = New ADODB.Connection 
dbconn.ConnectionString = "DSN=XE_DSN;" 
dbconn.Open 

は "XE_DSN" システムのDNS接続は、ODBCドライバの設定]パネルで成功しています。

私はマクロで次のエラーメッセージがあります。私は、PL/SQLでのOracle XEに接続することができます(私はPL/SQLは「XE_DNS」と呼ばれる私のシステムのDNSを使用していけない知っている)が、私は接続できない

[Oracle][ODBC][Ora]ORA-12154: TNS:could not resolve the connect identifier specified. 

をマクロ付き。

なぜ私を助けることができますか?

+0

私はDSN対全体の接続文字列を渡すと、通常のExcel ADOからOracleへの接続のためにうまく機能することを見出しました。 –

+0

@ScottHoltzman dbconn.Open "PROVIDER = OraOLEDB.Oracle; DATA SOURCE = XE;ユーザーID = SYSTEM;パスワード= mypassword;" これはあなたが考えましたか? –

+0

正確に関連しているかどうかはわかりませんが、これは最近のプロジェクトで行ったことです: 'Driver = {Microsoft ODBC for Oracle}; CONNECTSTRING =(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST = XXXL-DB01)(PORT = nnnn))(CONNECT_DATA =(SERVICE_NAME = myEnv))); uid = U_I_D; pwd = P_W_D; ' –

答えて

0

接続文字列が間違っています。

正しい接続文字列は、使用するドライバによって異なります。通常は「ODBC」または「OLE DBプロバイダ」になります

ODBCを使用しているようです。 ODBCドライバーは、Microsoftのものです。すなわちMicrosoft ODBC for OracleまたはOracle(Oracle in OraClient11g_home1のように、ご使用のバージョンによって異なります)。

接続文字列は、これらのいずれかである必要があります。

dbconn.ConnectionString = "Driver={Oracle in OraClient11g_home1};Uid=" & <username> & ";Pwd=" & <password> & ";DBQ=XE_DSN" 

dbconn.ConnectionString = "Driver={Microsoft ODBC for Oracle};Uid=" & <username> & ";Pwd=" & <password> & ";Server=XE_DSN"