我已在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 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