【问题标题】:OraOLEDBpus.dll: The specified module could not be foundOraOLEDBpus.dll:找不到指定的模块
【发布时间】:2021-03-27 18:07:41
【问题描述】:

我遇到了一个连接到 Oracle 数据库的 excel 宏的问题。该宏在许多用户 PC 上运行良好,但在一台 DAAS 机器上,尝试打开连接时出现错误:

OraOLEDBpus.dll:找不到指定的模块

还有这个错误: 登录数据库时遇到错误 说明:找不到提供程序。它可能没有正确安装。

这是连接字符串,我认为这不是问题,因为它适用于 20 多台其他用户的 PC。

Conn1.Open ( _
"User ID=" & strUName & _
";Password=" & PWD & _
";Data Source=" & DSN & _
";Provider=OraOLEDB.Oracle" & _
";PwdChgDlg = 0")

操作系统为 Win 10 64 位,Office 版本为 2016 32 位。此机器上已安装 Oracle Client 12c 32 位。

对我为什么会收到此错误有任何想法吗?

【问题讨论】:

  • 听起来您可能需要在该 PC 上重新安装 Oracle 客户端。我在旧版本的客户端中看到了相同 dll 的注册问题:它可能只需要注册。
  • 很遗憾,卸载并重新安装并没有解决问题。
  • 您是否安装了多个 Oracle 客户端(包括任何以前的安装)? %PATH% 变量是什么?
  • 检查docs.microsoft.com/en-us/sysinternals/downloads/procmon 实际加载了哪些文件以及失败的位置。再次非常仔细检查 Oracle 客户端和 OleDb 提供程序的版本。

标签: excel vba oracle oracle12c adodb


【解决方案1】:

您必须检查不同的点。

  • 需要安装用于 OLE DB 的 Oracle Provider。它不是裸 Oracle Instant Client 的一部分。
  • 必须安装 Oracle 客户端。用于 OLE DB 的 Oracle 提供程序不能独立工作
  • 它必须与您的 MS Office 具有相同的架构(即 32 位与 64 位)
  • 它必须与 Oracle 客户端的架构相同
  • OLE DB 的 Oracle Provider 的版本必须与 Oracle 客户端的版本完全相同

32-bit Oracle Data Access Components (ODAC) 和/或64-bit Oracle Data Access Components (ODAC)

可能存在用于 OLE DB 的 Oracle 提供程序但未正确注册,请参阅 How do I register a DLL file on Windows 7 64-bit?

【讨论】:

  • 我验证了您指出的每一点。那里没有问题。我尝试注册 DLL 并收到一条错误消息。大意是... 模块已加载,但未找到入口点。确保“.dll”是有效的 DLL 或 OCX 文件,然后重试。
  • 我发现当宏尝试建立连接时,excel 文件会上传到 SharePoint 网站。这在 VBA 中的任何地方都没有编码,所以我想知道它是否与这是一台 DAAS 机器以及所有内容都存储在 OneCloud 中有关?我已将 xlsm 文件移动到本地文件夹并尝试再次运行,但仍然收到错误并看到它打开了 SharePoint 上传对话框。
  • 查看stackoverflow.com/a/54330922/3027266 以检查 Ole Db Provider 的版本和注册
  • 感谢您的指导。不幸的是,我无法解决问题。用户将获得一个新的虚拟机,我们会再试一次。
【解决方案2】:

this site 上安装 32 位 AccessDatabaseEngine.exe。

稍后,以管理员权限在此路径上打开 cmd。 执行此命令;

AccessDatabaseEngine.exe /被动

【讨论】:

  • 感谢您的指导。不幸的是,我无法解决问题。用户将获得一个新的虚拟机,我们会再试一次。
猜你喜欢
  • 1970-01-01
  • 2017-09-17
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-07
  • 2014-04-11
相关资源
最近更新 更多