For Microsoft Office XP, Office 2000 og Office 97-versjon av denne artikkelen, kan du se .

Sammendrag

Når du bruker Ny operatoren eller funksjonen CreateObject i Visual Basic til å opprette en forekomst av en Microsoft Office-program, kan du få følgende feilmelding:

Kjøretidsfeil '429': ActiveX-komponent kan ikke opprette objekt

Denne feilen oppstår når Component Object Model (COM) kan ikke opprette det forespurte automatiseringsobjektet og automatiseringsobjektet er derfor utilgjengelig for Visual Basic. Denne feilen oppstår ikke på alle datamaskiner.

Denne artikkelen beskriver hvordan du diagnostiserer og løser vanlige problemer som kan forårsake denne feilen.

Hvis du vil ha mer informasjon

Det er flere årsaker til feil 429 i Visual Basic. Det skjer en av følgende betingelser er oppfylt:

  • Det er en feil i programmet.

  • Det er en feil i systemkonfigurasjonen.

  • Det er en manglende komponent.

  • Det finnes en skadet komponent.

For å finne årsaken til feilen, kan du isolere problemet. Hvis du får feil 429 på en klientdatamaskin, kan du bruke følgende informasjon til å isolere og løse feil i Microsoft Office-programmer.

Obs! Noen av følgende informasjon kan også gjelde for ikke - Office-COM-servere. Denne artikkelen forutsetter imidlertid at du ønsker å automatisere Office-programmer.

Undersøke koden

Før du feilsøker feilen, kan du forsøke å isolere en enkelt linje med kode som kan forårsake problemet.

Hvis du oppdager at en enkelt linje med kode som forårsaker problemet, følger du disse fremgangsmåtene:

  • Kontroller at koden bruker eksplisitt objektoppretting.


    Problemer er enklere å finne ut om de er smalere for en enkelt handling. Se for eksempel etter bruk av implisitte objektoppretting som ett av følgende.

    Kodeeksemplet 1

    Application.Documents.Add 'DON'T USE THIS!!

    Kodeeksemplet 2

    Dim oWordApp As New Word.Application 'DON'T USE THIS!!
    '... some other code
    oWordApp.Documents.Add

    Begge disse kodeeksemplene bruker implisitt objektoppretting. Microsoft Office Word 2003 starter ikke før variabelen, kalles minst én gang. Fordi variabelen kan kalles i ulike deler av programmet, kan det være vanskelig å finne problemet. Det kan være vanskelig å kontrollere om problemet er forårsaket når Application -objektet opprettes, eller når Document -objektet opprettes.

    I stedet kan du gjøre eksplisitt kall til å opprette hvert objekt separat, som følger.

    Dim oWordApp As Word.Application
    Dim oDoc As Word.Document
    Set oWordApp = CreateObject("Word.Application")
    '... some other code
    Set oDoc = oWordApp.Documents.Add

    Når du foretar eksplisitt kall til å opprette hvert objekt separat, er det enklere å isolere problemet. Dette gjør også koden lettere å lese.

  • Bruke CreateObject -funksjonen i stedet for å bruke operatoren Ny når du oppretter en forekomst av et Office-program.

    CreateObject -funksjonen kart nært opprettingen som de fleste Microsoft Visual C++-klienter bruker. CreateObject -funksjonen tillater også endringer i CLSID for serveren mellom versjoner. Du kan bruke funksjonen CreateObjectmed tidlig binding-objekter og sene objekter.

  • Kontroller at "ProgID"-strengen som ble sendt til
    CreateObject er riktig, og deretter kontrollerer du at strengen "ProgID" versjonen er uavhengige. Hvis du for eksempel bruke strengen "Excel.Application" i stedet for strengen "Excel.Application.8". System som ikke kan ha en eldre versjon av Microsoft Office eller en nyere versjon av Microsoft Office enn versjonen som er angitt i strengen "ProgID".

  • Bruk Erl -kommandoen til å rapportere nummeret på linjen for koden som ikke lykkes. Dette kan hjelpe deg med å feilsøke programmer som kan kjøres i IDE. Følgende kode viser som
    Automation -objekt kan ikke opprettes (Microsoft Word eller 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

    Bruk Meldingsboks -funksjonen og linjenummeret til å spore feilen.

  • Bruke sen binding som følger:

    Dim oWordApp As Object

    Tidlig binding-objekter krever sine egendefinerte grensesnitt formidles over prosessgrenser. Hvis egendefinert grensesnitt ikke kan formidles under
    CreateObject-metoden , eller du får feil 429 under Ny. En sent bundet objekt bruker IDispatch systemdefinerte-grensesnittet som ikke krever en egendefinert proxy formidles. Bruk en sent bundet objekt til å kontrollere om denne prosedyren fungerer på riktig måte.

    Hvis problemet bare oppstår når objektet er tidlig binding, ligger problemet i serverprogrammet. Vanligvis kan du installere programmet som er beskrevet i delen "Undersøke automatiseringsserver" i denne artikkelen for å løse problemet.

Undersøke automation-serveren

De vanligste årsaken til en feil oppstår med CreateObject eller Ny er et problem med serverprogrammet. Konfigurasjonen for programmet eller installasjonen av programmet er vanligvis årsaken til problemet. Bruk følgende fremgangsmåter for feilsøking:

  • Kontroller at Office-programmet du vil automatisere er installert på den lokale datamaskinen. Kontroller at du kan kjøre programmet. Hvis du vil gjøre dette, klikker du Start, klikker du
    Kjør, og prøv deretter å kjøre programmet. Hvis du ikke kan kjøre programmet manuelt, vil ikke programmet fungere gjennom automatisering.

  • Registrer programmet som følger:

    1. Klikk Start, og klikk deretter
      Kjør.

    2. I dialogboksen Kjør skriver du inn banen til serveren, og deretter legge til/regserver til slutten av linjen.

    3. Klikk OK.

      Programmet kjører stille. Programmet er registrert på nytt som en COM-server.

    Hvis problemet oppstår fordi en registernøkkel mangler, løse disse trinnene vanligvis problemet.

  • Undersøk LocalServer32-nøkkel under CLSID for programmet du vil automatisere. Kontroller at LocalServer32-nøkkelen peker til den riktige plasseringen for programmet. Kontroller at banenavnet er i et kort banen (DOS 8.3)-format. Du trenger ikke registrere en server ved hjelp av et kort banenavn. Lange banenavn som inneholder innebygde mellomrom kan imidlertid forårsake problemer på enkelte systemer.

    Hvis du vil kontrollere banen nøkkelen som er lagret for serveren, starter du Registerredigering, som følger:

    1. Klikk Start, og klikk deretter
      Kjør.

    2. Skriv inn regedit, og klikk deretter
      OK.

    3. Gå til nøkkelen HKEY_CLASSES_ROOT\CLSID.

      CLSIDene for registrerte automatiseringsservere på systemet er under denne nøkkelen.

    4. Bruk følgende verdier av CLSID-nøkkelen til å finne nøkkelen som representerer det Office-programmet du vil automatisere. Undersøk LocalServer32-nøkkelen i CLSID-nøkkelen for banen.

      Office-Server

      CLSID-nøkkelen

      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. Kontroller at banen samsvarer med den faktiske plasseringen av filen.

    Obs! Kort banenavn kan virke riktig når de ikke er riktige. For eksempel både Office og Microsoft Internet Explorer (Hvis de er installert på standardplasseringene) har en kort bane som ligner på C:\PROGRA~1\MICROS~X\ (der
    X er et tall). Dette navnet vises kanskje ikke i utgangspunktet skal være et kort banenavn.

    For å fastslå om banen er riktig, gjør du følgende:

    1. Klikk Start, og klikk deretter
      Kjør.

    2. Kopiere verdien fra registret, og deretter limer du inn verdien i dialogboksen Kjør .

      Obs! Fjerne bryteren /automation før du kjører programmet.

    3. Klikk OK.

    4. Kontroller at programmet kjører på riktig måte.

      Hvis programmet kjører når du klikker OK, er det riktig registrert. Hvis programmet ikke kjøres når du klikker
      OK, erstatte verdien for LocalServer32-nøkkelen med den riktige banen. Om mulig, bruker du et kort banenavn.

  • Testen for mulig skade av malen Normal.dot eller ressursfilen Excel.xlb. Det kan oppstå problemer når du automatiserer Microsoft Word eller Microsoft Excel hvis enten malen Normal.dot i Word eller filen Excel.xlb ressurs i Microsoft Excel er skadet. For å teste disse filene, kan du søke på lokale harddisker for alle forekomster av Normal.dot eller Excel.xlb.

    Obs! Systemer som kjører Microsoft Windows 2000 eller systemer som kjører Microsoft Windows XP, kan du finne flere kopier av disse filene. Det finnes én kopi av hver av disse filene for hver brukerprofil som er installert på systemet.

    Midlertidig gi nytt navn til Normal.dot-filer eller Excel.xlb-filene, og kjør deretter automation-test. Word og Excel oppretter begge disse filene hvis de ikke finner. Kontroller at koden fungerer. Hvis koden kan brukes når det opprettes en ny Normal.dot-fil, kan du slette filene du gav nytt navn. Disse filene er skadet. Hvis koden ikke fungerer, må du gi nytt navn filene tilbake til sine opprinnelige filnavn for å lagre alle egendefinerte innstillinger som er lagret i disse filene.

  • Hvis datamaskinen kjører Windows 2000, Kjør applikasjonen under Administrator-kontoen. Office-servere krever lese/skrive-tilgang til registret og stasjonen. Office-servere kan ikke lastes inn på riktig måte hvis de gjeldende sikkerhetsinnstillingene nekte lese/skrive-tilgang.

Undersøk systemet

Systemkonfigurasjon kan også forårsake problemer med opprettingen av-prosesseksterne COM-servere. Hvis du vil feilsøke, bruker du fremgangsmåtene nedenfor på systemet der feilen oppstår:

  • Fastslå om problemet oppstår med en out-of-process-server. Hvis du har et program som bruker en bestemt COM-server (for eksempel Word), kan du teste en annen out-of-process-server for å være sikker på at problemet ikke er med COM-laget seg selv. Hvis du ikke kan opprette en-prosesseksterne COM-server på datamaskinen, Installer OLE-systemfiler som er beskrevet i avsnittet "Installere Microsoft Office" i denne artikkelen eller installere operativsystemet for å løse problemet.

  • Undersøke versjonsnumrene for OLE-systemfiler som administrerer automatisering. Disse filene installeres vanligvis som et sett. Disse filene må samsvare med build-numrene. Et feil konfigurert installasjonsprogrammet kan ved et uhell installere filene hver for seg. Dette gjør at filer som ikke samsvarer. For å unngå problemer med automatisering, kan du undersøke filer for å forsikre deg om at filer-versjoner er tilordnet.

    Automation-filene er plassert i mappen Windows\System32, eller i mappen Winnt\System32. Undersøk følgende filer.

    Filnavn

    Versjon

    Endringsdato

    Asycfilt.dll

    3.50.5014

    04. september 2002

    Oleaut32.dll

    3.50.5016

    04. september 2002

    Olepro32.dll

    5.0.5014

    04. september 2002

    Stdole2.tlb

    3.0.5014

    04. september 2002

    Hvis du vil sjekke hvilken versjon, høyreklikker du filen i Windows Utforsker, og klikk deretter Egenskaper. Legg merke til de fire siste sifrene i versjonen (build-nummer) og datoen da filen sist ble endret. Kontroller at disse verdiene er de samme for alle automatisering-filer.

    Obs! De tidligere versjonsnumrene og datoene som tidligere er hentet fra en datamaskin som bruker en Windows Server 2003-datamaskin med Office 2003 er installert. Disse tall og datoer er bare brukt som eksempler. Verdiene kan være forskjellige.

    Hvis filene ikke tilsvarer build-numrene eller de endrede datoene, kan du laste ned et selvutpakkende verktøy som oppdaterer filene automatisering.

    Hvis du vil ha mer informasjon om hvordan du får tilgang til kjøretidsfiler, kan du klikke følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:

    Vbrun60sp4.exe installerer kjøretidsfiler for Visual Basic 6.0 SP4
     

  • Bruk verktøyet Systemkonfigurasjon (Msconfig.exe) til å undersøke oppstart av tjenester og system for tredjeparts programmer som kan begrense kjører kode i Office-programmet. For mer informasjon om Msconfig.exe, klikker du følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:

    310560 hvordan du kan feilsøke konfigurasjonsfeil ved hjelp av Systemkonfigurasjon-verktøyet i Windows XP
     For eksempel kan Outlook automatisering programmer mislykkes fordi du kjører et antivirusprogram som har "skriptet blokkering" funksjoner.

    Obs! Bare deaktivere antivirusprogrammet midlertidig på en testsystem som ikke er koblet til nettverket.

    Du kan eventuelt følgende fremgangsmåte i Outlook for å deaktivere tredjeparts COM-tillegg:

    1. Klikk AlternativerVerktøy -menyen.

    2. Klikk Avanserte alternativeri kategorien annet .

    3. I dialogboksen Avanserte alternativer klikker du Add-In Manager.

    4. Klikk for å fjerne merket for eventuelle tredjeparts-tillegget.

    5. Start Outlook på nytt.

    Hvis denne metoden løser problemet, kan du kontakte fra tredjepart leverandøren av antivirusprogrammet for mer informasjon om en oppdatering for antivirusprogrammet.

Installere Office på nytt

Hvis ingen av fremgangsmåtene ovenfor løser problemet, må du fjerne Office og deretter installere Office. Microsoft anbefaler at du først fjerne den eksisterende versjonen, og deretter installere Office på nytt ved hjelp av de originale installasjonsdiskettene.

Hvis du vil ha mer informasjon, kan du klikke følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:

hvordan du fjerner Microsoft Office 97 fullstendig
 

Referanser

Hvis du vil ha mer informasjon om hvordan du feilsøker feilmeldingen '429', kan du klikke følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:

hvordan du sikrer Jet 3.5 er riktig installert (del I)

Hvis du vil ha mer informasjon om Office-automatisering og kodeeksempler, kan du gå til følgende Microsoft-webområde:

Trenger du mer hjelp?

Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Microsoft Insiders

Var denne informasjonen nyttig?

Hvor fornøyd er du med språkkvaliteten?
Hva påvirket opplevelsen din?

Takk for tilbakemeldingen!

×