2013-07-27 42 views
0

问候..VBA到Oracle 10g错误

我对Oracle很陌生,但在Sql中有知识。

我试图外部Oracle DB从VBA连接 - Excel的下面是代码..

Function ORAQUERY(strHost As String, strDatabase As String, strSQL As String, 
strUser As String, strPassword As String) 
Dim strConOracle, oConOracle, oRsOracle 
Dim StrResult As String 
StrResult = "" 
strConOracle = "Driver={Microsoft ODBC for Oracle}; " & _ 
"CONNECTSTRING=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=207.169.236.29)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=DEDWRP01.DE.EDS.COM))); uid=" & strUser & " ;pwd=" & strPassword & ";" 
Set oConOracle = CreateObject("ADODB.Connection") 
Set oRsOracle = CreateObject("ADODB.Recordset") 
oConOracle.Open strConOracle 
End Function 

试图运行上面的代码我得到下面的错误..

[Microsoft] [用于Oracle的ODBC驱动程序] [Oracle] ORA-12154:TNS:Cound未解析指定的连接标识

我已经安装了oracle 10g,并且我能够通过连接数据库在SQL * Plus ..

enter image description here

请帮我.Thanks对于提前帮助..

+1

您是否尝试明确设置tnsnames条目,并创建一个DSN和teste从ODBC管理面板中查看它?我会首先尝试排除ODBC安装问题。 – OldProgrammer

+0

感谢您的评论...请让我知道我该怎么做?新的。:(请 –

+1

请检查http://www.connectionstrings.com/oracle/。在此页面中查找“Microsoft ODBC”以获取不同的连接方式,具体取决于您想要的方法。 – shahkalpesh

回答

0

这是我用一个生动的代码:

Dim oCon As ADODB.Connection 
Dim oRS As ADODB.Recordset 
Set oCon = New ADODB.Connection 
oCon.ConnectionString = "DSN=YOUR_DNS;UID=YOUR_USERNAME;PWD=YOUR_PASSWORD;APP=Microsoft Office 2003;WSID=YOUR_WSID" 
oCon.Open 
Set oRS = New ADODB.Recordset 
oRS.ActiveConnection = oCon 

'Loop through Oracle 
    oRS.Source = "select DATA from TABEL;" 
    oRS.Open 

     Do While Not oRS.EOF 
      Debug.Print oRS.Fields("DATA").Value 
      oRS.MoveNext 
     Loop 

    oRS.Close 

oCon.Close 


If Not oRS Is Nothing Then Set oRS = Nothing 
If Not oCon Is Nothing Then Set oCon = Nothing 

连接到Oracle - 请记住激活工具 - >参考 - >“Microsoft ActiveX数据对象2.8库”