我在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作为Excel实例安装在32位上。
我到目前为止所做的:
•已安装和Oracle Client for ODBC 32位; •已安装32位Access数据库引擎; •Microsoft数据访问组件(MDAC)
在客户端计算机中,它们可以运行togheter,但是使用服务器时似乎不正确。
此致
答案 0 :(得分: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