Recebe o erro 429 em tempo de execução quando automatizar aplicações do Office

Traduções de Artigos Traduções de Artigos
Artigo: 828550 - Ver produtos para os quais este artigo se aplica.
Para obter um Microsoft Office XP, Office 2000 e Office 97 versão deste artigo, consulte 244264.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Quando utiliza o operador de Novo ou a função CreateObject no Visual Basic para criar uma instância de um Microsoft Office aplicação, poderá 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 componente Object Model (COM) não consegue criar o objecto de automatização pedido e o objecto de automatização dessa forma não disponível para o Visual Basic. Este erro não ocorre em todos os computadores.

Este artigo descreve como diagnosticar e resolver problemas comuns que poderão causar este erro.

Mais Informação

No Visual Basic, existem várias causas do erro 429. O erro ocorrer qualquer uma das seguintes condições for verdadeira:
  • Existe um erro na aplicação.
  • Existe um erro na configuração do sistema.
  • Existe um componente em falta.
  • Existe um componente está danificado.
Para identificar a causa do erro, Isole o problema. Se receber o erro 429 num computador cliente, utilize as seguintes informações para isolar e resolver o erro nas aplicações do Microsoft Office.

Nota Algumas das seguintes informações também poderão ser aplicáveis a que não sejam do Office COM servidores. No entanto, este artigo pressupõe que pretende automatizar o Office aplicações.

Examinar o código

Antes de resolver o erro, tente isolar uma única linha de código que poderá estar a causar o problema.

Se detectar que uma linha de código pode estar a causar o problema, efectue estes procedimentos:
  • Certifique-se que o código utiliza a criação do objecto explícito.

    Problemas são mais fáceis de identificar se eles são reduzidos de uma única acção. Por exemplo, procure a utilização de criação do objecto implícito como um dos seguintes procedimentos.

    código de exemplo 1
    Application.Documents.Add 'DON'T USE THIS!!
    exemplo de código 2
    Dim oWordApp As New Word.Application 'DON'T USE THIS!!
    '... some other code
    oWordApp.Documents.Add
    utilizam ambos estes exemplos de código de criação de objectos implícita. Microsoft Office Word 2003 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, poderá ser difícil localizar o problema. Poderá ser difícil verificar se o problema é causado quando o objecto de aplicação é criado ou quando o objecto de documento é criado.

    Em vez disso, pode efectuar chamadas explícitas para criar cada objecto separadamente, como se segue.
    Dim oWordApp As Word.Application
    Dim oDoc As Word.Document
    Set oWordApp = CreateObject("Word.Application")
    '... some other code
    Set oDoc = oWordApp.Documents.Add
    quando fizer chamadas explícitas para criar cada objecto separadamente, é mais fácil isolar o problema. Isto pode também tornar o código mais fácil de ler.
  • Utilize a função CreateObject em vez de utilizar o operador de Novo quando criar uma instância de uma aplicação do Office.

    A função CreateObject mapeia atentamente o processo de criação que utilizam a maior parte dos clientes do Microsoft Visual C++. A função CreateObject também permite alterações no CLSID do servidor entre versões. Pode utilizar CreateObject função com objectos dependentes antecipado e objectos dependentes do atraso.
  • Verifique se a cadeia "ProgID" que é transmitida para CreateObject está correcta e, em seguida, verifique se a cadeia "ID do programa" tem a versão independente. Por exemplo, utilize a cadeia "Excel.Application" em vez de utilizar a cadeia "Excel.Application.8". O sistema falha pode ter uma versão anterior do Microsoft Office ou uma versão mais recente do Microsoft Office que a versão especificada na cadeia de "ProgID".
  • Utilize o comando Erl para indicar o número da linha de código que não é bem sucedida de. Isto pode ajudar a depurar as aplicações que não podem executar no IDE do. O seguinte código indica que o objecto de automatização não pode ser criado (o Microsoft Word ou Microsoft Office Excel 2003):
    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 a função CxMsg e o número de linha para controlar o erro.
  • Utilizar o enlace tardio da seguinte forma: objectos dependentes do
    Dim oWordApp As Object
    cedo requerem as respectivas interfaces personalizados para empacotar as referências em limites de processos. Se não é possível empacotar referências interface personalizada durante CreateObject ou quando Novo , receberá o erro 429. Um objecto dependente atrasado utiliza IDispatch definidas pelo sistema interface que não requer um proxy personalizado para empacotar as referências. Utilize um objecto dependente atrasada para verificar se este procedimento funciona correctamente.

    Se o problema ocorre apenas quando o objecto está vinculado a inicial, o problema está na aplicação do servidor. Normalmente, pode reinstalar a aplicação, tal como descrito a secção "Examinar o servidor de automatização" deste artigo para corrigir o problema.

Examine o servidor de automatização

A razão mais comum para erro ocorra com CreateObject ou com o Novo é um problema com a aplicação de servidor. Normalmente, a configuração da aplicação ou a configuração da aplicação faz com que o problema. Para resolver, utilize seguintes procedimentos:
  • Verifique se a aplicação do Office que pretende automatizar está instalada no computador local. Certifique-se que pode executa a aplicação. Para tal, clique em Iniciar , clique em Executar e, em seguida, tente executar a aplicação. Se não conseguir executar a aplicação manualmente, a aplicação não funcionará através de automatização.
  • Volte a registar a aplicação da seguinte forma:
    1. Clique em Iniciar e, em seguida, clique em Executar .
    2. Na caixa de diálogo Executar , escreva o caminho do servidor e, em seguida, anexar / RegServer até ao fim da linha de.
    3. Clique em OK .

      A aplicação é executada em modo silencioso. A aplicação é re-registered como um servidor COM.
    Se o problema ocorrer porque falta uma chave de registo, estes passos normalmente corrigirem o problema.
  • Examine a chave LocalServer32 sob o CLSID para a aplicação que pretende automatizar. Certifique-se que a chave LocalServer32 aponta para a localização correcta para a aplicação. Certifique-se que o nome do caminho é um formato de caminho abreviados (DOS 8.3). Não é necessário registar um servidor utilizando um nome de caminho abreviados. No entanto, os nomes de caminho longo que incluem espaços incorporados podem causar problemas em alguns sistemas.

    Para examinar a chave de caminho que é armazenada para o servidor, inicie o Editor de registo do Windows, da seguinte forma:
    1. Clique em Iniciar e, em seguida, clique em Executar .
    2. Escreva regedit e, em seguida, clique em OK .
    3. Mover para a chave HKEY_CLASSES_ROOT\CLSID.

      Os CLSIDs para servidores de automatização registado no sistema estão sob esta chave.
    4. Utilize os seguintes valores da chave CLSID para localizar a chave que representa a aplicação do Office que pretende automatizar. Examine a chave LocalServer32 da chave CLSID para o caminho.
      Reduzir esta tabelaExpandir esta tabela
      o Office Server chave CLSID
      Access.Application{73A4C9C1-D68D-11 D 98BF-0-00A0C90DC8D9}
      Excel.Application{00024500-0000-0000-C000-000000000046}
      FrontPage.Application {04DF1015-7007-11 D 83BC-1-006097ABE675}
      Outlook.Application{0006F03A-0000-0000-C000-000000000046}
      PowerPoint.Application{91493441-5A91-11CF-8700-00AA0060263B}
      Word.Application{000209FF-0000-0000-C000-000000000046}
    5. Certifique-se que o caminho corresponde a localização real do ficheiro.
    Nota Nomes de caminho abreviados poderão parecer correctos quando não estão correctas. Por exemplo, Office e Microsoft Internet Explorer (se estiverem instalados no respectivas localizações predefinidas) tem um caminho curto semelhante à C:\PROGRA~1\MICROS~ X \ (em que X é um número). Este nome poderá não inicialmente parece ser um nome de caminho abreviados.

    Para determinar se o caminho está correcto, siga estes passos:
    1. Clique em Iniciar e, em seguida, clique em Executar .
    2. Copie o valor do registo e, em seguida, colar o valor na caixa de diálogo Executar .

      Nota Remover o / automatização mudar antes de executar a aplicação.
    3. Clique em OK .
    4. Verifique se a aplicação é executada correctamente.

      Se a aplicação for executada depois de clicar em OK , o servidor está correctamente registado. Se a aplicação não funcionar depois de clicar em OK , substitua o valor da chave LocalServer32 o caminho correcto. Utilize um nome de caminho abreviado se for possível.
  • Testar possíveis danos do modelo normal.dot ou o ficheiro de recursos Excel.xlb. Poderão ocorrer problemas quando automatizar o Microsoft Word ou Microsoft Excel se um do modelo normal.dot no Word ou o ficheiro de recurso Excel.xlb no Excel estiver danificado. Para testar estes ficheiros, procure os discos rígidos locais para todas as instâncias do normal.dot ou Excel.xlb.

    Nota Para sistemas que executem o Microsoft Windows 2000 ou sistemas que executam o Microsoft Windows XP, poderá encontrar várias cópias destes ficheiros. Existe uma cópia de cada um destes ficheiros para cada perfil de utilizador é instalado no sistema.

    Mudar o nome temporariamente ficheiros normal.dot ou a Excel.xlb ficheiros e, em seguida, volte a executar o teste de automatização. Word e Excel ambos criar estes ficheiros se não conseguir localizá-los. Verifique se o código funciona. Se o código funciona quando é criado um novo ficheiro Normal.dot, elimine os ficheiros cujo nome foi mudado. Estes ficheiros estão danificados. Se o código não resolver o problema, terá de mudar estes ficheiros para os nomes de ficheiro originais para guardar quaisquer definições personalizadas que são guardadas nestes ficheiros.
  • Se o sistema executar o Windows 2000, execute a aplicação sob a conta de administrador. Servidores do Office requerem acesso de leitura/escrita para o registo e para a unidade de disco. Servidores do Office poderão não ser carregada correctamente se as definições de segurança actuais negam acesso de leitura/escrita.

Examine o sistema

Configuração do sistema pode também causar problemas com a criação de servidores do COM fora de processo. Para resolver, utilize os seguintes procedimentos no sistema onde ocorre o erro:
  • Determine se o problema ocorre com qualquer servidor fora de processo. Se tiver uma aplicação que utiliza COM um determinado servidor (tal como o Word), testar um servidor out-of-process diferente para garantir que o problema não fica com a camada COM propriamente dito. Se não é possível criar um servidor do COM fora de processo no computador, reinstalar os ficheiros do sistema OLE como descrito na secção "Reinstalar o Microsoft Office" deste artigo ou reinstalar o sistema operativo para resolver o problema.
  • Examine os números de versão para os ficheiros de sistema OLE gerir automatização. Estes ficheiros estão geralmente instalados como um conjunto. Estes ficheiros devem corresponder a números de compilação. Um utilitário de configuração incorrectamente configurado por engano, pode instalar os ficheiros em separado. Isto faz com que os ficheiros a ser incompatíveis. Para evitar problemas com a automatização, examine os ficheiros para se certificar que correspondem as versões de ficheiros.

    Os ficheiros de automatização estão localizados no Windows\System32 ou directório no directório Winnt\System32. Examine os seguintes ficheiros.
    Reduzir esta tabelaExpandir esta tabela
    nome de ficheiro versão data de modificação
    Asycfilt.dll3.50.501404 De Setembro de 2002
    Oleaut32.dll3.50.501604 De Setembro de 2002
    Olepro32.dll5.0.501404 De Setembro de 2002
    Stdole2.tlb3.0.501404 De Setembro de 2002
    Para examinar a versão do ficheiro, clique com o botão direito do rato no ficheiro no Explorador do Windows e, em seguida, clique em Propriedades . Tenha em atenção os últimos quatro dígitos da versão do ficheiro (o número de compilação) e a data em que o ficheiro foi modificado pela última vez. Certifique-se que estes valores são os mesmos para todos os ficheiros de automatização.

    Nota Os números de versão anteriores e as datas anteriores são obtidas por um computador que utiliza um computador com o Windows Server 2003 com o Office 2003 instalado. Estes números e datas são utilizadas apenas como exemplos. Os valores podem ser diferentes.

    Se os ficheiros não correspondem os números de compilação ou as datas de modificação, transferi um utilitário de extracção automática que actualiza os ficheiros de automatização.

    Para obter mais informações sobre como aceder aos ficheiros de tempo de execução, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
    235420VBRun60sp4.exe instala ficheiros de tempo de execução do Visual Basic 6.0 SP4
  • Utilize o utilitário de configuração do sistema (Msconfig.exe) para examinar o arranque do sistema e serviços para aplicações de outros fabricantes que podem restringir o código em execução na aplicação do Office. Para obter mais informações sobre o Msconfig.exe, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
    310560Como resolver erros de configuração utilizando o utilitário de configuração do sistema no Windows XP
    Por exemplo, as aplicações de automatização do Outlook poderão falhar porque estão a ser executado um programa antivírus com as funcionalidades "bloqueador de janelas de script".

    Nota Apenas desactive o programa antivírus temporariamente num sistema de teste que não esteja ligado à rede.

    Em alternativa, siga estes passos no Outlook para desactivar suplementos de outros fabricantes:
    1. No menu Ferramentas , clique em Opções .
    2. No separador outro , clique em Opções avançadas .
    3. Na caixa de diálogo Opções avançadas , clique em Gestor de suplementos .
    4. Clique para desmarcar a caixa de verificação para quaisquer outros fabricantes.
    5. Reinicie o Outlook.
    Se este método resolve o problema, contacte o fornecedor antivírus de outros fabricantes para obter mais informações sobre uma actualização para o programa antivírus.

Reinstalar o Office

Se nenhum dos procedimentos anteriores resolver o problema, remova o Office e reinstale o Office. A Microsoft recomenda que remover primeiro a versão existente e, em seguida, reinstale o Office utilizando os discos de instalação original.

Para obter mais informações, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
219423Como remover o CD 1 do Office 2000
158658Como remover completamente o Microsoft Office 97

Referências

Para obter mais informações sobre como resolver a mensagem de erro '429', clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
240377Como garantir Jet 3.5 está correctamente instalado (parte I)
Para mais informações sobre o Office automatização e exemplos de código, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/ofd

Propriedades

Artigo: 828550 - Última revisão: 27 de março de 2007 - Revisão: 5.4
A informação contida neste artigo aplica-se a:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Office SharePoint Designer 2007
  • Microsoft Office FrontPage 2003
  • Microsoft Office Outlook 2007
  • Microsoft Office Outlook 2003
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Professional Edition
Palavras-chave: 
kbmt kbexpertisebeginner kbtshoot kbprogramming kberrmsg kbautomation kbinfo KB828550 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: 828550

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