Runtime-fout 429 wordt weergegeven wanneer u Office-toepassingen automatiseert

Zie 244264 voor een Microsoft Office XP, Office 2000 en Office 97-versie van dit artikel.

Samenvatting

Wanneer u de operator New of de functie CreateObject in Microsoft Visual Basic voor het maken van een exemplaar van een Microsoft Office-toepassing, wordt het volgende foutbericht weergegeven:
Runtime-fout '429': ActiveX-onderdeel kan geen object maken
Deze fout treedt op wanneer het opgevraagde automatiseringsobject niet kan door het Component Object Model (COM maken) en kan daarom het automatiseringsobject niet beschikbaar in Visual Basic. Deze fout treedt niet op alle computers.

Dit artikel wordt beschreven hoe u kunt opsporen en oplossen van algemene problemen die kunnen deze fout veroorzaken.

Meer informatie

Er zijn verschillende oorzaken van fout 429 in Visual Basic. De fout treedt op een van de volgende voorwaarden wordt voldaan:
  • Er is een fout in de toepassing.
  • Er is een fout in de configuratie van het systeem.
  • Er is een onderdeel ontbreekt.
  • Er is een beschadigd onderdeel.
Als u wilt zoeken naar de oorzaak van de fout, het probleem te isoleren. Als 429 op een clientcomputer foutbericht, gebruikt u de volgende gegevens opsporen en oplossen van de fout in Microsoft Office-toepassingen.

Opmerking Sommige van de volgende informatie kan ook van toepassing op niet - Office COM-servers. Echter, in dit artikel wordt ervan uitgegaan dat u wilt automatiseren van Office-toepassingen.

De code controleren

Voordat u de fout wilt oplossen, probeer het isoleren van een enkele regel code die het probleem veroorzaakt.

Als u ontdekt dat het probleem worden veroorzaakt door een enkele regel code, kunt u deze procedures uitvoeren:
  • Zorg ervoor dat de code wordt gebruikt voor object expliciet maken.


    Problemen zijn gemakkelijker te bepalen wanneer ze worden teruggebracht tot één actie. Bijvoorbeeld het gebruik van maken als een van de volgende impliciete object zoekt.

    Voorbeeld 1
    Application.Documents.Add 'DON'T USE THIS!!
    Voorbeeld 2
    Dim oWordApp As New Word.Application 'DON'T USE THIS!!'... some other code
    oWordApp.Documents.Add
    Beide van de volgende codevoorbeelden gebruiken impliciete objecten maken. Microsoft Office Word 2003 wordt niet gestart nadat de variabele ten minste één keer is aangeroepen. Omdat de variabele kan worden opgeroepen in verschillende delen van het programma, wordt het probleem mogelijk moeilijk te vinden. Kan het moeilijk zijn om te controleren of het probleem wordt veroorzaakt wanneer het Application -object wordt gemaakt of wanneer het Document -object is gemaakt.

    In plaats daarvan kunt u expliciete aanroepen voor het maken van elk object afzonderlijk, als volgt.
    Dim oWordApp As Word.ApplicationDim oDoc As Word.Document
    Set oWordApp = CreateObject("Word.Application")
    '... some other code
    Set oDoc = oWordApp.Documents.Add
    Wanneer u expliciete aanroepen om elk object afzonderlijk te maken, is het probleem gemakkelijker te isoleren. Het is mogelijk ook dat de code eenvoudiger te lezen.

  • Gebruik de functie CreateObject in plaats van de operator New gebruiken bij het maken van een exemplaar van een Office-toepassing.

    De functie CreateObject wijst nauwkeurig het maakproces die de meeste clients van Microsoft Visual C++. De functie CreateObject kunt ook wijzigingen in de CLSID van de server tussen versies. U kunt de functie CreateObjectmet vroeg gebonden objecten en objecten gekoppeld.
  • Controleer de tekenreeks 'ProgID' dat wordt doorgegeven aan
    CreateObject , juist is en controleer vervolgens of de tekenreeks "ProgID" onafhankelijke versie. Gebruik bijvoorbeeld de tekenreeks 'Excel.Application' in plaats van met de tekenreeks 'Excel.Application.8'. Het systeem dat niet mogelijk een oudere versie van Microsoft Office of een nieuwere versie van Microsoft Office dan de versie die u hebt opgegeven in de tekenreeks 'ProgID'.
  • Gebruik de opdracht Erl te rapporteren, het nummer van de regel code die niet is gelukt. Hiermee kunt u fouten opsporen in toepassingen die niet kunnen worden uitgevoerd in de IDE. De volgende code kunt u zien welke
    Automation -object kan niet worden gemaakt (Microsoft Word of 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
    Gebruik de functie MsgBox en het nummer van de fout te volgen.
  • Laat binden als volgt gebruiken:
    Dim oWordApp As Object
    Vroeg gebonden objecten moeten de aangepaste interfaces grenzen van processen heen worden geleid. Als de aangepaste interface niet kan worden ' gemarshalled ' tijdens
    CreateObject of tijdens het nieuwefoutbericht 429. Een gekoppeld object wordt gebruikt voor het systeem gedefinieerde interface IDispatch waarvoor een aangepaste proxy moeten worden verzonden. Een gekoppeld object gebruiken om te controleren of deze procedure correct werkt.

    Als het probleem alleen optreedt wanneer het object ' early-bound, is het probleem in de servertoepassing. Meestal kunt u de toepassing installeren zoals wordt beschreven in de sectie 'De automatiseringsserver controleren' van dit artikel het probleem te verhelpen.

De automatiseringsserver controleren

De meest voorkomende oorzaak voor een fout met CreateObject of New is een probleem met de servertoepassing. Normaal gesproken veroorzaakt de configuratie van de toepassing of de instellingen van de toepassing het probleem. Om op te lossen, gebruikt u procedures te volgen:
  • Controleer of de Office-toepassing die u wilt automatiseren op de lokale computer is geïnstalleerd. Zorg ervoor dat de toepassing kan worden uitgevoerd. Hiertoe klikt u op Start, klikt u op
    Uitvoeren, en probeer de toepassing uit te voeren. Als u de toepassing handmatig uitvoeren kunt, wordt de toepassing niet werken via automatisering.
  • Registreer de toepassing opnieuw als volgt:
    1. Klik op Starten klik vervolgens op
      Uitvoeren.
    2. Typ het pad naar de server in het dialoogvenster uitvoeren en vervolgens/regserver toevoegen aan het einde van de regel.
    3. Klik op OK.

      De toepassing wordt zonder bericht uitgevoerd. De toepassing wordt opnieuw geregistreerd als een COM-server.
    Als het probleem doet zich voor omdat een registersleutel ontbreekt, oplossen volgt meestal het probleem.
  • Controleer de sleutel LocalServer32 onder de CLSID voor de toepassing die u wilt automatiseren. Zorg ervoor dat de sleutel LocalServer32 naar de juiste locatie voor de toepassing verwijst. Zorg ervoor dat de padnaam in een indeling voor korte padnamen (DOS 8.3 is). U hoeft niet te registreren van een server met behulp van een korte padnaam. Lange padnamen met ingesloten spaties kunnen echter problemen veroorzaken op sommige systemen.

    Onderzoeken de padsleutel die is opgeslagen voor de server, start u Windows register-Editor als volgt:
    1. Klik op Starten klik vervolgens op
      Uitvoeren.
    2. Typ regediten klik vervolgens op
      OK.
    3. Verplaatsen naar de sleutel HKEY_CLASSES_ROOT\CLSID.

      De CLSID voor de geregistreerde automatiseringsservers in het systeem zijn onder deze sleutel.
    4. De volgende waarden voor de CLSID-sleutel gebruiken om de sleutel die staat voor de Office-toepassing die u wilt automatiseren. Controleer de sleutel LocalServer32 van de CLSID-sleutel voor het pad.
      Office ServerCLSID-sleutel
      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}
    5. Zorg ervoor dat het pad overeenkomt met de werkelijke locatie van het bestand.
    Opmerking Korte padnamen lijkt juist wanneer ze niet juist zijn. Bijvoorbeeld zowel Office als Microsoft Internet Explorer (als deze zijn geïnstalleerd op de standaardlocatie) hebben een korte padnaam die vergelijkbaar is met C:\PROGRA~1\MICROS~X\ (waar
    X is een getal). Deze naam kan in eerste instantie niet een korte padnaam.

    Om te bepalen of het pad correct is, de volgende stappen uit:
    1. Klik op Starten klik vervolgens op
      Uitvoeren.
    2. De waarde uit het register te kopiëren en plak vervolgens de waarde in het dialoogvenster uitvoeren .

      Opmerking Verwijder de schakeloptie/Automation voordat u de toepassing uitvoert.
    3. Klik op OK.
    4. Controleer of de toepassing goed werkt.

      Als de toepassing wordt uitgevoerd nadat u op OKklikt, wordt de server correct geregistreerd. Als de toepassing niet wordt uitgevoerd nadat u op
      OK, de waarde van de sleutel LocalServer32 vervangen door het juiste pad. Een korte padnaam gebruiken als u kunt.
  • Testen van de sjabloon Normal.dot of het bronbestand Excel.xlb is mogelijk beschadigd. Er kunnen problemen optreden wanneer u Microsoft Word of Microsoft Excel automatiseren als u de sjabloon Normal.dot in Word of het bronbestand Excel.xlb in Excel beschadigd is. U kunt deze bestanden testen, zoeken de lokale vaste schijven voor alle exemplaren van Normal.dot of Excel.xlb.

    Opmerking Voor systemen met Microsoft Windows 2000 of voor systemen met Microsoft Windows XP, kunt u meerdere exemplaren van deze bestanden vindt. Er is één exemplaar van elk van deze bestanden voor elke gebruiker die op het systeem is geïnstalleerd.

    De Normal.dot-bestanden of bestanden Excel.xlb tijdelijk te wijzigen en voer de test van automatisering. Word en Excel maken beide van deze bestanden als u niet kunt vinden. Controleer of de code werkt. Als de code werkt als een nieuw bestand Normal.dot wordt gemaakt, verwijder de bestanden waarvan u de naam hebt gewijzigd. Deze bestanden zijn beschadigd. Als de code niet werkt, moet u de naam van deze bestanden terug naar de oorspronkelijke bestandsnamen op te slaan van alle aangepaste instellingen in deze bestanden worden opgeslagen.
  • Als uw systeem wordt uitgevoerd van Windows 2000, voert u de toepassing onder de Administrator-account. Office-servers vereisen lees-en schrijfrechten aan het register en het schijfstation. Office-servers mogelijk niet juist geladen als de huidige beveiligingsinstellingen lezen/schrijven-toegang weigeren.

Het systeem controleren

Systeemconfiguratie kan ook problemen met het maken van out-of-process COM-servers. Gebruik de volgende procedures om op te lossen, op het systeem waar de fout optreedt:
  • Bepaal of het probleem met een out-of-process-server optreedt. Als u een toepassing die gebruikmaakt van een specifieke COM-server (bijvoorbeeld Word), test u een andere out-of-process-server om ervoor te zorgen dat het probleem met de COM-laag zelf is. Als u een out-of-process COM-server op de computer maken kan, de OLE-systeembestanden zoals beschreven in de sectie 'Microsoft Office opnieuw installeren' van dit artikel of opnieuw te installeren het besturingssysteem om het probleem te verhelpen.
  • Controleer de versienummers van de OLE-systeembestanden die de automatisering beheren. Deze bestanden worden doorgaans als set geïnstalleerd. Deze bestanden moeten overeenkomen met de buildnummers. Een onjuist geconfigureerde installatieprogramma kan de bestanden per ongeluk afzonderlijk installeren. Hierdoor worden de bestanden niet overeenkomen. Om problemen te voorkomen met automatisering, onderzoeken van de bestanden om ervoor te zorgen dat de versies van bestanden worden vergeleken.

    De automatiseringsbestanden bevinden zich in de map Windows\System32 of in de map Winnt\System32. Controleer de volgende bestanden.
    BestandsnaamVersieDatum gewijzigd
    Asycfilt.dll3.50.501404 september 2002
    Oleaut32.dll3.50.501604 september 2002
    Olepro32.dll5.0.501404 september 2002
    Stdole2.tlb3.0.501404 september 2002
    Versie van het bestand controleren, met de rechtermuisknop op het bestand in Windows Verkenner en klik vervolgens op Eigenschappen. U ziet de laatste vier cijfers van de bestandsversie (het buildnummer) en de datum waarop het bestand het laatst is gewijzigd. Zorg ervoor dat deze waarden voor alle automatiseringsbestanden hetzelfde zijn.

    Opmerking De eerdere versienummers en de eerdere einddatums worden opgehaald uit een computer met Windows Server 2003-computer met Office 2003 is geïnstalleerd. Deze getallen en datums worden alleen als voorbeeld gebruikt. De waarden afwijken.

    Als de bestanden niet overeenkomen met de buildnummers of de gewijzigde datums, download een zelfextraherend hulpprogramma waarmee de automatiseringsbestanden bijgewerkt.

    Voor meer informatie over hoe u de runtime bestanden, klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base:

    235420 Vbrun60sp4.exe installeert Visual Basic 6.0 SP4 runtime bestanden

  • Gebruik het hulpprogramma voor systeemconfiguratie (Msconfig.exe) te onderzoeken, het starten van services en het systeem-toepassingen van derden die het uitvoeren van programmacode in de Office-toepassing kunnen beperken. Voor meer informatie over Msconfig.exe, klikt u op het volgende artikel in de Microsoft Knowledge Base:

    310560 het oplossen van fouten in de configuratie met behulp van het hulpprogramma voor systeemconfiguratie in Windows XP

    Toepassingen van Outlook Automatisering zijn mislukken omdat u een antivirusprogramma dat "script blocker" functies worden uitgevoerd.

    Opmerking Alleen het antivirusprogramma tijdelijk op een testsysteem dat niet is verbonden met het netwerk uitschakelen.

    U kunt ook als volgt te werk in Outlook uit te schakelen invoegtoepassingen van derden:
    1. Klik op Opties in het menu Extra .
    2. Klik op het tabblad Overige op Geavanceerde opties.
    3. Klik op Beheer van invoegtoepassingenin het dialoogvenster Geavanceerde opties .
    4. Schakel het selectievakje van een invoegtoepassing van derden.
    5. Start Outlook opnieuw.
    Als deze methode wordt het probleem opgelost, neem dan contact op met de antivirus leverancier voor meer informatie over een update van het antivirusprogramma.

Office opnieuw installeren

Als geen van de bovenstaande procedures het probleem is opgelost, Office verwijderen en vervolgens Office opnieuw te installeren. U wordt aangeraden eerst de bestaande versie verwijderen en vervolgens Office opnieuw installeren met behulp van de originele installatiemedia.

Voor meer informatie klikt u op de volgende artikelnummers om de artikelen in de Microsoft Knowledge Base te bekijken:

219423 hoe u de Office 2000 CD1 hebt verwijderd

158658 hoe u Microsoft Office 97 volledig verwijderen

Referenties

Voor meer informatie over het oplossen van het foutbericht '429' klikt u op het volgende artikel in de Microsoft Knowledge Base:

240377 het waarborgen van Jet 3.5 is correct geïnstalleerd (deel I)

Ga naar de volgende Microsoft-website voor meer informatie over Office automation en codevoorbeelden:
Eigenschappen

Artikel-id: 828550 - Laatst bijgewerkt: 14 feb. 2017 - Revisie: 1

Microsoft Office Excel 2007, Microsoft Office SharePoint Designer 2007, Microsoft Office Outlook 2007, Microsoft Office Outlook 2003, Microsoft Office PowerPoint 2007, Microsoft Office PowerPoint 2003, Microsoft Office Word 2007, Microsoft Office Access 2007, Microsoft Office Access 2003, Microsoft Visual Basic 5.0 Enterprise Edition, Microsoft Visual Basic 6.0 Professional Edition, Microsoft Visual Basic 5.0 Professional Edition

Feedback