【问题标题】:MS Access cannot connect to SAP "Cannot load LibRfc32.dll" error - VBA - SAPMS Access 无法连接到 SAP“无法加载 LibRfc32.dll”错误 - VBA - SAP
【发布时间】:2021-04-26 06:01:35
【问题描述】:

如何解决从 Microsoft Access 365 调用时无法加载 librfc32.dll 的错误?

我已经尝试了下面列出的网上常见故障排除步骤,需要帮助。

注意:这是一个已有 25 年历史的复杂大型应用程序,我无法升级到比 SAP GUI 7.40 更新的版本,因为其他应用程序需要它。我无法在 Access VBA 中重写 Web 服务调用,因为它被明确排除在我的项目之外。这是一个 Access 10 到 Access 365 的更新项目,没有时间用于重写。

注意:这是一台服务器机器,我无法安装 DependencyWalker、Visual Studio 或其他诊断工具。

尝试使用 librfc32.dll 将数据发送到 SAP 时,我在 Microsoft Access 365 中收到此错误:

无法加载 DLL 'librfc32.dll' 找不到指定的模块。(来自 HRESULT 0x8007007E 的异常)

错误是无法加载 librfc32.dll 或它所依赖的 DLL 之一。

平台:

  • Windows Server 2016,64 位
  • Microsoft Access 365 32 位
  • SAP GUI 7.40 补丁级别 13 前端工具应用程序 - SAP NetWeaver v7400.3.13.1130 - 内部版本 1756678 - 补丁级别 13
  • Librfc32.dll 是 SAP 7.40 GUI 前端工具应用程序的一部分

注意事项:

  • 我们无法升级到 SAP GUI 7.5 或更高版本,因为它被同一台计算机上的其他应用程序使用
  • MSAccess 应用程序刚刚从 MSAccess 2010 升级
  • MSAccess 应用程序没有为 SAP DLL 或 OCX 文件设置任何依赖项
  • Librfc32.dll 依赖于基于“dumpbin.exe /dependents librfc32.dll”的这些其他 DLL。 Dumpbin.exe 是 Visual Studio 2019 的一部分。Visual Studio 2019 未安装在出现无法加载 DLL 错误的计算机上。
  • Librfc32.dll 依赖项 - 所有这些都位于 C:\Windows\SysWow64 中。 ole32.dll、RPCRT4.dll、OLEAUT32.dll、KERNEL32.dll、ADVAPI32.dll、USER32.dll、WS2_32.dll、IPHLPAPI.DLL、NETAPI32.dll、SHELL32.dll、dbghelp.dll、VERSION.dll、MSVCR110。 dll

到目前为止我们已经尝试过并且都给出了相同的无法加载 DLL 错误:

  • 试用 1 - 在安装 SAP GUI 7.40 之前运行 MSAccess 应用程序
  • 试用 2 - 安装 SAP GUI 7.40
  • 试用 3 - 在 MSAccess 应用程序中,添加对 C:\Windows\SysWow64\librfc32.dll 的引用
  • 试用 4 - 使用“regsvr32 librfc32.dll”注册 librfd32.dll
  • 试用版 5 - 在 MSAccess 应用程序中,从 SAP GUI 应用程序添加对以下 DLL 的引用。这是来自 2009 年的类似 Access 2010 SAP GUI 7.20 question here 并且所有 DLL 都存在于有错误的机器上:https://answers.sap.com/questions/6537228/access-calls-sap-rfc-function-modules.html
    • regsvr32 c:\program files (x86)\sap\frontend\sapgui\wdobapi.ocx
    • regsvr32 c:\program files (x86)\common files\sap shared\wdtlog.ocx
    • regsvr32 c:\windows\SysWOW64\librfc32.dll
    • regsvr32 c:\program files (x86)\sap\frontend\sapgui\wdtaocx.ocx
    • regsvr32 c:\program files (x86)\sap\frontend\sapgui\wdtfuncs.ocx
  • 试用 6 - 检查 Windows 事件日志。运行 MSAccess 应用程序并生成错误消息。再次检查 Windows 事件日志。未找到与此错误相关的消息
  • 试用 7 - 将 librfc32.dll 和 librfc32u.dll 复制到 MSAccess.exe 所在的 Microsoft Office 可执行目录中
  • 试用 8 - 将 C:\Windows\SysWow64 添加到 PATH 环境变量不起作用。启动 DOS,“SET PATH=%PATH%;C:\Windows\SysWow65; 然后从 DOS 命令行运行 MSAccess
  • 试用 9 - 验证 msvcr110.dll、msvcp110.dll、MFC*.dll 在 C:\Windows\SysWow64 中。 Dumpbin.exe 根据 librfc32.dll 的需要显示这些 DLL 的 v110。这是由https://answers.sap.com/questions/3505999/librfc32dll-not-found-on-windows-server-2003.html 引用的

有关 librfc32.dll 的类似问题的相关参考链接。请注意,这些应用程序的使用期限最长为 15 年,其中许多建议适用于过时的应用程序。

在尝试了许多变通方法并查看了 50 多个网页后,我在 StackOveflow 上发布了帖子。我想在这个问题中包含一些更接近这个问题的链接,但由于链接错误太多而受到限制。

【问题讨论】:

  • 当我在 VBA 中编写 RFC 应用程序时,我使用但我不需要 librfc32.dll(而且我认为它不是 SAP GUI 的一部分,而是 SAP RFC SDK 的一部分/也许可以选择虽然使用 SAP GUI 安装它)。我使用 SAP GUI 的wdtfuncs.ocx,对 SAP ABAP 服务器进行 RFC 调用就足够了。
  • 谢谢桑德拉·罗西。我无法升级到更新的 SAP RFC SDK,也无法重写 VBA 以使用 wdtfuncs.ocx。它只是一个 Access 2010 到 365 的升级项目,而不是重写。这就是为什么我想包含更多与 librfc32.dll 故障排除和修复相关的链接。
  • 您能否检查一下 Microsoft Visual C++ 运行时库是否已升级或缺失 (SAP note 1408592 - Error when loading rfc library librfc32.dll)。笔记没有多说。请注意,SAP 不再支持 SAP GUI 7.40 和 librfc32.dll
  • Sandara,我按照其他网页中的建议检查了 Microsoft Visual C++ 运行时库。请参阅问题中的试用 9。
  • Sandra,即使在登录 answers.sap.com 后,我也看不到 SAP 注释 1408592。

标签: vba ms-access dll sap-gui saprfc


【解决方案1】:

librfc32.dll 是经典的 RFC 库,也是经典 RFC SDK 的一部分。它还随以前的 SAP GUI 版本和其他产品一起提供。 但与此同时,经典的 RFC 库和经典的 RFC SDK 在 SAP 已经停止维护和支持。您将不会再收到此库的新版本或更新。

此库需要哪些 Visual C 运行时库取决于 librfc32.dll 源自的 SAP 版本和库的位宽(32 位与 64 位)。请注意,对于所有动态加载的库,您始终需要相同的位宽,这些库必须适合加载这些库的主程序的位宽。因此,请检查您的 MS Access 可执行文件是 32 位还是 64 位程序。

尽管它的名称是 librfc32.dll,但它以 32 位库和 64 位库的形式存在。 在 Windows 目录 SysWOW64 中,您通常会找到 32 位库,而在 64 位 Windows 安装的目录 system32 中,您会找到 64 位库 [感谢 Microsoft 的命名约定]。 :)

无论如何,您不需要 librfc32u.dll,它是该库的 Unicode 版本。您不能在一个过程中同时使用两者。您的代码是针对 Unicode 编译的,或者不是,并且由于您尝试加载 librfc32.dll,它似乎是针对非 Unicode 运行时编译的。

【讨论】:

  • 想通了。丢失的 librfc32.dll 错误来自 VBA 调用第三方 Web 服务时的错误消息。第三方 Web 服务从 DLL 返回了一般错误消息,从而混淆了问题。修复方法是在第三方 Web 服务机器上安装 SAP 客户端 GUI 7.40。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-03
  • 1970-01-01
  • 2019-08-27
相关资源
最近更新 更多