INFO: Riešenie problémov chyba 429, keď automatizácia aplikácie balíka Office

Preklady článku Preklady článku
ID článku: 244264 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

SUHRN

Keď použijete Nové operátora alebo CreateObject Funkcia v programe Microsoft Visual Basic vytvoriť inštanciu programu balíka Microsoft Office, môžete dostať chybové hlásenie:
Chyba spustenia "429": súčasť ActiveX nemôžete vytvoriť objekt
Táto chyba sa vyskytuje, keď požadovaný automatizácie objekt nebolo možné vytvoriť prostredníctvom COM, a preto nie je k dispozícii program Visual Basic. Chyba je zvyčajne vidieť na niektorých počítačoch, ale iné nie.

Tento článok obsahuje niekoľko riešení problémov tipov, ktoré pomáhajú diagnostikovať a riešiť bežné problémy, ktoré sú známe spôsobiť túto chybu.

DALSIE INFORMACIE

Na rozdiel od niektoré chyby v jazyku Visual Basic, neexistuje žiadna jedna príčina chyby 429. Problém sa deje z dôvodu chyby v konfigurácii aplikácia alebo systém alebo komponent chýba alebo je poškodený. Nájsť presnú príčinu je záležitosťou eliminovať možnosti. Ak narazíte na túto chybu na klientskom počítači, existuje niekoľko vecí, budete musieť skontrolovať, izolovať a vyriešiť chybu.

Položky neskôr vám niektoré praktické návrhy na riešenie problémov táto chyba, keď pracujete s aplikáciami balíka Office. Niektoré z týchto informácií môžu tiež požiadať o Office COM servery rovnako, ale tento článok predpokladá sa pokúšate automatizovať balíka Microsoft Office.

Kontrolný kód

Na prvom mieste začať hľadať na problém je v kóde. Predtým, než môžete riešiť chyby, potrebujete vedieť, kde sa chyba vyskytuje. Skúste to úzky nadol k jediný riadok kódu.

Keď nájdete kód, ktorý zlyháva, skúste vykonať nasledovné kroky:
  • Uistite sa, že kód použije vytváranie explicitné objektu. Akýkoľvek problém je ľahšie mieste a zistiť, či problém je zúžil na jedinej akcii. Napríklad, nie je to takto:
    Application.Documents.Add 'DON'T USE THIS!!
    						
    alebo:
    
    Dim oWordApp As New Word.Application 'DON'T USE THIS!!
    '... some other code
    oWordApp.Documents.Add
    						
    Obe tieto metódy použiť vytváranie implicitné objektu. Program Microsoft Word nie je spustená, kým premennej nazýva aspoň raz. Pretože premenná mohlo by sa nazýva v rôznych častiach programu, to by mohol urobiť problém ťažko lokalizovať. Tiež je zrejmé, či problém je s vytváraním žiadosti alebo objekt dokumentu.

    Namiesto toho vola explicitné vytvoriť každý objekt samostatne:
    Dim oWordApp As Word.Application
    Dim oDoc As Word.Document
    Set oWordApp = CreateObject("Word.Application")
    '... some other code
    Set oDoc = oWordApp.Documents.Add
    						
    To uľahčuje izolovanie problému a robí kód zrozumiteľnejšie.
  • Pri vytváraní inštancie aplikácie balíka Microsoft Office, použite CreateObject namiesto Nové. CreateObject užšie mapy na proces vytvárania používajú klienti väčšina Visual C++ a umožňuje možné zmeny v CLSID servera medzi verziách. CreateObject môžete používať s včasnej väzby a neskoré viazané objekty.
  • Overiť, že ProgID reťazec odovzdaný CreateObject je správne a že je verzia nezávislé (t. j. použite "Excel.Application" skôr ako "Excel.Application.8"). Je možné, že staršie alebo novšie verzie balíka Microsoft Office než verzia zadané v ProgID systému, ktoré sa nedarí.
  • Na pomoc pri ladení aplikácie, ktoré sa nedá spustiť v IDE, použite Erl príkaz hlásiť číslo riadka, ktorý zlyhá. Napríklad nasledujúci kód vám povedia ktorý automatizácie objekt sa nedá vytvoriť (Word alebo 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žite kombináciu hlásení a čísla riadkov na sledovanie chýb.
  • Skúste použiť neskoro záväzné (t. j. Dim oWordApp ako objekt). Skoré viazané objekty vyžadujú svojich vlastných rozhraní marshaled hranice procesu. Ak sa problém zaraďovania vlastné rozhranie počas CreateObject alebo Nové, dostanete chyba 429. Neskoré objekt s naviazanou používa rozhranie definovaný systémom (IDispatch) ktorá nevyžaduje vlastné proxy, aby sa marshaled. Skúste použiť neskoro objekt s naviazanou vidieť, ak to robí rozdiel.

    Ak sa problém vyskytuje len vtedy, keď objekt je včasnej väzby, problém je s aplikáciu servera, a môžete zvyčajne opravená opakovanou inštaláciou aplikácie (pozri neskôr).
  • Ak chcete z ASP alebo zložka MTS, použite CreateObject namiesto Server.CreateObject(). Pomocou Server.CreateObject bude vytvoriť inštanciu aplikácia balíka Office pod totožnosť MTS balík, ktorý je známe, že spôsobujú problémy s Microsoft Office.

Kontrola automatizačný Server

Najčastejších dôvodov pre chybu s CreateObject alebo Nové sú problémy s aplikáciu servera, sama. Zvyčajne sú tieto problémy s konfiguráciou alebo nastavenie aplikácie. Tu sú niektoré položky skontrolovať:
  • Overte Microsoft Office chcete Automate aplikácia nainštalovaná na lokálnom počítači a uistite sa, že môžete spustiť aplikáciu od začiatku a potom spustiť dialógové okno. Ak program nemožno spustiť manuálne, to nebude fungovať prostredníctvom automatizácie.
  • Zaregistrovať žiadosť zadaním cestu do servera na Štart a potom spustiť dialógové okno a potom pripojiť / RegServer na koniec riadka. Klávesová skratka ok. Toto by tiše spustenie aplikácie a zaregistrovať ako COM server. Ak sa problém s chýba kľúč databázy registry, je to zvyčajne opraviť.
  • Skontrolujte LocalServer32 kľúča pod identifikátor CLSID pre aplikáciu chcete Automate. Skontrolujte, či ukazuje na správne miesto pre uplatňovanie a skontrolujte, či je názov cesty vo formáte krátkeho cestu (DOS 8.3). Hoci to nie je požiadavka, že server byť registrovaný názov krátke cesty, názvy dlhých ciest, ktoré zahŕňajú vložený priestory boli známe spôsobiť problémy na niektorých systémoch (pozri neskôr).

    Chcete skontrolovať cestu kľúč uložený na serveri, spustiť Windows Registry Editor zadaním regedit Štart a potom spustiť dialógové okno. Prejdite na kľúč HKEY_CLASSES_ROOT CLSID. V tomto kľúči nájdete identifikátory CLSID pre registrovaných automatizačné servery v systéme. Pomocou hodnôt neskôr, nájsť kľúč, ktorý predstavuje aplikácia balíka Office chcete Automate a skontrolujte jej LocalServer32 kľúč pre 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}  |
       +------------------------+-----------------------------------------+
    						
    Nezhoduje cestu skutočné umiestnenie súboru? Uvedomte si, že krátke cesty názvy môže dať dojem, že cesta je správne, keď to nemusí byť. Napríklad, Microsoft Office a program Microsoft Internet Explorer (ak je inštalované v ich predvolené umiestnenia) bude mať krátke cesty podobné "C:\PROGRA~1\MICROS~X\" kde x je nejaké číslo. Nie je okamžite jasné, sa pozrieme na z názov krátke cesty.

    Otestovať, že cesta je skutočne správne skopírovaním hodnoty z databázy registry a prilepením do začiatku a potom spustiť dialógové okno (odstrániť / Automatizácia Prepnite pred spustením aplikácie). Uplatňovanie začať keď vyberiete ok? Ak áno, potom server je správne zaregistrovaný. Ak nie, mali by ste nahradiť hodnotu LocalServer32 key s správnu cestu (použitie názvu krátke cesty, ak je to možné).
  • Problémy byť známe vyskytnúť pri automatizácia Word alebo Excel, ak šablónu Normal.dot (Word) alebo súbor prostriedkov Excel.xlb (Excel) boli poškodené. Pre test, či došlo k korupcie, vyhľadávanie miestnych pevné disky nájsť všetky výskyty Normal.dot alebo *.xlb. (Upozorňujeme, že ak používate systém Windows 2000, Windows NT alebo Windows 95/98 so zapnutými profilmi, môže nájsť viacero kópií týchto súborov, jeden pre každý profil používateľa v systéme.) Dočasne Normal.dot súbory alebo *.xlb súbory premenovať a znova vášho automatizácie testu (Word a Excel vytvorí tieto súbory ak nemôžu nájsť ich). Kód teraz funguje? Ak áno, potom by sa mali vypustiť súbory ste premenovali pretože sú skorumpovanej. Ak nie, ste ho mali premenovať ich späť k svojmu pôvodnému názvu tak všetky vlastné nastavenia uložené v týchto súboroch nebude stratená.
  • Ak ste na Windows NT, Windows 2000, Windows XP alebo Windows Server 2003 systém, spustiť žiadosti podľa konto správcu. Office servers vyžadovať čítať a zapisovať prístup do databázy registry a diskovej jednotky, ktoré nemusia správne načítať ak aktuálne nastavenia zabezpečenia poprieť toto oprávnenie.

Kontrola systému

Konfigurácia systému môže tiež spôsobiť problémy s vytvorením out procesu COM servery. Sú niektoré veci skontrolovať na systémoch, kde sa chyba vyskytuje:
  • Nestane sa problém s ktorýkoľvek z procesu server? Ak máte aplikáciu, ktorá práve používa najmä COM server (napríklad Word), budete chcieť vyskúšať rôzne out proces server skontrolujte, či problém nie je s COM vrstva, sama. Ak žiadny z procesu COM server môžu byť vytvorené v tomto systéme, potom preinštalovaní systému OLE súbory (pozri nižšie) alebo preinštalovaní operačného systému sa bude vyžadovať, aby problém.
  • Skontrolujte čísla verzií OLE systémové súbory, ktoré spravujú automatizácie. Tieto súbory sa obyčajne inštalujú ako množinu a by sa mal zhodovať stavať čísla. Nesprávne nakonfigurované nastavenia pomôcka omylom nainštalovať súbory samostatne, spôsobuje im, aby stať nespárované. Aby sa predišlo problémom s automatizácie, mali by ste skontrolovať súbory na skontrolujte, či súbory zápas stavia.

    Automatizácia súbory nájdete v adresári Windows\System alebo Winnt\System32. Nasleduje zoznam súborov na kontrolu:
       +---------------+-------------+----------------+
       | 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 |
       +---------------+-------------+----------------+
    						
    Skontrolujte verziu súboru kliknutím pravým tlačidlom myši na súbor v Explorer a výber vlastnosti z popup menu. Najdôležitejšie hodnoty sú posledné štyri číslice verziu súboru (číslo stavať) a dátum poslednej zmeny. Chceš sa uistite sa, že tieto hodnoty sú rovnaké pre všetky súbory automatizácie.

    Upozorňujeme, že verzia čísla a dátumy uvedené vyššie sú napríklad len účely. Vaše hodnoty sa môžu líšiť. Dôležité je, že tieto hodnoty zhodujú navzájom, skôr ako táto tabuľka.

    Ak súbory nezhodujú stavať čísla alebo modifikované dátumy, si môžete stiahnuť samorozbaľovací utilitu, ktorá bude aktualizovať súbory automatizácie. Ďalšie informácie získate po kliknutí na nasledujúce číslo článku databázy Microsoft Knowledge Base:
    290887VBRun60sp6.exe nainštaluje Visual Basic 6.0 SP6 run-time súbory
  • Windows NT 4.0 bol známy problém s počiatočnou automatizačné servery, ktoré žijú v priečinku, ktorý obsahuje vložený priestor v názve a/alebo podobá iný priečinok, ktorého prvý 8 znakov sú identické. Napríklad server žijúci v C:\Program Files\SomeFolder môžu zlyhať začať počas hovoru CreateObject, ak existuje iný priečinok na systém nazývaný C:\Program Stuff\SomeFolder. Ďalšie informácie nájdete v časti nasledovného článku databázy Knowledge Base:Ďalšie informácie o tomto probléme a kroky na riešenie, kliknutím na nasledujúce číslo článku databázy Microsoft Knowledge Base:
    185126 Chyba: COM alebo OLE Server nepodarí spustiť v systéme Windows NT 4.0

Preinštalovanie balíka Microsoft Office

Ak žiadny z predchádzajúcich krokov pomôže vyriešiť tento problém, zvážte odinštalovanie a preinštalovanie balíka Microsoft Office. Spoločnosť Microsoft odporúča odinštalujte existujúcu verziu prvý a potom preinštalujte z pôvodných inštalačných diskiet.

Úplný zoznam položiek, ktoré sa odstránia, nájdete v nasledujúcich článkoch databázy Knowledge Base:
219423 OFF2000: Ako úplne odstrániť balík Microsoft Office 2000
158658 OFF97: Ako úplne odstrániť balíka Microsoft Office 97

ODKAZY

Ďalšie informácie o riešení problémov s "429" chybové hlásenie, kliknite na nasledujúce číslo článku databázy Microsoft Knowledge Base:
240377 HOWTO: Poistiť, Jet 3.5 je nainštalovaný správne (časť I)
Najnovšie informácie a vzorového kódu týkajúce sa Microsoft Office automatizácie, nájdete na lokalite Microsoft Online podpora na:
http://support.Microsoft.com/ofd
Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.

Vlastnosti

ID článku: 244264 - Posledná kontrola: 23. októbra 2011 - Revízia: 2.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • 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 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 Excel 2002 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • 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 Standard Edition
  • 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 Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Word 97 Standard Edition
Kľúčové slová: 
kbautomation kbinfo kbmt KB244264 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:244264

Odošlite odozvu

 

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