安装安全更新 MS16-004 后出现错误消息或 Access 崩溃

症状

应用安全公告 MS16-004 中所述的安全更新2881067、2881029、3039794或2920727后,如果使用某些 Windows 常用控件,则遇到影响 Access 数据库的问题。 具体而言,如果使用与 MSCOMCTL 关联的控件,则会出现这些问题。安全更新中更新的 OCX 文件。 这些问题可能包括:

  • 尝试打开包含其中一个控件的对象时,程序崩溃。

  • 收到指示事件已取消的错误消息。 示例错误消息包括 (但不限于以下) :

    Error 459: Object or class does not support the set of events. 
    
    2501: <EventName> action cancelled.
    
    The expression <EventName> you entered as the event property setting produced the following error: Object of class does not support the set of events.   
    

原因

出现此问题的原因是,安全更新 MS16-004 可能会阻止某些 ActiveX 控件在预先存在的 Access 数据库或设计视图中正确加载。

解决方案

若要解决此问题,请重新注册 MSCOMCTL。OCX 文件。 如果方法 1 未解决问题,则可能需要先使用方法 2 手动删除与 MSCOMCTL 关联的注册表项。Ocx。

方法 1:重新注册 MSCOMCTL。来自提升的命令提示符的 OCX

重新注册 MSCOMCTL。OCX,请执行以下步骤:

  1. 打开管理命令提示符。

  2. 在 64 位系统上,运行以下命令:

     Regsvr32 /u "C:\Windows\SysWOW64\MSCOMCTL.OCX" Regsvr32 "C:\Windows\SysWOW64\MSCOMCTL.OCX"
    
  3. 在 32 位系统上,运行以下命令:

     Regsvr32 /u "C:\Windows\System32\MSCOMCTL.OCX" Regsvr32 "C:\Windows\System32\MSCOMCTL.OCX"
    

方法 2:手动更新注册表

注意

请仔细遵循本部分中的步骤进行操作。 对注册表修改不当可能会导致严重问题。 修改之前,备份注册表以便在发生问题时进行还原。

  1. 退出所有 Office 程序。

  2. 单击“ 开始”,在 “开始”搜索 框中键入 regedit,然后单击“ 确定”。

  3. 在“注册表编辑器”中,找到并删除以下 2.0 子项:

    HKEY_CLASSES_ROOT\TypeLib{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}\2.0

  4. 在方法中运行步骤 1-3。

面向管理员的方法 3 () :运行批处理文件以自动更新系统

注意

请仔细遵循本部分中的步骤进行操作。 对注册表修改不当可能会导致严重问题。 修改之前,备份注册表以便在发生问题时进行还原。

使用方法 1 和方法 2 在环境中成功确定此问题的修复后,可以自动执行该过程。 为此,请按照下列步骤操作:

  1. 创建一个文本文件,然后将以下文本粘贴到其中:

    reg delete hkcr\typelib\{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}\2.0 /f
    
    if exist %systemroot%\SysWOW64\cscript.exe goto 64 
    %systemroot%\system32\regsvr32 /u mscomctl.ocx
    %systemroot%\system32\regsvr32 mscomctl.ocx
    exit
    
    :64
    %systemroot%\sysWOW64\regsvr32 /u mscomctl.ocx
    %systemroot%\sysWOW64\regsvr32 mscomctl.ocx 
    Exit
    
  2. 保存文件。

  3. 将文件扩展名从 .txt 更改为 .bat。

  4. 运行 .bat 文件。 为此,请右键单击它,然后单击“ 以管理员身份运行”。 (在 Windows XP 中,双击文件。)

注意

如果在方法 1 中确定不必删除方法 2 中提到的注册表项,即可使应用程序正常工作,可以从批处理文件中删除“reg delete”行。

更多信息

与 MSCOMCTL 关联的控件。OCX 列在“ 插入 ActiveX 控件 ”对话框中,如下所示:

Microsoft ImageComboBox Control 6.0 (SP6)

Microsoft ImageList Control 6.0 (SP6)

Microsoft ListView Control 6.0 (SP6)

Microsoft ProgressBar Control 6.0 (SP6)

Microsoft Slider Control 6.0 (SP6)

Microsoft StatusBar Control 6.0 (SP6)

Microsoft TabStrip Control 6.0 (SP6)

Microsoft 工具栏控件 6.0 (SP6)

Microsoft TreeView Control 6.0 (SP6)

注意

版本号和 Service Pack 级别可能不同于“6.0 (SP6) ”。

安装此更新后,其他 Office 产品也报告出现了问题,尽管症状可能与 Access 中出现的症状不同。 在其他程序中,你可能不必在注册表中进行任何更改。

References

有关此安全更新的详细信息,请参阅以下 Microsoft 知识库文章: