Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
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.
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.
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.
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.
é 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.
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:
290887
(http://support.microsoft.com/kb/290887/
)
O 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:
185126
(http://support.microsoft.com/kb/185126/EN-US/
)
Erro: Server COM/OLE não consegue iniciar o Windows NT 4.0
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:
219423
(http://support.microsoft.com/kb/219423/EN-US/
)
OFF2000: Como remover completamente o Microsoft Office 2000
158658
(http://support.microsoft.com/kb/158658/EN-US/
)
OFF97: Como remover completamente o Microsoft Office 97
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:
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:
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
(http://support.microsoft.com/kb/244264/en-us/
)
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
O que podemos fazer para melhor estas informações?
Para proteger a sua privacidade, não inclua as informações de contacto nos comentários.
Obrigado! Os seus comentários serão utilizados para nos ajudar a melhorar o conteúdo do suporte. Para obter mais opções de assistência, visite a Home Page da Ajuda e Suporte.