【问题标题】: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 代理有一些解决方法,但它们需要更改注册表并且可能长期不稳定。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-01-19
            • 1970-01-01
            • 1970-01-01
            • 2018-01-31
            • 2012-05-28
            • 2010-12-25
            相关资源
            最近更新 更多