2016-09-29 186 views
1

我试图通过Excel连接到Oracle数据库。我已经安装了Oracle的即时客户端在我的机器上,但是当我运行此代码正在此消息:未找到Oracle客户端和网络组件 - Excel VBA

Sub testing() 


    Dim myConn As Connection: Set myConn = New Connection 
    Dim mySet As Recordset: Set mySet = New Recordset 
    Dim CONNSTRING As String 
    CONNSTRING = "Driver={Microsoft ODBC for Oracle}; " & _ 
       "CONNECTSTRING=(DESCRIPTION=" & _ 
       "(ADDRESS=(PROTOCOL=TCP)" & _ 
       "(HOST=xxxxxx.xxx.xxxxxxxxxxx.com)(PORT=1524))" & _ 
       "(CONNECT_DATA=(SERVICE_NAME=dev))); uid=xxxxxxx; pwd=xxxxxxxxxxx;" 

    myConn.Open CONNSTRING 
    mySet.Open "SELECT * FROM apps.ap_invoice_lines_interface", myConn, adOpenStatic, adLockBatchOptimistic, adCmdTable 

    Sheet1.Range("A1").CopyFromRecordset mySet 

    mySet.Close 
    myConn.Close 

End Sub 

我得到的消息是

甲骨文(TM)客户端和网络组件是未找到。这些组件由Oracle Corporation提供,并且是Oracle Version 7.3(或更高版本)客户端软件安装的一部分。在安装这些组件之前,您将无法使用此驱动程序

+1

愚蠢的问题,但你安装所需的Oracle客户端后重新启动你的机器?询问是因为我有这个问题,那就是我解决问题的方法。在你解决问题之后,你可能会在'SELECT'后出现'conn'问题。它应该是'myConn'在那里 –

+0

我没有重新启动,并且非常感谢你的支持!我会将其更改为myConn – jDave1984

+0

在这种情况下,这是一个有效的问题,呵呵。让我们知道结果 –

回答

2

当我们的桌面支持团队安装错误的Oracle客户端时,我经常看到此错误。如果您的应用程序(在这种情况下为Excel)为32位,那么您还需要使用32位ODBC和32位Oracle客户端。不要紧,你的操作系统或硬件是64位。重要的是应用程序。而且似乎大多数MS Office安装都是32位的,即使安装在64位Windows上也是如此。

+0

再次感谢您的帮助! – jDave1984