INFO: Mengatasi masalah kesalahan 429 saat mengotomatiskan aplikasi Office

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 244264 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Ketika Anda menggunakan Baru operator atau CreateObject fungsi dalam Microsoft Visual Basic untuk membuat sebuah instance dari aplikasi Microsoft Office, Anda mungkin mendapatkan pesan error berikut:
Galat run-time '429': komponen ActiveX tidak dapat membuat objek
Kesalahan ini terjadi bila diminta otomatisasi objek tidak dapat dibuat oleh COM, dan karena itu tidak tersedia untuk Visual Basic. Kesalahan biasanya terlihat pada komputer tertentu tetapi tidak yang lain.

Artikel ini memberikan beberapa tips pemecahan masalah untuk membantu Anda mendiagnosa dan mengatasi masalah umum yang diketahui menyebabkan kesalahan ini.

INFORMASI LEBIH LANJUT

Tidak seperti beberapa kesalahan dalam Visual Basic, ada tidak ada satu penyebab kesalahan 429. Masalah terjadi karena adanya kesalahan dalam konfigurasi aplikasi atau sistem, atau komponen yang hilang atau rusak. Menemukan yang tepat penyebab adalah masalah menghilangkan kemungkinan. Jika Anda menemukan kesalahan ini pada komputer klien, ada beberapa hal yang Anda akan perlu memeriksa untuk mengisolasi dan menyelesaikan kesalahan.

Item kemudian memberikan beberapa saran praktis untuk mengatasi masalah kesalahan ini ketika Anda bekerja dengan aplikasi Office. Informasi ini mungkin juga berlaku untuk non - kantor COM server juga, tapi artikel ini mengasumsikan Anda mencoba untuk mengotomatisasi Microsoft Office.

Memeriksa kode

Tempat pertama untuk mulai mencari masalah adalah dalam kode. Sebelum Anda dapat memecahkan kesalahan, Anda perlu tahu di mana kesalahan terjadi. Mencoba untuk menguranginya hingga ke satu baris kode.

Ketika Anda menemukan kode yang gagal, coba lakukan hal berikut:
  • Pastikan kode menggunakan pembuatan obyek eksplisit. Masalah lebih mudah untuk menemukan dan mengidentifikasi jika masalah ini dipersempit untuk tindakan. Sebagai contoh, tidak melakukan berikut:
    Application.Documents.Add 'DON'T USE THIS!!
    						
    atau:
    
    Dim oWordApp As New Word.Application 'DON'T USE THIS!!
    '... some other code
    oWordApp.Documents.Add
    						
    Kedua metode ini menggunakan objek implisit penciptaan. Microsoft Word tidak dimulai sampai variabel disebut setidaknya sekali. Karena variabel dapat disebut di bagian yang berbeda dari program, ini bisa membuat masalah sulit untuk melokalisasi. Juga, itu adalah tidak jelas apakah masalahnya dengan menciptakan objek aplikasi atau objek dokumen.

    Sebaliknya, membuat eksplisit panggilan untuk membuat setiap objek secara terpisah:
    Dim oWordApp As Word.Application
    Dim oDoc As Word.Document
    Set oWordApp = CreateObject("Word.Application")
    '... some other code
    Set oDoc = oWordApp.Documents.Add
    						
    Hal ini membuat lebih mudah untuk mengisolasi masalah dan membuat kode lebih mudah dibaca.
  • Ketika membuat sebuah instance dari aplikasi Microsoft Office, menggunakan CreateObject Melainkan Baru. CreateObject lebih dekat peta dalam proses penciptaan yang digunakan oleh kebanyakan Visual C++ klien, dan memungkinkan untuk kemungkinan perubahan dalam server CLSID antara versi. CreateObject dapat digunakan dengan objek terikat awal dan akhir-terikat.
  • Memverifikasi bahwa ProgID string berlalu untuk CreateObject adalah benar dan bahwa itu adalah versi independen (yaitu menggunakan "Excel.Application" daripada "Excel.Application.8"). Bisa jadi bahwa sistem yang gagal memiliki lebih tua atau lebih baru versi Microsoft Office dari versi yang Anda tentukan di ProgID.
  • Untuk membantu debugging aplikasi yang tidak dapat berjalan di IDE, gunakan ERL perintah untuk melaporkan jumlah baris baris yang gagal. Sebagai contoh, kode berikut akan memberitahu Anda yang otomatisasi objek tidak dibuat (Word atau 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
    						
    Menggunakan kombinasi dari kotak pesan dan nomor baris untuk melacak kesalahan.
  • Mencoba menggunakan ikatan terbaru (yaitu redup oWordApp sebagai objek). Awal terikat objek memerlukan kustom antarmuka untuk mengerahkan seluruh proses batas. Jika ada masalah marshaling antarmuka kustom selama CreateObject atau Baru, Anda akan mendapatkan error 429. Objek terikat akhir menggunakan didefinisikan sistem antarmuka (IDispatch) yang tidak memerlukan proxy kustom untuk mengerahkan. Mencoba menggunakan objek terikat akhir untuk melihat apakah ini membuat perbedaan.

    Apabila masalah terjadi hanya ketika objek awal-terikat, masalahnya adalah dengan aplikasi server, dan biasanya harus diperbaiki oleh menginstal ulang aplikasi (lihat nanti).
  • Apabila Anda sedang mengotomatisasi dari ASP atau komponen MTS, menggunakan CreateObject Melainkan Server.CreateObject(). Menggunakan Server.CreateObject akan instantiate aplikasi Office di bawah identitas MTS paket yang diketahui menyebabkan masalah dengan Microsoft Office.

Memeriksa Server otomatisasi

Alasan paling umum untuk kesalahan dengan CreateObject atau Baru adalah masalah dengan server aplikasi itu sendiri. Biasanya, masalah ini adalah dengan konfigurasi atau pengaturan dari aplikasi. Berikut adalah beberapa item untuk memeriksa:
  • Memverifikasi Microsoft Office aplikasi yang Anda inginkan untuk otomatis diinstal pada komputer lokal, dan pastikan bahwa Anda dapat memulai aplikasi dari awal dan kemudian menjalankan kotak dialog. Jika program tidak dapat dijalankan secara manual, tidak akan bekerja melalui otomatisasi.
  • Mendaftar ulang aplikasi dengan mengetik lintasan ke server di awal dan kemudian menjalankan kotak dialog, dan kemudian menambahkan / RegServer untuk akhir baris. Tekan Oke. Ini diam-diam harus menjalankan aplikasi dan mendaftar sebagai COM server. Jika masalah adalah dengan kunci registri yang hilang, ini biasanya akan memperbaikinya.
  • Memeriksa kunci LocalServer32 di bawah CLSID untuk aplikasi yang Anda inginkan untuk otomatis. Pastikan itu menunjuk ke lokasi yang benar untuk aplikasi, dan pastikan nama path dalam format jalur yang pendek (DOS 8,3). Sementara itu bukan persyaratan bahwa server akan terdaftar menggunakan nama jalur yang pendek, nama jalan lama yang mencakup tertanam ruang telah diketahui menyebabkan masalah pada beberapa sistem (lihat nanti).

    Untuk memeriksa kunci jalan yang tersimpan di server, mulai Windows Registry Editor dengan mengetik regedit di awal dan kemudian kotak dialog Jalankan. Navigasikan ke kunci HKEY_CLASSES_ROOT\Clsid. Di bawah kunci ini Anda akan menemukan CLSIDs untuk server Otomatisasi terdaftar pada sistem. Menggunakan nilai-nilai kemudian, menemukan kunci yang mewakili aplikasi Office Anda ingin otomatis dan memeriksa LocalServer32 key nya untuk jalan.
       +========================+=========================================+
       | 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}  |
       +------------------------+-----------------------------------------+
    						
    Apakah jalan sesuai lokasi sebenarnya file? Sadarilah bahwa nama jalur yang pendek dapat memberikan kesan bahwa jalan benar ketika tidak mungkin. Sebagai contoh, Microsoft Office dan Microsoft Internet Explorer (jika diinstal di lokasi default) akan memiliki jalan pendek yang mirip dengan "C:\PROGRA~1\MICROS~X\" di mana x adalah beberapa nomor. Hal ini tidak segera jelas bahwa Anda sedang melihat dari nama jalur yang pendek.

    Anda dapat menguji bahwa jalan memang benar dengan menyalin nilai dari registri dan merekatkannya ke awal dan kemudian menjalankan kotak dialog (Hapus / Otomatisasi beralih sebelum menjalankan aplikasi). Apakah aplikasi mulai ketika Anda memilih Oke? Jika ya, maka server terdaftar dengan benar. Jika tidak, Anda harus mengganti nilai kunci LocalServer32 dengan jalan yang benar (menggunakan nama jalur yang pendek jika mungkin).
  • Masalah yang telah diketahui terjadi saat mengotomatiskan Word atau Excel jika template Normal.dot (kata) atau berkas sumber daya Excel.xlb (Excel) telah menjadi rusak. Untuk menguji jika korupsi telah terjadi, cari hard drive lokal untuk menemukan semua contoh Normal.dot atau *.xlb. (Perlu diketahui bahwa jika Anda menjalankan Windows 2000, Windows NT, atau Windows 95/98 dengan profil diaktifkan, Anda mungkin menemukan beberapa salinan berkas ini, satu untuk setiap profil pengguna pada sistem.) Sementara mengubah nama file Normal.dot atau file *.xlb, dan kembali menjalankan tes otomatisasi (Word dan Excel akan membuat file-file ini jika mereka tidak bisa menemukan mereka). Apakah kode sekarang bekerja? Jika ya, kemudian diganti nama file harus dihapus karena mereka korup. Jika tidak, Anda harus mengubah nama mereka kembali ke nama asli sehingga setiap pengaturan kustom yang disimpan dalam file-file ini tidak akan hilang.
  • Jika Anda pada Windows NT, Windows 2000, Windows XP, atau Windows Server 2003 sistem, dijalankan di bawah Administrator account. Kantor server memerlukan akses membaca/menulis ke registri dan disk drive, dan mungkin tidak benar beban jika Anda saat ini pengaturan keamanan menyangkal hak istimewa ini.

Memeriksa sistem

Konfigurasi sistem juga dapat menyebabkan masalah dengan penciptaan keluar dari proses COM server. Berikut adalah beberapa hal untuk memeriksa sistem di mana kesalahan terjadi:
  • Apakah masalah yang terjadi dengan server keluar dari proses apapun? Jika Anda memiliki aplikasi yang hanya menggunakan server COM tertentu (misalnya, kata), Anda akan ingin menguji server keluar dari proses yang berbeda untuk memastikan masalahnya bukan dengan lapisan COM itu sendiri. Jika tidak ada keluar dari proses server COM dapat dibuat pada sistem, kemudian penginstalan ulang OLE sistem file (lihat di bawah) atau penginstalan ulang sistem operasi akan diperlukan untuk menyelesaikan masalah.
  • Memeriksa nomor versi untuk OLE berkas sistem yang mengelola otomatisasi. File-file ini biasanya diinstal sebagai satu set, dan harus sesuai dengan membangun nomor. Utilitas dikonfigurasi secara tidak benar setup dapat keliru menginstal file secara terpisah, menyebabkan mereka untuk menjadi tidak cocok. Untuk menghindari masalah dengan otomatisasi, Anda harus memeriksa file untuk memastikan file cocok membangun.

    Anda akan menemukan otomatisasi file dalam direktori Windows\System atau Winnt\System32. Berikut ini adalah daftar file untuk memeriksa:
       +---------------+-------------+----------------+
       | 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 |
       +---------------+-------------+----------------+
    						
    Periksa versi file dengan mengklik kanan pada file Explorer dan memilih Properties dari menu pop-up. Nilai-nilai yang paling penting adalah 4 digit terakhir dari versi file (nomor yang membangun) dan tanggal terakhir. Anda ingin memastikan bahwa nilai-nilai ini adalah sama untuk semua file otomatisasi.

    Harap dicatat bahwa nomor versi dan tanggal yang diberikan di atas adalah sebagai contoh tujuan saja. Nilai-nilai Anda mungkin berbeda. Yang penting adalah bahwa nilai-nilai ini cocok satu sama lain, bukan tabel ini.

    Jika file tidak cocok dengan membangun nomor atau tanggal diubah, Anda dapat men-download utilitas alat yang akan memperbarui file otomatisasi. Untuk informasi tambahan, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
    290887Visual Basic 6.0 SP6 run-time file akan VBRun60sp6.exe
  • Windows NT 4.0 memiliki masalah yang diketahui dengan mulai server Otomatisasi yang tinggal di folder yang berisi ruang tertanam dalam nama, dan/atau menyerupai folder lain yang pertama 8 karakter identik. Sebagai contoh, sebuah server yang tinggal di c: Files\SomeFolder mungkin gagal untuk memulai selama panggilan untuk CreateObject jika ada folder lain pada sistem yang disebut C:\Program Stuff\SomeFolder. Untuk informasi lebih lanjut, lihat artikel Basis Pengetahuan berikut:Untuk informasi tambahan tentang masalah ini dan langkah-langkah untuk pemecahan masalah ini, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
    185126 BUG: COM/OLE Server gagal untuk memulai pada Windows NT 4.0

Menginstal ulang Microsoft Office

Jika tidak ada langkah-langkah sebelumnya membantu mengatasi masalah, mempertimbangkan menghapus dan menginstal ulang Microsoft Office. Microsoft menganjurkan bahwa Anda menghapus ada versi pertama, dan kemudian instal ulang dari disk instalasi asli.

Untuk daftar item yang akan dihapus, lihat artikel Basis Pengetahuan berikut:
219423 OFF2000: Cara menghapus Microsoft Office 2000
158658 OFF97: Cara menghapus Microsoft Office 97

REFERENSI

Untuk informasi tambahan tentang pemecahan masalah pesan galat '429', klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
240377 HOWTO: Memastikan Jet 3.5 telah terinstal dengan benar (bagian I)
Untuk informasi terbaru dan contoh kode mengenai otomatisasi Office Microsoft, silakan lihat situs dukungan Microsoft Online di:
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.

Properti

ID Artikel: 244264 - Kajian Terakhir: 20 September 2011 - Revisi: 2.0
Berlaku bagi:
  • 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
  • Microsoft Word 2000
  • Microsoft Word 97 Standard Edition
Kata kunci: 
kbautomation kbinfo kbmt KB244264 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:244264

Berikan Masukan

 

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