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

Sintomas

Depois de aplicar a atualização de segurança 2881067, 2881029, 3039794 ou 2920727 descritas no boletim de segurança MS16-004, você terá problemas que afetam seu banco de dados do Access se 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 estão limitadas 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 carregam corretamente em bancos de dados do Access 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 excluir manualmente uma chave do Registro associada ao MSCOMCTL. Ocx.

Método 1: Registrar novamente o MSCOMCTL. OCX de um prompt de comando com privilégios elevados

Para registrar novamente o 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 Editor do Registro, localize e exclua a seguinte subchave 2.0:

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

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

Método 3 (para administradores): executar um arquivo em lotes para atualizar os 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ê pode 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 de nome de arquivo .txt para .bat.

  4. Execute o .bat arquivo. 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 o aplicativo funcionar, poderá remover a linha "reg delete" do arquivo em lotes.

Informações adicionais

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

Controle Microsoft ImageComboBox 6.0 (SP6)

Controle Microsoft ImageList 6.0 (SP6)

Controle Microsoft ListView 6.0 (SP6)

Controle ProgressBar da Microsoft 6.0 (SP6)

Controle Deslizante da Microsoft 6.0 (SP6)

Controle StatusBar da Microsoft 6.0 (SP6)

Controle Microsoft TabStrip 6.0 (SP6)

Controle da Barra de Ferramentas da Microsoft 6.0 (SP6)

Controle Do Microsoft TreeView 6.0 (SP6)

Observação

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

Também são relatados problemas que ocorreram 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 nenhuma alteração no Registro.

Referências

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