セキュリティ更新プログラム 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 によって、既存の Access データベースまたはデザイン ビュー内で特定の ActiveX コントロールが正しく読み込めなくなる可能性があるために発生します。

解決方法

この問題を解決するには、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」と入力し、[OK] をクリック します

  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 コントロール 6.0 (SP6)

Microsoft ImageList Control 6.0 (SP6)

Microsoft ListView コントロール 6.0 (SP6)

Microsoft ProgressBar Control 6.0 (SP6)

Microsoft Slider Control 6.0 (SP6)

Microsoft StatusBar Control 6.0 (SP6)

Microsoft TabStrip コントロール 6.0 (SP6)

Microsoft ツールバー コントロール 6.0 (SP6)

Microsoft TreeView コントロール 6.0 (SP6)

注:

バージョン番号と Service Pack レベルは、"6.0 (SP6)" 以外の場合があります。

この更新プログラムがインストールされた後、他の Office 製品でも問題が発生したことが報告されますが、この症状は Access で発生したものとは異なる場合があります。 他のプログラムでは、レジストリに変更を加える必要がない場合があります。

関連情報

このセキュリティ更新プログラムの詳細については、次の Microsoft サポート技術情報の記事を参照してください。