セキュリティ更新プログラム MS12-060 Access Database の機能を損なう

現象

セキュリティ更新プログラム MS12-060 を適用した後、MSCOMCTL に関連付けられている Windows 共通コントロールのいずれかを使用している場合、Access データベースに問題が発生する可能性があります。パッチで更新された 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.

原因

セキュリティ更新プログラム MS12--060 により、既存の Access データベース内やデザイン ビューにコントロールを挿入するときに、特定の ActiveX コントロールが正しく読み込めなくなります。

解決方法

方法 1: 以下の適切なリンクから修正プログラムを適用します。

Office 2010: https://support.microsoft.com/kb/2597986

Office 2003: https://support.microsoft.com/kb/2687323

方法 2: MSCOMCTL を再登録します。管理者特権のコマンド プロンプトからの OCX

  1. 管理者特権でコマンド プロンプトを開きます。

  2. 64 ビット システムで作業している場合は、次の 2 つのコマンドを実行します。

    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"

方法 3: レジストリを手動で更新する

場合によっては、MSCOMCTL の登録と登録解除を行います。管理者特権のアクセス許可を持つ OCX では、データベースの問題を解決するのに十分なわけではありません。 このような場合は、MSCOMCTL に関連付けられているレジストリ キーを手動で削除します。OCX が必要な場合があります。

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 保護を強化するため、レジストリを変更する前にレジストリをバックアップします。 こうしておけば、問題が発生した場合にレジストリを復元できます。 レジストリをバックアップおよび復元する方法の詳細については、「 Windows でレジストリをバックアップおよび復元する方法」を参照してください。

  1. すべての Office プログラムを終了します。

  2. [スタート] をクリックし、[実行] をクリックします。

  3. [開く] ボックスに「regedit」と入力し (引用符なし)、[OK] をクリックします。

  4. レジストリから次の 2.0 キーを参照して削除します。

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

  5. 上記の方法 1 から手順 1 ~ 3 を実行します。

方法 4: システムを自動的に更新するバッチ ファイルを実行する

: これらの手順を実行する前に、レジストリのバックアップをお勧めします。

  1. 新しいテキスト ファイルを作成し、次の内容をコピーして貼り付けます。

    reg delete hkcr\typelib\{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}\2.0 /f

    存在する場合 %systemroot%\SysWOW64\cscript.exe goto 64

    %systemroot%\system32\regsvr32 /u mscomctl.ocx

    %systemroot%\system32\regsvr32 mscomctl.ocx

    終了

    :64

    %systemroot%\sysWOW64\regsvr32 /u mscomctl.ocx

    %systemroot%\sysWOW64\regsvr32 mscomctl.ocx

    Exit

  2. ファイルを保存します。

  3. ファイル拡張子を .TXT から .BAT に変更します。

  4. .BAT ファイルを右クリックし、[管理者として実行] を選択します (XP ユーザーはダブルクリックするだけでファイルを実行できます)。

: アプリケーションを動作させるために上記のレジストリ キーを削除する必要がないことがわかった場合は、バッチ ファイルから reg 削除行を削除できます。

詳細情報

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 で見られる症状とは異なる場合があります。 上記のようにレジストリ キーを削除する必要がない場合は、このような場合の問題に対処します。

セキュリティ更新プログラムの詳細については、次の KB 記事を参照してください。