INFORMACE: Odstraňování chyby 429 při automatizaci aplikací Office

Překlady článku Překlady článku
ID článku: 244264 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Použijete operátor New nebo funkci CreateObject v aplikaci Microsoft Visual Basic k vytvoření instance aplikace Microsoft Office, může se zobrazit následující chybová zpráva:
Run-time error '429': ActiveX component cannot create object (Chyba za běhu 429: Součást ActiveX nemůže vytvořit objekt)
K této chybě dochází při požadovaný objekt automatizace nemohl být vytvořen podle COM a není proto k dispozici jazyka. Chyba je obvykle vidět na určitých počítačů, ale jiné ne.

Tento článek obsahuje některé tipy poradce při potížích vám pomohou diagnostikovat a řešit běžné problémy jsou známé příčinou této chyby.

Další informace

Na rozdíl od některé chyby jazyka je žádné jednou z příčin chyby 429. Problém se stane z důvodu chyby v konfiguraci aplikace nebo systém nebo součásti chybí nebo je poškozen. Hledání přesný důvod je záležitosti z vyloučení možností. Pokud dojde k této chybě v klientském počítači jsou číslo věci, bude třeba zkontrolovat, izolovat a vyřešit chybu.

Položky později poskytnout některé praktické návrhy při odstraňování této chyby při práci s aplikacemi Office. Některé informace také může použít také servery Office COM, ale tento článek předpokládá se pokoušíte automatizovat Microsoft Office.

Kontrola kódu

První místo begin hledáte problém je v kódu. Odstraňování problémů s chyby, musíte vědět, kde dojde k chybě. Zkuste zúžit dolů na jediný řádek kódu.

Po nalezení kódu je chybné zkuste provést následující:
  • Zkontrolujte, zda kód používá explicitní objekt vytváření. Jakýkoli problém je snazší přímých a identifikovat Pokud problém zúženy na jedinou akci. Neprovádějte například následující:
    Application.Documents.Add 'DON'T USE THIS!!
    						
    Nebo:
    
    Dim oWordApp As New Word.Application 'DON'T USE THIS!!
    '... some other code
    oWordApp.Documents.Add
    						
    Obě tyto metody pomocí vytvoření implicitní objektu. Aplikace není spuštěna, dokud alespoň jednou volána proměnné. Protože proměnné může být volána v různých částech programu, to by ujistěte problém pevného lokalizovat. Také není zrušte, zda je problém s vytváření objektu Application nebo objektu Document.

    Místo toho provést explicitní volání vytvořit každý objekt samostatně:
    Dim oWordApp As Word.Application
    Dim oDoc As Word.Document
    Set oWordApp = CreateObject("Word.Application")
    '... some other code
    Set oDoc = oWordApp.Documents.Add
    						
    tato usnadňuje izolovat problém a provede kód čitelnější.
  • Při vytváření instance aplikace Microsoft Office, použijte namísto NovýCreateObject. CreateObject přesněji mapuje proces vytváření používá většina klientů Visual C++ a umožňuje možné změny CLSID serveru mezi verzemi. Lze s časnou vazbou a pozdní vazbou objekty CreateObject.
  • Ověřte správnost řetězce ProgID předán CreateObject a zda je verze nezávislého (tj použít "Excel.Application" místo "Excel.Application.8"). Mohl být systém je chybné má starší nebo novější verze aplikace Microsoft Office než verze zadaná v ProgID.
  • K pomoci při ladění aplikací, které nelze spustit v IDE pomocí příkazu Erl sestava řádku počet řádku nezdaří. Například následující kód zjistíte, které objekt automatizace nelze vytvořit (Word nebo 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
    						
    použít kombinaci oken zpráv a řádek čísla sledovat dolů došlo k chybě.
  • Zkuste pozdní vazba (tj Dim oWordApp As Object). Prvotní vázaných objektů vyžadují jejich vlastní rozhraní zařadit přes hranice procesu. Pokud je problém zařazování vlastní rozhraní během CreateObject nebo Nový, dostanete chybě 429. Pozdní vázaného objektu používá rozhraní definované systémem (IDispatch), který nevyžaduje vlastní proxy Chcete-li být zařazen. Zkuste pomocí pozdní vázaného objektu naleznete, pokud se tím rozdíl.

    Problém nastane, pouze pokud je objekt časnou vazbou, problém je aplikace serveru a lze obvykle opravit přeinstalací aplikace (viz dále).
  • Pokud jsou automatizace z ASP nebo součásti MTS, použijte namísto Server.CreateObject()CreateObject. Pomocí Server.CreateObject bude instanci aplikace Office s identitou balíčku MTS níž je známo, že problémy se sadou Microsoft Office.

Kontrola automatizační server

Nejčastější příčiny chyby s CreateObject nebo Nový jsou problémy s aplikací serveru samotném. Tyto problémy jsou obvykle s konfigurace nebo instalace aplikace. Zde jsou některé položky zkontrolovat:
  • Ověřte Microsoft Office v místním počítači je nainstalována aplikace, kterou chcete automatické a ujistěte se, že spuštění aplikace z Start a potom dialogového okna Spustit. Pokud program nelze spustit ručně, nebude fungovat prostřednictvím automatizace.
  • Znovu zaregistrujte aplikaci zadáním cesty k serveru v Start a potom dialogového okna Spustit a pak připojit / RegServer na konec řádku. Stisknutím tlačítka OK. Toto by bezobslužně spuštění aplikace a znovu zaregistrovat jako COM server. Pokud je problém s chybějící klíč registru, to bude ji opravit obvykle.
  • Zkontrolujte klíč LocalServer32 pod CLSID pro aplikace, kterou chcete automatické. Zkontrolujte, zda odkazuje na správné umístění aplikace a zkontrolujte, zda je název cesty ve formátu krátkého cestu (DOS 8.3). Zatímco není požadavku server být registrovány pomocí krátký název cesty, názvy dlouhé cesty s vloženými mezerami mít známo způsobit potíže v některých systémech (viz dále).

    Zkontrolovat klíč cesty uloženy na server, spusťte program Editor registru zadáním regedit v Start a potom dialogového okna Spustit. Přejděte na klíč HKEY_CLASSES_ROOT\Clsid Pod tímto klíčem zjistíte CLSID pro registrované automatizační servery v systému. Později pomocí hodnot najít klíč představuje aplikaci Office chcete automatické a zkontrolujte jeho klíč LocalServer32 pro cestu.
       +========================+=========================================+
       | 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}  |
       +------------------------+-----------------------------------------+
    						
    Cestu odpovídat skutečné umístění souboru? Uvědomte si, že cesta krátké názvy lze umožňují dojmu, že je cesta správná při nemusí být. Microsoft Office a Internet Explorer (Pokud je nainstalován v jejich výchozí umístění) bude mít například krátké cestu podobné "C:\PROGRA~1\MICROS~X\" kde X je nějaké číslo. Není okamžitě zřejmé, že prohlížíte z krátký název cesty.

    Můžete vyzkoušet, cesta je ve skutečnosti správné zkopírováním hodnoty z registru a vkládání do Start a potom dialogového okna spustit (odebrat / Automation přepnout před spuštěním aplikace). Aplikace spustit po vyberte OK? Pokud ano, pak server je správně zaregistrována. Pokud ne, měli byste hodnotu klíč LocalServer32 nahradit správnou cestu (použijte krátký název cesty Pokud je to možné).
  • Problémy, mají bylo známo dojít, pokud šablona Normal.dot (Word) nebo soubor prostředku Excel.xlb (Excel) má poškozená automatizace Word nebo Excel. Testovat Pokud došlo poškození, hledání na místních pevných discích najít všechny výskyty Normal.dot nebo *.xlb. (Nezapomeňte, že pokud používáte systém Windows 2000, Windows NT nebo Windows 95/98 s povolenými profily, můžete najít více kopií těchto souborů, jeden pro každý profil uživatele v systému.) Dočasně přejmenujte soubory Normal.dot nebo soubory *.xlb a znovu spusťte test automatizace (Word a Excel bude vytvoření těchto souborů Pokud jejich nemůže najít jejich). Kód nyní pracuje? Pokud ano, pak jste přejmenovali soubory mají být odstraněny protože jsou poškozena. Pokud tomu tak není, měli byste přejmenovat je zpět na původní názvy tak vlastní nastavení uložené v těchto souborech nebude ztracena.
  • Pokud jsou na WINDOWSNT, Windows 2000, Windows XP nebo systému Windows Server 2003, spusťte aplikaci pod účtem správce. Servery Office vyžadují přístup pro čtení i zápis do registru a diskovou jednotku a nemusí správně načíst Pokud aktuální nastavení zabezpečení tohoto oprávnění Odepřít.

Kontrola systému

Konfigurace systému může také způsobit problémy s vytvoření serverů COM out-of-process. Následují některé věci zkontrolovat systémy kde dojde k chybě:
  • Problém stane s libovolný server out-of-process? Pokud máte aplikaci, která právě používá určitý server COM (například Word), budete chtít testovat jiný server out-of-process, zda není problém s vrstvou COM samotného. Pokud v daném systému mohou být vytvořeny žádné serveru COM out-of-process, přeinstalaci OLE systému souborů (viz níže) nebo bude nutné tento problém vyřešit přeinstalaci operačního systému.
  • Zkontrolujte čísla verzí u systémových souborů OLE, které spravovat automatizace. Tyto soubory se obvykle instalují jako sada a by měl odpovídat čísla sestavení. Nesprávně nakonfigurovaný instalační nástroj může omylem soubory nainstalovat samostatně, příčinou je stanou neodpovídající. Chcete-li se vyhnout potížím s automatizace, měli byste zkontrolovat souborů Zkontrolujte, zda soubory odpovídají sestavení.

    Soubory automatizace vyhledá v adresáři Windows\System nebo Winnt\System32. Následuje seznam souborů zkontrolujte:
       +---------------+-------------+----------------+
       | 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 |
       +---------------+-------------+----------------+
    						
    zkontrolovat verzi souboru pravým tlačítkem myši na soubor v Průzkumníku a výběrem vlastnosti z místní nabídka. Nejdůležitější hodnoty jsou poslední čtyři číslice verze souboru (číslo sestavení) a datum poslední změny. Chcete zkontrolujte tyto hodnoty jsou stejné pro všechny soubory automatizace.

    Všimněte si, že čísla verze a data zadána výše jsou například pouze účely. Vaše hodnoty mohou lišit. Věc důležité je, že tyto hodnoty odpovídají navzájem a nikoli v této tabulce.

    Pokud čísla sestavení nebo upravená data neodpovídají soubory, můžete stáhnout samorozbalovací nástroj, který aktualizuje soubory automatizace. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
    290887VBRun60sp6.exe nainstaluje soubory run-time jazyka 6.0 SP6
  • Windows NT 4.0 má známé potíže s počáteční live ve složce, která obsahuje vložené místo v názvu nebo jiné složky, jejichž nejprve 8 znaků jsou identické se podobá automatizační servery. Například server žijících v Files\SomeFolder C:\Program dojít k selhání spustit během volání CreateObject, pokud je v systému s názvem C:\Program Stuff\SomeFolder jiné složky. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:Další informace o tomto problému a kroky řešení, klepněte na článek číslo článku databáze Microsoft Knowledge Base:
    185126Chyba: Server COM a OLE selhání spuštění v systému Windows NT 4.0

Znovu nainstalovat

Pokud žádný z předchozích kroků vám pomůže problém vyřešit, zvažte odinstalování a znovu nainstalovat. Společnost Microsoft doporučuje nejprve odinstalovat stávající verzi a znovu nainstalovat z původního instalačního disku.

Úplný seznam položek odebíraného naleznete v následujících článcích znalostní báze Knowledge Base:
219423OFF2000: Jak úplně odebrat sadu Microsoft Office 2000
158658OFF97: Jak úplně odebrat sadu Microsoft Office 97

Odkazy

Další informace o řešení potíží '429' chybová zpráva klepněte na článek číslo článku databáze Microsoft Knowledge Base:
240377Postupy: Zajištění správně nainstalovanou Jet 3.5 (část I)
Nejnovější informace a ukázkový kód týkající se automatizace Microsoft Office naleznete na serveru Microsoft Online podporu na adrese:
http://support.microsoft.com/ofd

Vlastnosti

ID článku: 244264 - Poslední aktualizace: 11. května 2007 - Revize: 6.2
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbmt kbautomation kbfaq kbinfo KB244264 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:244264

Dejte nám zpětnou vazbu

 

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