Özet

Yeni işleç veya CreateObject işlev Microsoft Visual Basic Microsoft Office uygulamasının bir örneğini oluşturmak için kullandığınızda, aşağıdaki hata iletisini alabilirsiniz:

Çalışma zamanı hatası '429': ActiveX bileşeni nesneyi oluşturamıyor

İstenen Otomasyon nesne COM tarafından oluşturulmuş ve bu nedenle Visual Basic'te kullanılamaz olduğunda bu hata oluşur. Hata, genellikle belirli bilgisayarlara fakat diğerlerininkileri görülür.

Bu makalede, bu hataya neden olduğu bilinen genel sorunları tanılamaya ve gidermeye yardımcı olmak için bazı sorun giderme ipuçları sağlar.

Daha fazla bilgi

Visual Basic'te bazı hatalar hata 429 için hiç bir neden yoktur. Bir uygulama veya sistem yapılandırması veya eksik veya bozuk bir bileşen hata nedeniyle sorun olmuyor. Tam nedenini bulma olasılıkları ortadan kaldırılması, bir konudur. Bir istemci bilgisayarında bu hatayla karşılaşırsanız, pek çok hatayı gidermek ve ayırmak için denetlemeniz gerekir vardır.

Öğeleri daha sonra Office uygulamaları ile çalışırken bu hatayı gidermek için bazı pratik öneriler sunar. Bu bilgilerin bazıları aynı zamanda Office COM sunucuları için de geçerli olabilir, ancak bu makalede, Microsoft Office'i otomatikleştiren çalıştığınız varsayılmaktadır.

Kod denetimi

Kodda sorun için arama başlamak için ilk yerdir. Hatayı gidermek için kullanabileceğiniz önce hatanın oluştuğu bilmeniz gerekir. Tek bir kod satırı aşağı doğru daraltmak deneyin.

Başarısız olan kodu bulduğunuzda, aşağıdakileri deneyin:

  • Kodu açık nesne oluşturma kullandığından emin olun. Herhangi bir sorun, spot ve tek bir eyleme soruna daraltıldığı tanımlamak kolaydır. Örneğin, aşağıdaki yapmayın:

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

    veya:

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

    Bu yöntemlerin her ikisi de örtük nesne oluşturma kullanır. Değişken en az bir kez çağrılana kadar Microsoft Word başlatılmaz. Programın farklı bölümlerinde değişken çağrılabilir olduğundan, bu sorun yerelleştirmek sabit duruma gelir. Ayrıca, uygulama veya belge nesne oluşturma konusunda sorun olup olmadığını NET değildir vardır.

    Bunun yerine, her nesneyi ayrı ayrı oluşturmak üzere açık çağrılar yapın:

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

    Bu sorunu yalıtmak daha kolay hale getirir ve kod daha okunaklı hale getirir.

  • Microsoft Office uygulamasının bir örneğini oluştururken, Yeniyerine CreateObject kullanın. CreateObject daha yakından çoğu Visual C++ istemcileri tarafından kullanılan oluşturma işlemi için eşleştirir ve sunucunun CLSID sürümleri arasındaki olası değişikliklere izin verir. CreateObject hem bağlı erken ve geç bağlama nesneleri ile birlikte kullanılabilir.

  • ProgID için CreateObject geçirilen dize doğru olduğunu ve sürüme bağımlı olduğundan emin olun (yani, "Excel.Application.8" yerine "Excel.Application.8" kullanın). Başarısız olan sistem Microsoft Office program kimliği ' belirtilen sürümden bir daha eski veya daha yeni sürüm olduğundan emin olabilir.

  • IDE modunda çalışamayan uygulamalarda hata ayıklama yardımcı olmak için başarısız olan satırının satır numarasını bildirmek için Erl komutunu kullanın. Örneğin, aşağıdaki kod (Word veya Excel) hangi Otomasyon nesnesi oluşturulamıyor size bildirir:

    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

    İleti kutuları ve satır numaralarını birlikte hatayı izlemek için kullanın.

  • Geç bağlama (diğer bir deyişle, Dim oWordApp olarak nesne) kullanmayı deneyin. Erken bağımlı nesneleri, özel arabirimlerinin işlem sınırları boyunca konmasını gerektirir. Özel bir arabirim hazırlama sırasında CreateObject veya Yenibir sorun varsa, hata 429 alırsınız. Geç bir ilişkili nesne sıralanması için özel bir proxy gerektirmeyen bir sistem tanımlı arabirimi (IDispatch) kullanır. Bu bir fark yapar görmek için geç bir ilişkili nesne kullanmayı deneyin.

    Nesne Bağlama erken olduğunda sorun oluşursa, sorun sunucu uygulamasıdır ve uygulamayı yeniden yüklemeyi (daha sonra bakın) genellikle düzeltilebilir.

  • ASP ya da MTS bileşen getiriyorsanız, Server.CreateObject()yerine CreateObject kullanın. Server.CreateObject kullanarak, Microsoft Office ile sorunlara neden olduğu bilinen bir MTS paketinin kimliği altında Office uygulaması örneği.

Otomasyon sunucusu denetleme

En yaygın nedenleri için CreateObject veya Yeni bir hata sunucu uygulaması ile ilgili sorunlar olmasıdır. Genellikle, bu yapılandırma ya da uygulamanın kurulumu sorunlardır. Denetlemek için bazı öğeler şunlardır:

  • Otomatikleştirme için istediğiniz uygulama yerel bilgisayarda yüklü olan Microsoft Office doğrulayın ve uygulama baştan başlat ve ardından Çalıştır iletişim kutusu olduğundan emin olun. El ile program başlatılamıyor, Otomasyon yoluyla çalışmaz.

  • Uygulama içinde Start sunucu yolunu yazarak yeniden kaydettirin sonra Çalıştır iletişim kutusu ve sonra/regserver satır sonuna. Tamam' ı tıklatın. Bu uygulama sessizce çalıştırıp COM sunucusu olarak yeniden kaydetmeniz. Sorun, eksik bir kayıt defteri anahtarı ile ise, bu genellikle düzeltecektir.

  • Otomatikleştirme için istediğiniz uygulamanın CLSID değeri altındaki LocalServer32 anahtarını denetleyin. Uygulama için doğru konuma işaret ettiğinden emin olun ve yol adı en kısa yol (DOS 8.3) biçiminde olduğundan emin olun. Bir sunucu bir gereklilik olmasa bir kısa yol adı kullanarak kayıtlı, boşluklar içeren uzun yol adları (daha sonra bakın) bazı sistemlerde sorunlara neden olduğu bilinmektedir.

    Sunucu için depolanan yol anahtarını denetlemek için kullanımdaysa regedit yazarak Windows Kayıt Defteri Düzenleyicisi'ni başlatın ve ardından Çalıştır iletişim kutusu. HKEY_CLASSES_ROOT\CLSID anahtarına gidin. Bu anahtar altında sistemdeki kayıtlı otomasyon sunucularının CLSID bulacaksınız. Daha sonra değerleri kullanarak otomatikleştirme için istediğiniz ve onun yoluna LocalServer32 anahtarını denetleyin ve Office uygulamasına temsil eden anahtar bulabilirsiniz.


    +========================+=========================================+
    | 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} |
    +------------------------+-----------------------------------------+
    Yol gerçek dosyanın konumunu aynı mı? Kısa yol adları olmayabilir, bir yolun doğru olduğunu izlenim verebilirsiniz unutmayın. Örneğin, hem Microsoft Office ve Microsoft Internet Explorer (varsayılan konumlarına yüklüyse) "C:\PROGRA~1\MICROS~X\" için benzer bir kısa yol X bazı numarasını burada olacaktır. Bir kısa yol adı aradığınız olduğunu hemen belirgin değildir.

    Yolu kayıt defterinden değerini kopyalayarak ve Başlat ve ardından Çalıştır iletişim kutusunu (uygulamayı çalıştırmadan önce/Automation anahtarı Kaldır) uygulamasına yapıştırma gerçekten doğru olduğunu test edebilirsiniz. Tamam' ı seçtiğinizde uygulama açılıyor mu? Evet ise, sunucu düzgün kaydettirilmiştir. Aksi durumda, doğru yolu (mümkünse bir kısa yol adı kullanın) LocalServer32 anahtarının değerini değiştirmeniz gerekir.

  • Sorunlar ortaya Normal.dot şablonu (Word) veya Excel.xlb kaynak dosyası (Excel) bozuldu, Word veya Excel'i otomatikleştirme bilinmektedir. Bir bozulma oluşursa sınamak için Normal.dot veya *.xlb tüm örneklerini bulmak için yerel sabit sürücülerde arama. (Lütfen unutmayın profilleri etkinleştirilmişse Windows 95/98, Windows NT veya Windows 2000 çalıştırıyorsanız, bu dosyalar, sistem her kullanıcı profili için birden çok kopyasını bulabilirsiniz.) Geçici olarak Normal.dot dosyası veya *.xlb dosyaları yeniden adlandırın ve da Otomasyon sınamasını yeniden çalıştırın (Word ve Excel oluşturacaktır bu dosyaları onları bulamazsanız,). Kod çalışıyor mu? Bozuk olduğundan yeniden adlandırdığınız dosyaları varsa, silinmelidir. Aksi halde, bu dosyalarda kaydedilmiş özel ayarlar kaybolmamasını sağlamak, bunları özgün adlarını yeniden adlandırmanız gerekir.

  • Windows NT, Windows 2000, Windows XP veya Windows Server 2003 sistem üzerinde ise, uygulamayı Administrator hesabı altında çalıştırın. Office sunucuları, kayıt defteri ve disk sürücüsü okuma/yazma erişimi gerektirir ve geçerli güvenlik ayarlarınız bu ayrıcalık vermezseniz düzgün yüklenmeyebilir.

Sistem denetimi

Sistem yapılandırması da işlem dışı COM sunucuları oluşturma ile ilgili sorunları neden olabilir. Bazı şeyleri kontrol sistemleri üzerinde hatanın oluştuğu şunlardır:

  • Herhangi bir işlem dışı sunucu ile sorun oluşuyor? Yalnızca belirli bir COM sunucusunu (Word gibi) kullanan bir uygulama varsa, sorunun COM katmanıyla olmadığından emin olmak için farklı bir işlem dışı sunucu sınamak isteyeceksiniz. Bu sistemde hiçbir işlem dışı COM sunucusu oluşturulabilir, OLE sistem yeniden yükleme dosyaları (aşağıya bakın) veya işletim sistemi yeniden yükleme sorunu çözmek için gerekli.

  • Otomasyonu yöneten OLE sistem dosyalarının sürüm numaraları kontrol edin. Bu dosyalar genellikle bir küme olarak yüklenir ve yapı numaralarıyla eşlenmesi. Bir hatalı yapılandırılmış kurulum yardımcı programını yanlışlıkla dosyaları ayrı olarak, onlara uyumsuz hale neden yükleyebilirsiniz. Otomasyon sorunlarını önlemek için dosyaları dosyaları yapılar eşleştiğinden emin olmak için denetlemelisiniz.

    Otomasyon dosyaları Windows\System veya Winnt\System32 dizininde bulabilirsiniz. Denetlenecek dosyaların listesi aşağıdadır:


    +---------------+-------------+----------------+
    | 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 |
    +---------------+-------------+----------------+
    Explorer ve seçme özellikleri açılır menüsünden bir dosya üzerinde sağ tıklatarak dosya sürümü denetleyin. En önemlisi son dört rakam (yapı numarası) dosya sürümü ve en son değiştirilme tarihi değerlerdir. Bu değerlerin tüm otomasyon dosyaları için aynı olduğundan emin olmak istersiniz.

    Sürüm numaraları ve tarihleri yukarıda verilen örneğin amacı olduğunu unutmayın. Değerleriniz farklı olabilir. Bu değerler birbirlerinin yerine bu tabloda eşleşen önemli şeydir.

    Dosyaların yapı numaraları veya değiştirilme tarihleri eşleşmiyorsa, otomasyon dosyaları güncelleştirecek bir kendi kendine ayıklanan yardımcı programı karşıdan yükleyebilirsiniz. Ek bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:

    290887 VBRun60sp6.exe Visual Basic 6.0 SP6 çalışma zamanı dosyalarını yükler.

  • Windows NT 4.0, katıştırılmış bir alan adı içeriyor ve/veya başka bir klasörü ilk 8 karakterine özdeş benzer bir klasörde Canlı otomasyon sunucuları başlatma ile ilgili bilinen bir sorun vardır. Örneğin, C:\Program Files\SomeFolder içinde yaşayan bir sunucu C:\Program Stuff\SomeFolder olarak adlandırılan sistemde başka bir klasör varsa CreateObject çağrı sırasında başlatılamayabilir. Daha fazla bilgi için aşağıdaki Bilgi Bankası makalesine bakın:Bu sorun ve geçici çözüm adımları hakkında ek bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:

    185126 hata: COM/OLE sunucusu başarısız Windows NT 4. 0'ı başlatmak

Microsoft Office'i yeniden

Microsoft Office kaldırıp önceki adımlardan hiçbiri sorunu çözmeye yardımcı olur, düşünün. Microsoft, varolan sürümü kaldırmanız ve özgün yükleme disketlerinden yeniden önerir.

Kaldırılacak öğelerin tam listesi için lütfen aşağıdaki Bilgi Bankası makalelerine bakın:

219423 OFF2000: Microsoft Office 2000 tamamen kaldırma

158658 OFF97: Microsoft Office 97 tamamen kaldırma

Başvurular

'429' hata iletisi sorununu giderme hakkında ek bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:

240377 nasıl yapılır: Jet 3.5 doğru yüklenmemiş Sigortası (bölüm ı)
Lütfen en son bilgileri ve Microsoft Office Otomasyonu ile ilgili örnek kod için Microsoft Online destek sitesinde bakın:

http://support.microsoft.com/ofd

Daha fazla yardıma mı ihtiyacınız var?

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Microsoft Insider 'a katılın

Bu bilgi yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?

Geri bildiriminiz için teşekkürler!

×