我正在尝试使用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
现在......我已经在网上搜索并且无法弄清楚问题是什么,但我最好的猜测是我正在使用的驱动程序有32位与64位冲突。在我让公司的IT部门尝试为我安装东西之前,我正试图了解我应该采取什么样的方法。如果MS Office是Oracle客户端必须是64位吗?或者我只需要64位Oracle数据访问组件?我尝试了一堆不同的连接字符串但没有成功,包括使用MSDAORA代替OraOLEDB.Oracle ......
答案 0 :(得分:3)
是的,当您使用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
答案 1 :(得分:0)
我也有同样的问题,解决方案是将excel会话的oracle驱动程序设置为32位驱动程序并启动excel。
我使用以下Bat文件打开excel,它连接到oracle没有任何问题:
#Set Temp=C:\Temp
Set TMP=C:\Temp
Set Oracle_Home= #YourDriveLetterhere - >M:\ORA12C\product\12.1.0\client_1
Set Path=C:\Windows;C:\Windows\System32;M:\ORA12C\product\12.1.0\client_1\bin;M:\ORA12C\product\12.1.0\client_1\nls\mesg;M:\ORA12C\product\12.1.0\client_1\network\admin;
START "" "C:\MacroFileNameWhichConnectsToOracle.xlsm"
#
答案 2 :(得分:-2)
oracle服务器不重要。
尝试打开dos窗口并输入c:\ tnsping yourservername
了解安装问题。