MS Access无法连接到SAP“;无法加载LibRfc32.dll“;错误-VBA-SAP

MS Access无法连接到SAP“;无法加载LibRfc32.dll“;错误-VBA-SAP,vba,ms-access,dll,sap-gui,saprfc,Vba,Ms Access,Dll,Sap Gui,Saprfc,如何修复从Microsoft Access 365调用时无法加载librfc32.dll的错误 我已经尝试了网络上常见的故障排除步骤,如下所示,需要帮助 注意:这是一个已有25年历史的复杂大型应用程序,我无法升级到比SAP GUI 7.40更新的版本,因为其他应用程序需要它。我无法在Access VBA中重写web服务调用,因为它被明确排除在我的项目之外。这是Access 10 to Access 365更新项目,没有为重写分配时间 注意:这是一台服务器计算机,我无法安装DependencyWa

如何修复从Microsoft Access 365调用时无法加载librfc32.dll的错误

我已经尝试了网络上常见的故障排除步骤,如下所示,需要帮助

注意:这是一个已有25年历史的复杂大型应用程序,我无法升级到比SAP GUI 7.40更新的版本,因为其他应用程序需要它。我无法在Access VBA中重写web服务调用,因为它被明确排除在我的项目之外。这是Access 10 to 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、iphlapi.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的问题 并且所有DLL都存在于发生错误的计算机上:
    • 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,“设置路径=%PATH%;C:\Windows\SysWow65;然后从DOS命令行运行MSAccess
  • 试用版9-验证了msvcr110.dll、msvcp110.dll、MFC*.dll位于C:\Windows\SysWow64中。Dumpbin.exe根据librfc32.dll的需要显示这些dll中的v110。这被
指向librfc32.dll类似问题的相关参考链接。请注意,这些问题已存在15年,其中许多建议适用于过时的应用程序

  • Access调用SAP RFC功能模块–2009年9月23日- 这是关于注册DLL和OCX的

  • ab&ved=0ahUKEwjo5_PvncbsAhUFLKwKHTm9B9cQ4dUDCAg&uact=5

  • Sap登录控制-Sap问答-


在尝试了许多解决方法并查看了50多个网页后,我在StackOveflow上发表了文章。我想在这个问题中包含一些更接近这个问题的链接,但由于链接太多而受到限制。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编译的,要么不是为Unicode编译的,并且由于您尝试加载librfc32.dll,因此看起来