我正在尝试使用 VBA 中的以下连接字符串将 Excel 连接到 Oracle:
dim cn As New ADODB.Connection
cn.Open "Provider=OraOLEDB.Oracle;Data Source=source;User Id=userid;Password=pwd;"
我收到此错误:
Run-time error '3706':
Provider cannot be found. It may not be properly installed.
相关引用资料:
Microsoft ActiveX Data Objects 6.1 Library
OraOLEDB 1.0 Type Library
- Excel 是 MS Office Professional Plus 2010 64 位
- Windows 7 Enterprise、Service Pack 1、64 位
- Oracle 客户端是 11.2.0 32 位(我认为)
- Oracle 服务器是 Oracle Database 11g 企业版版本 11.2.0.3.0 - 64 位生产版
现在...我已经搜索了网络,但无法弄清楚问题是什么,但我最好的猜测是我正在使用的驱动程序存在一些 32 位与 64 位冲突。在让公司的 IT 部门尝试为我安装东西之前,我试图了解应该采取什么路径。如果 MS Office 是 64 位,Oracle 客户端是否必须是 64 位?或者我只需要 64 位 Oracle 数据访问组件?我尝试了很多不同的连接字符串,但没有成功,包括使用 MSDAORA 而不是 OraOLEDB.Oracle...
最佳答案
是的,当您使用 64 位 Excel 时,您还必须安装 64 位 Oracle 客户端和 64 位 OLE DB 提供程序。
Microsoft 的 OLE DB 提供程序(即 MSDAORA
)对于 64 位不存在。它仅适用于 32 位,并且已经被弃用很长时间了。
我不知道您是否需要 32 位 Oracle 客户端来做其他事情,所以也许您不能简单地将其从 PC 中删除。以下是如何在一台计算机上安装 32 位和 64 位 Oracle 客户端的说明。 Install Oracle Client x86 and x64
关于excel - 使用 64 位 Excel 连接到 32 位 Oracle 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28838695/