As mensagens de erro ou o Access falha 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, terá problemas que afetam a sua base de dados do Access se utilizar determinados controlos comuns do Windows. Especificamente, estes problemas ocorrem se utilizar os controlos associados à MSCOMCTL. Ficheiro OCX atualizado na atualização de segurança. Estes problemas podem incluir o seguinte:

  • O programa falha quando tenta abrir um objeto que inclui um dos controlos.

  • 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.   
    

Causa

Este problema ocorre porque a atualização de segurança MS16-004 pode impedir que determinados controlos ActiveX carreguem corretamente em bases de dados do Access pré-existentes ou na vista Estrutura.

Resolução

Para corrigir este problema, volte a registar a MSCOMCTL. Ficheiro OCX. Se o Método 1 não corrigir o problema, poderá ter de utilizar o Método 2 para eliminar manualmente uma chave de registo associada à MSCOMCTL. OCX.

Método 1: Voltar a registar MSCOMCTL. OCX a partir de uma linha de comandos elevada

Para voltar a registar MSCOMCTL. OCX, siga estes passos:

  1. Abra uma linha de comandos administrativa.

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

     Regsvr32 /u "C:\Windows\SysWOW64\MSCOMCTL.OCX" Regsvr32 "C:\Windows\SysWOW64\MSCOMCTL.OCX"
    
  3. Num 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 registo

Nota

Siga cuidadosamente os passos indicados nesta secção. Poderão ocorrer problemas graves se modificar o registo de forma incorreta. Antes de o modificar, faça uma cópia de segurança do registo para o restaurar caso ocorram problemas.

  1. Saia de todos os programas do Office abertos.

  2. Clique em Iniciar, escreva regedit na caixa Iniciar pesquisa e, em seguida, clique em OK.

  3. No registo Revisor, localize e elimine a seguinte subchave 2.0:

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

  4. Execute os passos 1 a 3 no Método .

Método 3 (para administradores): execute um ficheiro batch para atualizar sistemas automaticamente

Nota

Siga cuidadosamente os passos indicados nesta secção. Poderão ocorrer problemas graves se modificar o registo de forma incorreta. Antes de o modificar, faça uma cópia de segurança do registo para o restaurar caso ocorram problemas.

Depois de determinar com êxito a correção deste problema no seu ambiente através dos Métodos 1 e 2, pode automatizar o processo. Para tal, siga estes passos:

  1. Crie um ficheiro de texto e, em seguida, cole o seguinte texto no mesmo:

    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. Guarde o ficheiro.

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

  4. Execute o ficheiro .bat. Para tal, clique com o botão direito do rato no mesmo e, em seguida, clique em Executar como Administrador. (No Windows XP, faça duplo clique no ficheiro.)

Nota

Se determinou no Método 1 que não tem de eliminar a chave de registo mencionada no Método 2 para que a sua aplicação funcione, pode remover a linha "reg delete" do ficheiro batch.

Mais Informações

Os controlos associados à MSCOMCTL. O OCX está listado na caixa de diálogo Inserir Controlo ActiveX da seguinte forma:

Microsoft ImageComboBox Control 6.0 (SP6)

Microsoft ImageList Control 6.0 (SP6)

Microsoft ListView Control 6.0 (SP6)

Microsoft ProgressBar Control 6.0 (SP6)

Controlo de Deslize da Microsoft 6.0 (SP6)

Microsoft StatusBar Control 6.0 (SP6)

Microsoft TabStrip Control 6.0 (SP6)

Microsoft Toolbar Control 6.0 (SP6)

Microsoft TreeView Control 6.0 (SP6)

Nota

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

Os problemas também são reportados como tendo ocorrido noutros produtos do Office após a instalação desta atualização, embora os sintomas possam variar dos que ocorrem no Access. Noutros programas, poderá não ter de efetuar alterações no registo.

Referências

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