【问题标题】:Oracle Client and networking components were not found - Excel VBA找不到 Oracle 客户端和网络组件 - Excel VBA
【发布时间】:2017-02-08 07:10:18
【问题描述】:

我正在尝试通过 Excel 连接到 Oracle 数据库。我已经在我的机器上安装了来自 Oracle 的 Instant Client,但是当我运行此代码时收到此消息:

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

我收到的信息是

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

【问题讨论】:

  • 愚蠢的问题,但是您在安装所需的 Oracle 客户端后是否重新启动了计算机?问是因为我有这个问题,这就是我解决它的方法。但是,在您解决了问题之后,您可能会在SELECT 之后遇到conn 的问题。里面应该是myConn
  • 我还没有重新启动,非常感谢您的收获!我将其更改为 myConn
  • 您的 excel 是 32 位还是 64 位?您安装的 Oracle 客户端是 32 位还是 64 位?它们必须匹配,并且出于这个原因,我已经看到了这个错误。
  • 我有 32 位 Excel,但我承认确实安装了 64 位,因为我有 64 位操作系统。我也会得到 32 位的,然后告诉你
  • @EdStevens -- 我真的鼓励您将其发布为正式答案。我认为这是一个非常常见的问题,因为大多数 Office 实例都是 32 位的。我们在 ODBC 设置中经常遇到同样的问题。如果这就是解决方案更明显的话,这可能会帮助很多未来的潜伏者。

标签: excel vba oracle oracleclient


【解决方案1】:

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

【讨论】:

  • 再次感谢您的帮助!
  • 很好的答案。我安装了 32 位和 64 位 Oracle 客户端,但仍然出现此错误。是否应该卸载 64 位版本?
【解决方案2】:

在我的例子中,Visual Studio 中的控制台项目在其属性中选中了Prefer 32 bit

Alt + Enter 并打开构建部分。

我取消选中它,然后应用程序完美运行。

顺便说一句:我已经安装了 64 位的 Oracle 客户端。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-18
    • 2017-07-07
    • 2019-05-24
    • 2016-06-01
    • 2013-03-22
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多