INFO: Resolução de problemas erro 429 ao automatizar o aplicações do Office

Traduções de Artigos Traduções de Artigos
Artigo: 244264 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Quando utiliza o operador de Novo ou função CreateObject no Visual Basic para criar uma instância de uma aplicação do Microsoft Office, poderão receber a seguinte mensagem de erro:
Run-time error '429': o componente ActiveX não é possível criar o objecto
Este erro ocorre quando o objecto de automatização solicitado não é possível criar, COM e, por isso, está indisponível para o Visual Basic. O erro é normalmente apresentado em determinados computadores, mas não outros.

Este artigo fornece algumas sugestões de resolução de problemas para o ajudar a diagnosticar e resolver problemas comuns que são conhecidos por causar este erro.

Mais Informação

Ao contrário de alguns erros no Visual Basic, não existe não um causa a um erro 429. O problema ocorre devido a um erro da configuração do sistema ou da aplicação ou um componente em falta ou danificado. Localizar a causa exacta é uma questão de eliminação de possibilidades. Se encontrar este erro num computador cliente, existem várias coisas que terá de verificar para isolar e resolver o erro.

Os itens mais tarde obterá algumas sugestões práticas para resolver este erro quando trabalha com aplicações do Office. Algumas destas informações também se aplicam ao não o Office COM servidores bem, mas este artigo pressupõe que está a tentar automatizar o Microsoft Office.

Verificar o código

O primeiro local para começar a procurar o problema é no código. Pode resolver o erro, terá de saber onde ocorre o erro. Tente limitar para baixo para uma única linha de código.

Quando encontrar o código que está a falhar, tente efectuar o seguinte:
  • Certifique-se que o código utiliza a criação de objectos explícito. Qualquer problema é mais fácil identificar e identificar se o problema é reduzido a uma única acção. Por exemplo, não execute o seguinte:
    Application.Documents.Add 'DON'T USE THIS!!
    						
    ou:
    
    Dim oWordApp As New Word.Application 'DON'T USE THIS!!
    '... some other code
    oWordApp.Documents.Add
    						
    Utilizam ambos os métodos criação do objecto implícita. O Microsoft Word não é iniciado até que a variável é chamada pelo menos uma vez. Uma vez que a variável pode ser chamada em diferentes partes do programa, este poderia tornar o problema difíceis de localizar. Além disso, é não desmarque se o problema reside criar o objecto de aplicação ou o objecto de documento.

    Em vez disso, efectuar chamadas explícitas para criar cada objecto separadamente:
    Dim oWordApp As Word.Application
    Dim oDoc As Word.Document
    Set oWordApp = CreateObject("Word.Application")
    '... some other code
    Set oDoc = oWordApp.Documents.Add
    						
    Isto facilita o problema isolar e torna o código mais legível.
  • Quando criar uma instância de uma aplicação do Microsoft Office, utilize CreateObject em vez de Novo . CreateObject melhor mapeia para o processo de criação utilizado pela maior parte dos clientes do Visual C++ e permite alterações possíveis no CLSID do servidor entre versões. é possível utilizar CreateObject com objectos de ligação antecipada e atrasada dependente.
  • Verifique se a cadeia de ID do programa passada para CreateObject está correcta e que é versão independente (ou seja, utilize "Excel.Application" em vez de "Excel.Application.8"). É possível que o sistema que está a falhar tem uma versão mais recente ou anterior do Microsoft Office que a versão especificada no ProgID.
  • Para ajudar na depuração aplicações que não podem ser executadas no IDE do, utilize o comando Erl para indicar o número de linha da linha que falhou. Por exemplo, o seguinte código indicará que não é possível criar o objecto de automatização (Word ou Excel):
    Dim oWord As Word.Application
    Dim oExcel As Excel.Application
    
    On Error Goto err_handler
    
    1: Set oWord = CreateObject("Word.Application")
    2: Set oExcel = CreateObject("Excel.Application")
    
    ' ... some other code
    
    err_handler:
      MsgBox "The code failed at line " & Erl, vbCritical
    						
    utilizar uma combinação de caixas de mensagens e números para localizar o erro da linha.
  • Tente utilizar o enlace tardio (ou seja, Dim oWordApp como objecto). Antecipada objectos dependentes requerem as respectivas interfaces personalizados para empacotar as referências em limites de processos. Se existir um problema de empacotamento de referências interface personalizada durante CreateObject ou New , obterá um erro 429. Um objecto dependente atrasado utiliza uma interface definida pelo sistema (IDispatch) que não requer um proxy personalizado para empacotar as referências. Tente utilizar um objecto dependente atrasado para ver se assim uma diferença.

    Se o problema ocorrer apenas quando o objecto está vinculado a inicial, o problema com a aplicação de servidor e normalmente pode ser corrigido reinstalando a aplicação (consulte posteriormente).
  • Se estiver a automatizar a partir de ASP ou um componente do MTS, utilize CreateObject em vez de Server.CreateObject() . Utilizar Server.CreateObject irá criar uma instância a aplicação do Office sob a identidade de um pacote MTS que costuma causar problemas com o Microsoft Office.

Verificar o servidor de automatização

As razões mais comuns para um erro com CreateObject ou New são problemas com a aplicação de servidor propriamente dito. Normalmente, estes problemas encontram-se com a configuração ou a configuração da aplicação. Seguem-se alguns itens para verificar:
  • Verifique a aplicação que pretende automatizar está instalada no computador local do Microsoft Office e certifique-se de que consegue iniciar a aplicação de iniciar e, em seguida, executar caixa de diálogo. Se o programa não pode ser iniciado manualmente, não irá funcionar através de automatização.
  • Registar a aplicação escrevendo o caminho para o servidor em Iniciar e, em seguida, executar caixa de diálogo e, em seguida, anexar / RegServer até ao fim da linha de. Prima ' OK ' . Silenciosamente este deve executar a aplicação e voltar a registar como um servidor COM. Se o problema estiver com uma chave de registo em falta, esta será normalmente corrigi-la.
  • Verifique a chave LocalServer32 sob o CLSID para a aplicação que pretende automatizar. Certifique-se que aponta para a localização correcta para a aplicação e assegurar que o nome do caminho seja num formato de caminho abreviados (DOS 8.3). Embora não seja um requisito que ser um servidor registado utilizando um nome de caminho abreviado, nomes de caminhos longos que incluem espaços incorporados têm sido conhecidos para causar problemas em alguns sistemas (consulte posteriormente).

    Para verificar se a chave de caminho armazenada para o servidor, inicie o Editor de registo do Windows escrevendo regedit em Iniciar e, em seguida, executar caixa de diálogo. Navegue para a chave HKEY_CLASSES_ROOT\CLSID. Esta chave poderá encontrar os CLSIDs para servidores de automatização registado no sistema. Utilizando os valores mais tarde, localize a chave que representa a aplicação do Office que pretende automatizar e verificar a respectiva chave LocalServer32 para o caminho.
       +========================+=========================================+
       | Office Server          | CLSID Key                               |
       +========================+=========================================+
       | Access.Application     | {73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}  |
       +------------------------+-----------------------------------------+
       | Excel.Application      | {00024500-0000-0000-C000-000000000046}  |
       +------------------------+-----------------------------------------+
       | FrontPage.Application  | {04DF1015-7007-11D1-83BC-006097ABE675}  |
       +------------------------+-----------------------------------------+
       | Outlook.Application    | {0006F03A-0000-0000-C000-000000000046}  |
       +------------------------+-----------------------------------------+
       | PowerPoint.Application | {91493441-5A91-11CF-8700-00AA0060263B}  |
       +------------------------+-----------------------------------------+
       | Word.Application       | {000209FF-0000-0000-C000-000000000046}  |
       +------------------------+-----------------------------------------+
    						
    é o caminho correspondem a localização real do ficheiro? Tenha em atenção que nomes de caminho abreviados podem dar a impressão que um caminho está correcto quando poderá não ser. Por exemplo, Microsoft Office e Microsoft Internet Explorer (se instalado no respectivas localizações predefinidas) terá um caminho curto semelhante a "C:\PROGRA~1\MICROS~X\" onde X é um número. Não é óbvia imediatamente de que está a observar do nome de caminho abreviados.

    Pode testar que o caminho está correcto, de facto, copiando o valor do registo e colá-lo para iniciar e, em seguida, executar caixa de diálogo (remover a / automatização mudar antes de executar a aplicação). A aplicação é iniciado quando seleccionar OK ? Em caso afirmativo, em seguida, o servidor está registado correctamente. Se não, deve substituir o valor da chave LocalServer32 com o caminho correcto (utilize um nome de caminho abreviado se possível).
  • Problemas conhecidos quando automatizar o Word ou Excel se o modelo normal.dot (Word) ou o ficheiro de recursos Excel.xlb (Excel) ficou danificado. Para testar se tem ocorrido danos, procure as unidades de disco rígidas locais para localizar todas as ocorrências do normal.dot ou *.xlb. (Tenha em atenção que, se estiver a executar o Windows 2000, Windows NT ou Windows 95/98 com perfis activados, poderá encontrar várias cópias destes ficheiros, uma para cada perfil de utilizador no sistema.) Temporariamente mudar o nome dos ficheiros normal.dot ou os ficheiros *.xlb e volte a executar o teste de automatização (Word e Excel vão criar estes ficheiros se não conseguir localizá-los). O código agora funciona? Se Sim, os ficheiros que cujo nome mudou devem ser eliminados uma vez que estão danificados. Caso contrário, deverá mudar o nome-los novamente para os nomes originais pelo quaisquer definições personalizadas guardadas nestes ficheiros não será perdidas.
  • Se estiver num Windows NT, Windows 2000, Windows XP ou sistema Windows Server 2003, execute a aplicação sob a conta de administrador. Servidores do Office requerem acesso de leitura/escrita no registo e unidade de disco e poderão não ser correctamente carregado se as definições de segurança actuais negar este privilégio.

A verificar o sistema

Configuração do sistema também pode causar problemas com a criação de fora de processo COM servidores. Seguem-se algumas coisas para verificar sistemas onde ocorre o erro:
  • O problema acontece com qualquer servidor fora de processo? Se tiver uma aplicação que utilize apenas um determinado servidor de COM (por exemplo, o Word), vai pretender testar um servidor out-of-process diferente para garantir que o problema não fica com camada COM próprio. Se nenhum servidor de COM out-of-process pode ser criado nesse sistema, ficheiros de uma reinstalação do sistema OLE (ver abaixo) ou uma reinstalação do sistema operativo será necessário resolver o problema.
  • Verifique os números de versão para os ficheiros de sistema OLE gerir automatização. Estes ficheiros são normalmente instalados como um conjunto e devem corresponder aos números de compilação. Um utilitário de configuração incorrectamente configurado pode por engano, instalar os ficheiros em separado, fazendo com que sejam tornam-se incompatíveis. Para evitar problemas com a automatização, deverá verificar os ficheiros certifique-se que os ficheiros correspondem às versões.

    Poderá encontrar os ficheiros de automatização no directório Windows\System ou Winnt\System32. Segue-se a lista de ficheiros a verificar:
       +---------------+-------------+----------------+
       | File Name     |  Version    | Date Modified  |
       +---------------+-------------+----------------+
       | Asycfilt.dll  |  2.40.4275  | March 08, 1999 |
       | Oleaut32.dll  |  2.40.4275  | March 08, 1999 |
       | Olepro32.dll  |  5.0.4275   | March 08, 1999 |
       | Stdole2.tlb   |  2.40.4275  | March 08, 1999 |
       +---------------+-------------+----------------+
    						
    verificar a versão do ficheiro clicando com o botão direito do rato no ficheiro no Explorador e seleccionando Propriedades no menu de contexto. Os valores mais importantes são os últimos quatro dígitos da versão do ficheiro (o número de compilação) e a data da última modificado. Pretende Certifique-se que estes valores são os mesmos para todos os ficheiros de automatização.

    Por favor note que as datas indicadas acima e números de versão por exemplo são apenas. Os valores podem diferir. O importante é que estes valores correspondem entre si, em vez desta tabela.

    Se os ficheiros não correspondem aos números de compilação ou datas modificadas, pode transferir um utilitário de extracção automática que actualizará os ficheiros de automatização. Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
    290887O VBRun60sp6.exe instala ficheiros de tempo de execução do Visual Basic 6.0 SP6
  • Windows NT 4.0 tem um problema conhecido com iniciar servidores de automatização que vivam numa pasta que contém um espaço incorporado no nome e/ou assemelha-se noutra pasta cujos primeiros 8 caracteres são idênticos. Por exemplo, um servidor que vivam na pasta Files\SomeFolder poderá falhar no início durante uma chamada para CreateObject se existir outra pasta no sistema denominado pasta Stuff\SomeFolder. Para mais informações, consulte o seguinte artigo da base de dados de conhecimento da:Para obter informações adicionais sobre este problema e passos para resolver o problema, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
    185126Erro: Server COM/OLE não consegue iniciar o Windows NT 4.0

Reinstalar o Microsoft Office

Se nenhum dos passos anteriores ajuda a resolver o problema, considere a desinstalar e reinstalar o Microsoft Office. A Microsoft recomenda que desinstale primeiro a versão existente e reinstale dos discos de instalação original.

Para obter uma lista completa dos produtos a ser removido, consulte os artigos da base de dados de conhecimento da seguintes:
219423OFF2000: Como remover completamente o Microsoft Office 2000
158658OFF97: Como remover completamente o Microsoft Office 97

Referências

Para obter informações adicionais sobre como resolver a mensagem de erro '429', clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
240377COMO: Garantir Jet 3.5 está instalado correctamente (parte I)
Para as informações mais recentes e código de exemplo relativamente à automatização do Microsoft Office, consulte o site de suporte online da Microsoft em:
http://support.microsoft.com/ofd

Propriedades

Artigo: 244264 - Última revisão: 11 de maio de 2007 - Revisão: 6.2
A informação contida neste artigo aplica-se a:
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Access 97 Standard Edition
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Office FrontPage 2003
  • Microsoft FrontPage 2002 Standard Edition
  • Microsoft FrontPage 2000 Standard Edition
  • Microsoft Office Outlook 2007
  • Microsoft Office Outlook 2003
  • Microsoft Outlook 2002 Standard Edition
  • Microsoft Outlook 2000
  • Microsoft Outlook 97 Standard Edition
  • Microsoft Outlook 98 Standard Edition
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Word 97 Standard Edition
Palavras-chave: 
kbmt kbautomation kbfaq kbinfo KB244264 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 244264

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com