【问题标题】:SAP query RFC connection on 64bit WIN and OFFICE "ActiveX component can't create object"SAP 在 64 位 WIN 和 OFFICE 上查询 RFC 连接“ActiveX 组件无法创建对象”
【发布时间】:2018-10-13 10:08:27
【问题描述】:
我们曾经在 32 位 WIN 和 OFFICE 上使用对象“SAP.LogonControl.1”的 SAP 查询在 Excel (VBA) 中使用 RFC 连接。现在我们安装了 WIN 和 OFFICE 的 64 位版本,我们遇到了“ActiveX 组件无法创建对象”的问题。
这是下降的线:
设置函数Ctrl = CreateObject("SAP.LogonControl.1")
有人解决吗?不需要安装到 32 位。
【问题讨论】:
标签:
vba
registry
sap-gui
saprfc
【解决方案1】:
截至 2021 年 2 月,SAP 终于发布了 64 位版本的 NWRFC 控件,允许在 64 位 MS Office 中直接使用。这包含在 770 GUI 中,该 GUI 现已广泛可用,并在 2021 年 7 月的稳定补丁 3 中。SAP GUI 770 release。这意味着不再需要早期答案中的代理解决方案!
这个注释2724656 有一些关于 NWRFC 的信息,但这是你需要知道的:
如果 NWRFC 安装正确,那么将在 C:\Program Files\SAP\FrontEnd\SAPgui 文件夹中安装一组四个 .ocx 控件,例如wdtfuncs.ocx。请注意,C:\Program Files (x86)\SAP\FrontEnd\SAPgui 文件夹中也会有一个同名的 32 位控件。
Office 64 位 VBA 应自动选择新控件,但要确保在 VBA 中打开“参考”,并确保控件显示 64 位文件夹的路径(或编辑/添加对 .ocx 的引用控制)。
【解决方案2】:
日期:2020-11-26
有一个 SAP Support OSS Note (‘2724656’),
SAP 说他们不支持 Office 64 位
直到明年(2021 年)随着 SAPgui 770 的到来(因此还没有 SAPgui 760)
上面提供的代理解决方案适用于 SAPgui 750 和 760
但它只涵盖了实际 4 个 ActiveX 控件中的 1 个
这是 4 个控件的完整解决方案,如果您将它们放在与下面相同的路径中:
c:\program files (x86)\sap\frontend\sapgui\wdtaocx.ocx (SAP Table Factory)
c:\program files (x86)\sap\frontend\sapgui\wdobapi.ocx (SAP BAPI Control)
C:\Program Files (x86)\Common Files\SAP Shared\wdtlog.ocx (SAP Logon Control)
c:\program files (x86)\sap\frontend\sapgui\wdtfuncs.ocx (SAP Remote Function Call Control)
解决方案,创建一个 *.reg 文件并将其合并到您的 Windows 注册表中:
(首先在测试系统上执行此操作) - *.reg 文件的内容:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{2E9A4698-F0EE-11CF-AC55-080009D213D2}]
@="SAP BAPI"
"AppID"="{2E9A4698-F0EE-11CF-AC55-080009D213D2}"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}]
@="SAP Remote Function Call"
"AppID"="{5B076C03-2F26-11CF-9AE5-0800096E19F4}"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{B24944D6-1501-11CF-8981-0000E8A49FA0}]
@="SAP Logon Control"
"AppID"="{B24944D6-1501-11CF-8981-0000E8A49FA0}"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{87D2850E-6B43-101C-92CE-10005AF5DF4D}]
@="SAP Table Factory"
"AppID"="{87D2850E-6B43-101C-92CE-10005AF5DF4D}"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{2E9A4698-F0EE-11CF-AC55-080009D213D2}\Control]
@=""
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}\Control]
@=""
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{B24944D6-1501-11CF-8981-0000E8A49FA0}\Control]
@=""
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{87D2850E-6B43-101C-92CE-10005AF5DF4D}\Control]
@=""
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{2E9A4698-F0EE-11CF-AC55-080009D213D2}\InprocServer32]
@="c:\program files (x86)\sap\frontend\sapgui\wdobapi.ocx"
"ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}\InprocServer32]
@="c:\program files (x86)\sap\frontend\sapgui\wdtfuncs.ocx"
"ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{B24944D6-1501-11CF-8981-0000E8A49FA0}\InprocServer32]
@="C:\Program Files (x86)\Common Files\SAP Shared\wdtlog.ocx"
"ThreadingModel"="both"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{87D2850E-6B43-101C-92CE-10005AF5DF4D}\InprocServer32]
@="c:\program files (x86)\sap\frontend\sapgui\wdtaocx.ocx"
"ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{2E9A4698-F0EE-11CF-AC55-080009D213D2}\MiscStatus]
@="0"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{2E9A4698-F0EE-11CF-AC55-080009D213D2}\MiscStatus\1]
@="131474"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}\MiscStatus]
@="0"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}\MiscStatus\1]
@="132241"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{B24944D6-1501-11CF-8981-0000E8A49FA0}\MiscStatus]
@="0"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{B24944D6-1501-11CF-8981-0000E8A49FA0}\MiscStatus\1]
@="135569"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{87D2850E-6B43-101C-92CE-10005AF5DF4D}\MiscStatus]
@="0"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{87D2850E-6B43-101C-92CE-10005AF5DF4D}\MiscStatus\1]
@="132498"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{2E9A4698-F0EE-11CF-AC55-080009D213D2}\ProgID]
@="SAP.BAPI.1"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}\ProgID]
@="SAP.Functions"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{B24944D6-1501-11CF-8981-0000E8A49FA0}\ProgID]
@="SAP.LogonControl.1"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{87D2850E-6B43-101C-92CE-10005AF5DF4D}\ProgID]
@="SAP.TableFactory.1"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{2E9A4698-F0EE-11CF-AC55-080009D213D2}\ToolboxBitmap32]
@="c:\program files (x86)\sap\frontend\sapgui\wdobapi.ocx, 200"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}\ToolboxBitmap32]
@="c:\program files (x86)\sap\frontend\sapgui\wdtfuncs.ocx, 1"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{B24944D6-1501-11CF-8981-0000E8A49FA0}\ToolboxBitmap32]
@="C:\Program Files (x86)\Common Files\SAP Shared\wdtlog.ocx, 1001"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{87D2850E-6B43-101C-92CE-10005AF5DF4D}\ToolboxBitmap32]
@="c:\program files (x86)\sap\frontend\sapgui\wdtaocx.ocx, 2002"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{2E9A4698-F0EE-11CF-AC55-080009D213D2}\TypeLib]
@="{2E9A4698-F0EE-11CF-AC55-080009D213D2}"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}\TypeLib]
@="{5B076C00-2F26-11CF-9AE5-0800096E19F4}"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{B24944D6-1501-11CF-8981-0000E8A49FA0}\TypeLib]
@="{B24944D6-1501-11CF-8981-0000E8A49FA0}"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{87D2850E-6B43-101C-92CE-10005AF5DF4D}\TypeLib]
@="{87D2850E-6B43-101C-92CE-10005AF5DF4D}"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{2E9A4698-F0EE-11CF-AC55-080009D213D2}\Version]
@="1.2"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}\Version]
@="5.0"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{B24944D6-1501-11CF-8981-0000E8A49FA0}\Version]
@="1.1"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{87D2850E-6B43-101C-92CE-10005AF5DF4D}\Version]
@="1.1"
[HKEY_CLASSES_ROOT\WOW6432Node\AppID\{2E9A4698-F0EE-11CF-AC55-080009D213D2}]
"DllSurrogate"=""
[HKEY_CLASSES_ROOT\WOW6432Node\AppID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}]
"DllSurrogate"=""
[HKEY_CLASSES_ROOT\WOW6432Node\AppID\{B24944D6-1501-11CF-8981-0000E8A49FA0}]
"DllSurrogate"=""
[HKEY_CLASSES_ROOT\WOW6432Node\AppID\{87D2850E-6B43-101C-92CE-10005AF5DF4D}]
"DllSurrogate"=""
【解决方案3】:
我们找到了解决方案。我们使用 SAPGUI 7.50,修复一些注册表(代理)并使用 SAP.Function 而不是 SAP.LogonControl.1。就这样。有用。
以下是我们的注册表更改:
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}]
@="SAP Remote Function Call"
"AppID"="{5B076C03-2F26-11CF-9AE5-0800096E19F4}"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}\Control]
@=""
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}\InprocServer32]
@="c:\\program files (x86)\\sap\\frontend\\sapgui\\wdtfuncs.ocx"
"ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}\MiscStatus]
@="0"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}\MiscStatus\1]
@="132241"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}\ProgID]
@="SAP.Functions"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}\ToolboxBitmap32]
@="c:\\program files (x86)\\sap\\frontend\\sapgui\\wdtfuncs.ocx, 1"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}\TypeLib]
@="{5B076C00-2F26-11CF-9AE5-0800096E19F4}"
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}\Version]
@="5.0"
[HKEY_CLASSES_ROOT\WOW6432Node\AppID\{5B076C03-2F26-11CF-9AE5-0800096E19F4}]
"DllSurrogate"=""
【解决方案4】:
请参阅 SAP 说明 1442028:适用于 Windows 的 SAP GUI - 支持 Office 64 位版本。
默认情况下,64 位程序无法加载 32 位程序。由于适用于 Windows 的 SAP GUI 是一个 32 位程序,其 Active 库(如 LogonControl)也是如此,因此它与 64 位 Office 不兼容。或者,您可以在 64 位 Windows 上使用 32 位 Office。
通过 DLL 代理有一些解决方法,但它们需要更改注册表并且可能长期不稳定。