安装32和64客户端时,使MS Office 2013(32位)Excel和Access连接到Oracle数据库

时间:2015-04-21 21:07:36

标签: windows excel oracle vba excel-vba

在我的计算机上安装Oracle 11gr2的32位和64位客户端之后,我遇到了一些与Microsoft Office产品有关的问题。我目前正在使用Microsoft Office 32位运行Windows 7 64位。

我们依赖于一些32位应用程序,并且正在与一群人合作 - 其中大多数人拥有32位操作系统计算机,所以我需要运行Office 32位。

目前,我正在创建和维护一些Excel宏启用的工作簿,我们的员工使用这些工作簿向访问数据库提交信息。访问数据库使用sqora32.dll驱动程序连接到oracle,使用oraclient11.dll连接excel工作簿。

我最近购买了一个ArcGIS Pro,它需要一个64位的oracle客户端,并且已经在我们的生产车间进行了测试。我以为我已经成功安装了64位oracle即时客户端(我有32位oracle客户端的完整管理员版本),因为一切都很好。我的32位软件的其余部分连接正常。但是,当我尝试通过访问进行oracle连接时,驱动程序失败或者我收到kernelbase错误并且Access完全崩溃。

当我通过Excel vba尝试查询时,我从Oracle ODBC驱动程序中收到错误。它说,内部错误 - 无法在驱动程序加载期间初始化NLS。我的事件日志显示oraclient11.dll失败。当我尝试使用“以管理员身份运行”选项进行连接时,应用程序不会完全崩溃,它们就会停止工作。

我尝试卸载并重新安装32位oracle客户端,设置oracle_home环境变量,在c:\ windows \ system32中使用软链接解决方法,并更改PATH环境变量中条目的顺序,并设置NLS_LANG环境变量。

我真的很想弄清楚这一点,而不必找另一台机器来测试Pro。任何人都可以帮我解决这个问题吗?因为我的32位软件连接正确,我认为它与Office试图使用64位驱动程序有关,但我不是这方面的专家。所以,我不知道。

非常感谢任何帮助。如果之前已经回答过这个问题,请提供链接吗?我上周大部分时间都在搜索这个问题,直到今天仍未找到解决我特定问题的任何内容。

1 个答案:

答案 0 :(得分:0)

I had a similar issue trying with a Teradata ODBC connection that I had to fix by actually specifying where the dll was located. My connection string ended up looking something like this. I gave up on trying to use DSN names as well due to a different problem.

ODBC;DefaultDir=C:\Program Files (x86)\Teradata\Client\14.10\ODBC Driver for Teradata\Lib\tdata32.dll;DRIVER={Teradata};DBCName=ourserver.com;