安裝安全性更新 MS16-004 之後發生錯誤訊息或存取損毀

徵狀

在您套用安全性更新2881067、2881029、3039794或安全性布告欄 MS16-004 中所述的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 中,按兩下 file.)

注意事項

如果您在方法 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 控件 6.0 (SP6)

注意事項

版本號碼和 Service Pack 層級可能不是「6.0 (SP6) 」。

在安裝此更新之後,其他 Office 產品也會回報發生問題,不過徵兆可能與 Access 中發生的徵兆不同。 在其他程式中,您可能不需要在登錄中進行任何變更。

參考資料

如需此安全性更新的詳細資訊,請參閱下列 Microsoft 知識庫文章: