Mensagens de erro ou falhas de acesso após instalar a atualização de segurança MS16-004

Sintomas

Depois de aplicar 2881067 de atualização de segurança, 2881029, 3039794 ou 2920727 descritos no boletim de segurança MS16-004, você terá problemas que afetam seu banco de dados access se você usar determinados controles comuns do Windows. Especificamente, esses problemas ocorrerão se você usar os controles associados ao MSCOMCTL. Arquivo OCX atualizado na atualização de segurança. Esses problemas podem incluir o seguinte:

  • O programa falha quando você tenta abrir um objeto que inclui um dos controles.

  • Você recebe mensagens de erro que indicam que os eventos foram cancelados. As mensagens de erro de exemplo incluem (mas não se limitam a) o seguinte:

    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.   
    

Motivo

Esse problema ocorre porque a atualização de segurança MS16-004 pode impedir que determinados controles ActiveX carreguem corretamente em bancos de dados de acesso pré-existentes ou no modo design.

Resolução

Para corrigir esse problema, reregistre o MSCOMCTL. Arquivo OCX. Se o Método 1 não corrigir o problema, talvez seja necessário usar o Método 2 para primeiro excluir manualmente uma chave do registro associada ao MSCOMCTL. OCX.

Método 1: Reregister MSCOMCTL. OCX de um prompt de comando elevado

Para reregister MSCOMCTL. OCX, siga estas etapas:

  1. Abra um prompt de comando administrativo.

  2. Em um sistema de 64 bits, execute os seguintes comandos:

     Regsvr32 /u "C:\Windows\SysWOW64\MSCOMCTL.OCX" Regsvr32 "C:\Windows\SysWOW64\MSCOMCTL.OCX"
    
  3. Em um sistema de 32 bits, execute os seguintes comandos:

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

Método 2: atualizar manualmente o registro

Observação

Siga as etapas nesta seção com cuidado. Sérios problemas poderão ocorrer caso você modifique o Registro incorretamente. Antes de modificá-lo, faça backup do Registro para restauração em caso de problemas.

  1. Feche todos os programas do Office.

  2. Clique em Iniciar, digite regedit na caixa iniciar pesquisa e clique em OK.

  3. No Registro Editor, localize e exclua a seguinte subchave 2.0:

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

  4. Execute as etapas 1-3 no Método.

Método 3 (para administradores): execute um arquivo em lote para atualizar sistemas automaticamente

Observação

Siga as etapas nesta seção com cuidado. Sérios problemas poderão ocorrer caso você modifique o Registro incorretamente. Antes de modificá-lo, faça backup do Registro para restauração em caso de problemas.

Depois de determinar com êxito a correção desse problema em seu ambiente usando os Métodos 1 e 2, você poderá automatizar o processo. Para fazer isso, siga estas etapas:

  1. Crie um arquivo de texto e cole o seguinte texto nele:

    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. Salve o arquivo.

  3. Altere a extensão do nome do arquivo de .txt para .bat.

  4. Execute o arquivo .bat. Para fazer isso, clique com o botão direito do mouse nele e clique em Executar como Administrador. (No Windows XP, clique duas vezes no arquivo.)

Observação

Se você tiver determinado no Método 1 que não precisa excluir a chave do registro mencionada no Método 2 para fazer seu aplicativo funcionar, você poderá remover a linha "reg delete" do arquivo do lote.

Informações adicionais

Os controles associados ao MSCOMCTL. OCX está listado na caixa de diálogo Inserir Controle ActiveX da seguinte maneira:

Controle Microsoft ImageComboBox 6.0 (SP6)

Microsoft ImageList Control 6.0 (SP6)

Controle 6.0 do Microsoft ListView (SP6)

Microsoft ProgressBar Control 6.0 (SP6)

Controle deslizante da Microsoft 6.0 (SP6)

Microsoft StatusBar Control 6.0 (SP6)

Microsoft TabStrip Control 6.0 (SP6)

Controle da Barra de Ferramentas da Microsoft 6.0 (SP6)

Controle 6.0 do Microsoft TreeView (SP6)

Observação

O número da versão e o nível do service pack podem ser algo diferente de "6.0 (SP6)".

Também há relatos de problemas em outros produtos do Office após a instalação dessa atualização, embora os sintomas possam variar daqueles que ocorrem no Access. Em outros programas, talvez você não precise fazer alterações no registro.

Referências

Para obter mais informações sobre essa atualização de segurança, confira os seguintes artigos da Base de Dados de Conhecimento da Microsoft: