INFORMACJE: Rozwiązywanie problemów błąd 429 podczas automatyzowania aplikacji pakietu Office

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 244264 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Streszczenie

Kiedy używać Nowy operator lub Metoda CreateObject Funkcja programu Microsoft Visual Basic do utworzenia wystąpienia aplikacji pakietu Microsoft Office, może otrzymać następujący komunikat o błędzie:
Błąd wykonania "429": składnik ActiveX nie może utworzyć obiektu
Ten błąd występuje, gdy żądany obiekt automatyzacji nie można utworzyć przez model COM i dlatego jest niedostępna dla języka Visual Basic. Błąd zazwyczaj występuje na niektórych komputerach, a innych nie.

Ten artykuł zawiera kilka porad dotyczących rozwiązywania problemów ułatwiają diagnozowanie i rozwiązywanie typowych problemów, które nie są przyczyną tego błędu.

Więcej informacji

W odróżnieniu od niektórych błędów w języku Visual Basic jest nie jednego Przyczyna błędu 429. Ten problem zdarza się z powodu błędu w konfiguracji aplikacji lub systemu lub składnik brakujące lub uszkodzone. Znajdowanie dokładną przyczynę jest wyeliminowanie możliwości. Jeśli wystąpi ten błąd na komputerze klienckim, istnieje kilka rzeczy, które należy sprawdzić, aby zidentyfikować i rozwiązać problem.

Elementy nadać później praktycznej sugestie dotyczące rozwiązywania tego problemu podczas pracy z aplikacjami pakietu Office. Niektóre z tych informacji można również stosować do również serwery COM pakietu Office, ale w tym artykule założono, że chcesz automatyzacji pakietu Microsoft Office.

Sprawdzanie kodu

Pierwsze miejsce, aby rozpocząć wyszukiwanie problemu jest kod. Błąd można rozwiązać, należy wiedzieć, gdzie występuje błąd. Spróbuj zawęzić do jednej linii kodu.

Znaleźć kod, który nie działa prawidłowo, spróbuj wykonać następujące czynności:
  • Upewnij się, że w kodzie wykorzystano Tworzenie jawnych obiektów. Każdy problem łatwiej jest dodatkowy i ustalić, czy problem jest zawężony do jednej akcji. Na przykład nie wykonaj następujące czynności:
    Application.Documents.Add 'DON'T USE THIS!!
    						
    lub:
    
    Dim oWordApp As New Word.Application 'DON'T USE THIS!!
    '... some other code
    oWordApp.Documents.Add
    						
    Użyć obu tych metod tworzenia obiektu niejawne. Program Microsoft Word nie jest uruchomiona, dopóki zmiennej nazywa się przynajmniej raz. Ponieważ zmienna może nazywa się w innej części programu, to może utrudnić problem localize. Ponadto nie jest jasne, czy problem dotyczy tworzenia obiektu aplikacji lub obiektu dokumentu.

    Zamiast tego wywołań jawne każdego obiektu są tworzone oddzielnie:
    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łatwia wyizolować problem i czytelność kodu.
  • Podczas tworzenia wystąpienia aplikacji pakietu Microsoft Office, użyj Metoda CreateObject zamiast Nowy. Metoda CreateObject lepiej jest mapowany na proces tworzenia używana przez większość klientów Visual C++ i umożliwia możliwych zmian w CLSID serwera między wersjami. Metoda CreateObject mogą być używane z obiektami związany z wczesnym a późnym wiązaniem.
  • Sprawdź, czy ciąg ProgID przekazany do Metoda CreateObject Popraw i że jest wersja niezależne (oznacza to, że należy użyć "Excel.Application" zamiast "Excel.Application.8"). Możliwe, że system nie działa prawidłowo ma starszej lub nowszej wersji pakietu Microsoft Office od wersji określony identyfikator ProgID.
  • Użyj pomocnych przy debugowaniu aplikacji, które nie mogą być uruchamiane w IDE, Erl polecenie Raport numer wiersza, który kończy się niepowodzeniem. Na przykład poniższy kod informacje (Word lub Excel) nie można utworzyć obiektu automatyzacji, który:
    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
    						
    Śledzenie błędu za pomocą kombinacji pól komunikatu i numery wierszy.
  • Spróbuj użyć późnego wiązania (oznacza to, że obiekt jako Dim oWordApp). Wczesne obiekty związane wymagają ich niestandardowe interfejsy organizowane przez granice procesu. Jeśli problem kierowanie interfejs niestandardowy podczas Metoda CreateObject lub Nowy, otrzymasz błąd 429. Późne obiektu związanego używa interfejsu przez system (IDispatch) które nie wymagają proxy niestandardowy do można zorganizować. Spróbuj użyć późnego obiektu związanego wyświetlić Jeśli sprawia różnicę.

    Problem występuje tylko wtedy, gdy obiekt jest związany z wczesnego, problem z aplikacji serwera i zazwyczaj mogą być skorygowane przez ponowne zainstalowanie aplikacji (patrz: dalej).
  • Jeśli zautomatyzowano pracę z ASP lub składnik MTS, Metoda CreateObject zamiast Server.CreateObject(). Za pomocą Metody Server.CreateObject będzie utworzyć wystąpienia aplikacji pakietu Office z tożsamością pakietu MTS, który jest przyczyną problemów z pakietem Microsoft Office.

Sprawdzanie serwera automatyzacji

Najbardziej typowe przyczyny błędu Metoda CreateObject lub Nowy są problemy z samej aplikacji serwera. Zazwyczaj te problemy są z konfiguracji lub instalacja aplikacji. Oto niektóre elementy do sprawdzenia:
  • Sprawdź pakietu Microsoft Office, aplikacji, którą chcesz Automatyzacja jest zainstalowana na komputerze lokalnym, a następnie upewnij się, że można uruchomić aplikację od początku, a następnie uruchomić okno dialogowe. Jeśli program nie można uruchomić ręcznie, nie będzie działać przy użyciu automatyzacji.
  • Wpisując ścieżkę do serwera w rozpoczęciu ponownie zarejestrować aplikacji i Uruchom okno dialogowe, a następnie dołącz / RegServer do końca wiersza. Naciśnij klawisz OK. Powinno to dyskretnie Uruchom aplikację i zarejestruj go ponownie jako serwer COM. Jeśli problem dotyczy Brak klucza rejestru, to będzie zazwyczaj rozwiązać.
  • Sprawdź, czy klucz LocalServer32 w obszarze identyfikator CLSID dla aplikacji, którą chcesz Automatyzacja. Upewnij się, że wskazuje na prawidłową lokalizację aplikacji i upewnij się, że nazwa ścieżki jest w formacie krótkim ścieżka (DOS 8.3). Chociaż nie jest to wymagane, że serwer zarejestrowany przy użyciu krótkiej nazwy ścieżki, długie nazwy zawierające spacje osadzone mają wiadomo, że powodują problemy w niektórych systemach (patrz: dalej).

    Aby sprawdzić klucz ścieżka przechowywana na serwerze, uruchom Edytor rejestru systemu Windows, wpisując regedit w Start, a następnie uruchom okno dialogowe. Przejdź do klucza HKEY_CLASSES_ROOT\Clsid. Pod tym kluczem znajdziesz identyfikatorów CLSID serwery automatyzacji zarejestrowanych w systemie. Za pomocą wartości później, Znajdź klucz, który reprezentuje aplikację pakietu Office chce Automatyzacja i sprawdź jej klucz LocalServer32 ścieżki.
       +========================+=========================================+
       | 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}  |
       +------------------------+-----------------------------------------+
    						
    Ścieżka jest zgodna faktyczną lokalizację pliku? Należy pamiętać, że krótkie może sprawiać wrażenie ścieżka jest poprawna, gdy nie mogą być. Na przykład pakietu Microsoft Office i Microsoft Internet Explorer (Jeśli zainstalowano w ich lokalizacji domyślnej) ma krótki ścieżka podobna do "C:\PROGRA~1\MICROS~X\" gdzie x jest numerem niektóre. Nie jest natychmiast oczywiste, że użytkownik przegląda z krótkiej nazwy ścieżki.

    Można sprawdzić, czy ścieżka jest w rzeczywistości poprawny, kopiując wartość z rejestru i wkleić je do rozpoczęcia i Uruchom okno dialogowe (Usuń / Automatyzacji Przełącz przed uruchomieniem aplikacji). Aplikacja rozpoczyna po zaznaczeniu OK? Jeśli tak, serwer jest zarejestrowany poprawnie. Jeśli nie, należy zastąpić wartość klucza LocalServer32 z poprawną ścieżkę (należy użyć krótkiej nazwy ścieżki, jeśli to możliwe).
  • Być znane problemy występują podczas automatyzowania programu Word lub Excel, jeśli szablon Normal.dot (Word) lub pliku zasobów Excel.xlb (Excel) została uszkodzona. Aby sprawdzić, czy wystąpił uszkodzenie, wyszukiwanie lokalne dyski twarde, aby znaleźć wszystkie wystąpienia pliku Normal.dot lub *.xlb. (Uwaga Jeśli używasz systemu Windows 2000, Windows NT lub Windows 95/98 z włączonymi profilami mogą znaleźć wiele kopii tych plików, jeden dla każdego profilu użytkownika w systemie.) Tymczasowo Zmień nazwę pliku Normal.dot pliki lub pliki *.xlb i ponownie uruchom test automatyzacji (programy Word i Excel utworzy te pliki, jeśli ich nie można ich znaleźć). Kod jest obecnie działa? Jeśli tak, pliki, których nazwy zostały zmienione powinny usunięte, ponieważ są one uszkodzone. Jeśli nie, należy zmienić je do ich oryginalnych nazw tak, aby ustawienia niestandardowe, zapisane w tych plikach nie zostaną utracone.
  • Jeśli używany jest system Windows NT, Windows 2000, Windows XP lub systemu Windows Server 2003, należy uruchomić aplikację przy użyciu konta administratora. Serwerów pakietu Office wymagają dostępu do odczytu i zapisu do rejestru i dysku i nie może poprawnie załadować, jeśli to uprawnienie Odmów bieżące ustawienia zabezpieczeń.

Sprawdzanie systemu

Konfiguracja systemu może powodować również problemy z tworzeniem serwerów COM poza procesem. Poniżej przedstawiono niektóre czynności do wykonania w systemach którym występuje błąd:
  • Problem jest wykonywana z dowolnym serwerem out of process? Jeśli aplikacja używająca tylko określonego serwera COM (na przykład Word), należy przetestować inny serwer out of process upewnij się, że problem nie dotyczy warstwy modelu COM, sam. Jeśli żaden serwer COM out of process można utworzyć w tym systemie, ponownej instalacji systemu OLE pliki (patrz poniżej) lub ponownej instalacji systemu operacyjnego będzie wymagane do rozwiązania problemu.
  • Sprawdź, czy numery wersji plików systemowych OLE, które zarządzają automatyzacji. Pliki te są zazwyczaj instalowane jako zestaw i powinna odpowiadać numerów kompilacji. Narzędzie konfiguracji nieprawidłowo skonfigurowane przez pomyłkę zainstalować pliki oddzielnie, powodujących ich stają się niezgodne. Aby uniknąć problemów z automatyzacji, należy sprawdzić pliki upewnij się, że pasują kompilacje.

    Pliki automatyzacji znajdzie się w katalogu Windows\System lub Winnt\System32. Poniżej przedstawiono listę plików do sprawdzenia:
       +---------------+-------------+----------------+
       | 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 |
       +---------------+-------------+----------------+
    						
    Sprawdź wersję pliku przez kliknięcie prawym przyciskiem myszy plik w Eksploratorze i Wybieranie właściwości z menu podręcznego. Najważniejsze wartości są ostatnie cztery cyfry (numer kompilacji) wersja pliku i Data ostatniej modyfikacji. Należy upewnić się, że wartości te są takie same dla wszystkich plików automatyzacji.

    Należy zauważyć, że numery wersji i datami podanymi powyżej na przykład są wyłącznie do celów. Wartości mogą się różnić. Ważne jest, że te wartości odpowiadają sobie wzajemnie, zamiast tej tabeli.

    Jeśli pliki nie są zgodne, kompilacja liczby lub daty modyfikacji, można pobrać samowyodrębniające się narzędzie, które zostaną zaktualizowane pliki automatyzacji. Aby uzyskać dodatkowe informacje kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
    290887Program VBRun60sp6.exe instaluje pliki czasu wykonania Visual Basic 6.0 z dodatkiem SP6
  • System Windows NT 4.0 jest to znany problem z uruchomieniem serwery automatyzacji, które mieszkają w folderze, który zawiera osadzony spacji w nazwie i/lub podobny do innego folderu, w których pierwsze 8 znaków są identyczne. Na przykład serwer mieszkających w katalogu C:\Program Files\SomeFolder może nie uruchomić podczas wywoływania CreateObject, jeśli inny folder na komputerze o nazwie C:\Program Stuff\SomeFolder. Aby uzyskać więcej informacji zobacz następujący artykuł bazy wiedzy Knowledge Base:Aby uzyskać dodatkowe informacje dotyczące tego problemu i kroki w celu rozwiązania, kliknij numer artykułu poniżej w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
    185126 Błąd: Serwer COM i OLE nie można uruchomić w systemie Windows NT 4.0

Ponowne zainstalowanie pakietu Microsoft Office

Jeśli żaden z powyższych kroków pozwala rozwiązać ten problem, należy rozważyć Odinstalowywanie i ponowne instalowanie pakietu Microsoft Office. Firma Microsoft zaleca, aby najpierw odinstalować istniejącą wersję, a następnie zainstalować ponownie z oryginalnych dysków instalacyjnych.

Aby uzyskać pełną listę elementów do usunięcia zobacz następujące artykuły z bazy wiedzy Knowledge Base:
219423 OFF2000: Jak całkowicie usunąć pakiet Microsoft Office 2000
158658 OFF97: Jak całkowicie usunąć pakiet Microsoft Office 97

Materiały referencyjne

Aby uzyskać dodatkowe informacje dotyczące rozwiązywania problemów z komunikatem o błędzie "429" kliknij numer artykułu poniżej w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
240377 UPLOAD: Ubezpieczania Jet 3.5 jest poprawnie zainstalowany (część I)
Najnowsze informacje i przykładowy kod dotyczących automatyzacji pakietu Office firmy Microsoft zobacz witrynę pomocy technicznej Online firmy Microsoft pod adresem:
http://support.microsoft.com/ofd

Właściwości

Numer ID artykułu: 244264 - Ostatnia weryfikacja: 6 października 2011 - Weryfikacja: 3.0
Informacje zawarte w tym artykule dotyczą:
  • 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
Słowa kluczowe: 
kbAutomation kbinfo kbmt KB244264 KbMtpl
Przetłumaczone maszynowo
WAŻNE: Ten artykuł nie został przetłumaczony przez człowieka, tylko przez oprogramowanie do tłumaczenia maszynowego firmy Microsoft. Firma Microsoft oferuje zarówno artykuły tłumaczone przez ludzi, jak i artykuły tłumaczone maszynowo, dzięki czemu każdy użytkownik może uzyskać dostęp do całej zawartości bazy wiedzy Knowledge Base we własnym języku. Prosimy jednak pamiętać, że artykuły przetłumaczone maszynowo nie zawsze są doskonałe. Mogą zawierać błędy słownictwa, składni i gramatyki, przypominające błędy robione przez osoby, dla których język użytkownika nie jest językiem ojczystym. Firma Microsoft nie odpowiada za wszelkie nieścisłości, błędy lub szkody spowodowane nieprawidłowym tłumaczeniem zawartości oraz za wykorzystanie tej zawartości przez klientów. Oprogramowanie do tłumaczenia maszynowego jest często aktualizowane przez firmę Microsoft.
Anglojęzyczna wersja tego artykułu to:244264

Przekaż opinię

 

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