セキュリティ更新プログラム MS16-004 をインストールした後にエラー メッセージまたは Access がクラッシュする

現象

セキュリティ情報 MS16-004 で説明されているセキュリティ更新プログラムの2881067、2881029、3039794、または2920727を適用すると、特定の Windows 共通コントロールを使用すると、Access データベースに影響する問題が発生します。 具体的には、これらの問題は、MSCOMCTL に関連付けられているコントロールを使用する場合に発生します。セキュリティ更新プログラムで更新された OCX ファイル。 これらの問題には、次のものが含まれる場合があります。

  • コントロールの 1 つを含むオブジェクトを開こうとすると、プログラムがクラッシュします。

  • イベントが取り消されたことを示すエラー メッセージが表示されます。 エラー メッセージの例には、次のものが含まれます (ただし、これらに限定されません)。

    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」と入力して、[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 Control 6.0 (SP6)

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

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

注:

バージョン番号とサービス パック レベルは、"6.0 (SP6)" 以外の場合があります。

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

関連情報

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