找不到提供者。使用ADO驱动程序代替DAO时,可能无法正确安装它

问题描述 投票:1回答:1

我已在Windows 10计算机上安装了Oracle ODBC Instant Client 12,以便将Excel宏连接到Oracle数据库。我的应用程序能够通过使用DAO或ADO驱动程序连接到Oracle数据库。与DAO的数据库连接正常,但是当我尝试使用ADO驱动程序时,出现以下错误:

找不到提供程序。可能未正确安装

我如何在Excel宏中设置ADO连接:

Set Connection = VBA.CreateObject("ADODB.Connection")
Connection.ConnectionString = IDatenbank_BuildConnectionString(ODBCConnection)
Call Connection.Open


IDatenbank_BuildConnectionString = "ODBC" & _
                                    ";DSN=" & ODBCConnection.Name & _
                                    ";Uid=" & ODBCConnection.User & _
                                    ";Pwd=" & ODBCConnection.Password

关于如何使用ADO驱动程序的任何建议,并避免出现错误“找不到提供程序。它可能未正确安装。”

Excel 2016在用作服务器的Windows 10计算机上以32位运行。 Microsoft ODBC在32位上作为Excel实例安装。

我到目前为止所做的:

  • 已安装的Oracle Client for ODBC 32位;
  • 已安装32位的Access数据库引擎;
  • Microsoft数据访问组件(MDAC)

在客户端计算机中,它们可以一起运行,但是使用服务器时似乎不正确。

excel vba odbc ado dao
1个回答
0
投票

如果使用标准的Oracle ODBC,则不需要在连接字符串前加上“ ODBC”。

从您的代码中,它包含“ ODBC”:

'ODBC;DSN=xxx;Uid=yyy;Pwd=zzz
IDatenbank_BuildConnectionString = "ODBC" & _
                                    ";DSN=" & ODBCConnection.Name & _
                                    ";Uid=" & ODBCConnection.User & _
                                    ";Pwd=" & ODBCConnection.Password

'It should be "DSN=xxx;Uid=yyy;Pwd=zzz" only without "ODBC" in front
IDatenbank_BuildConnectionString = "DSN=" & ODBCConnection.Name & _
                                    ";Uid=" & ODBCConnection.User & _
                                    ";Pwd=" & ODBCConnection.Password
© www.soinside.com 2019 - 2024. All rights reserved.