Office uygulamalarını otomatikleştirdiğinizde çalışma zamanı hatası 429 alıyorsunuz

Makale çevirileri Makale çevirileri
Makale numarası: 828550 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makalenin Microsoft Office XP, Office 2000 ve Office 97 sürümü için bkz:244264 (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir).
Hepsini aç | Hepsini kapa

Bu Sayfada

™zet

Microsoft Visual Basic'te New işlecini veya CreateObject işlevini kullanarak bir Microsoft Office uygulamasının örneğini oluşturduğunuzda, aşağıdaki hata iletisini alabilirsiniz:
Çalışma zamanı hatası '429': ActiveX bileşeni nesneyi oluşturamıyor
Bu hata, Bileşen Nesne Modeli'nin (COM) istenen Automation nesnesini oluşturamaması ve bu nedenle Automation nesnesinin Visual Basic'te kullanılamaması nedeniyle oluşur. Bu hata tüm bilgisayarlarda oluşmaz.

Bu makalede, bu hataya neden olabilecek genel sorunların nasıl tanılanacağı ve giderileceği açıklanır.

Daha fazla bilgi

Visual Basic'te, hata 429'un birkaç nedeni olabilir. Bu hata, aşağıdaki koşullardan biri doğruysa oluşur:
  • Uygulamada bir hata vardır.
  • Sistem yapılandırmasında bir hata vardır.
  • Eksik bir bileşen vardır.
  • Bozuk bir bileşen vardır.
Hatanın nedenini bulmak için, sorunu yalıtın. Bir istemci bilgisayarda hata 429 alırsanız, Microsoft Office uygulamalarında hatayı yalıtmak ve gidermek üzere aşağıdaki bilgileri kullanın.

Not Aşağıdaki bilgilerin bazıları Office dışındaki COM sunucuları için de geçerli olabilir. Ancak, bu makalede Office uygulamalarını otomatikleştirmek istediğiniz varsayılır.

Kodu inceleme

Hatayı gidermeye başlamadan önce, soruna neden olabilecek tek bir kod satırı belirmeye çalışın.

Soruna neden olabilecek tek bir kod satırı belirlerseniz, şu yordamları uygulayın:
  • Kodun açık nesne oluşturma kullandığından emin olun.

    Sorunlar tek bir eyleme indirgenebilirse daha kolay belirlenir. Örneğin, aşağıdakilere benzer örtük nesne oluşturma kullanımları olup olmadığına bakın.

    Kod örneği 1
    Application.Documents.Add 'BUNU KULLANMAYIN!!
    Kod örneği 2
    Dim oWordApp As New Word.Application 'BUNU KULLANMAYIN!!
    '... diğer kodlar
    oWordApp.Documents.Add
    Bu kod örneklerinin her ikisi de örtük nesne oluşturma kullanır. Değişken en az bir kez çağrılıncaya kadar Microsoft Office Word 2003 başlatılmaz. Değişken, programın farklı bölümlerinde çağrılabileceğinden sorunun belirlenmesi zor olabilir. Sorunun, Application nesnesi mi yoksa Document nesnesi mi oluşturulduğunda ortaya çıktığını belirlemek zor olabilir.

    Bunun yerine, açık çağrılar yaparak her bir nesneyi aşağıdaki gibi ayrı ayrı oluşturabilirsiniz.
    Dim oWordApp As Word.Application
    Dim oDoc As Word.Document
    Set oWordApp = CreateObject("Word.Application")
    '... diğer kodlar
    Set oDoc = oWordApp.Documents.Add
    Her nesneyi ayrı ayrı oluşturmak üzere açık çağrılar yaptığınızda, sorunu daha kolay yalıtabilirsiniz. Bu, kodun daha kolay okunabilmesini de sağlar.
  • Office uygulamasının bir örneğini oluştururken New işleci yerine CreateObject işlevini kullanın.

    CreateObject işlevi, çoğu Microsoft Visual C++ istemcisinin kullandığı oluşturma işlemine oldukça benzer. CreateObject işlevi ayrıca sunucunun CLSID değerinde farklı sürümler için değişikliklere izin verir. CreateObject işlevini, önceden ve sonradan bağlanan nesnelerle kullanabilirsiniz.
  • CreateObject işlevine geçirilen "ProgID" dizesinin doğru olduğunu ve sürüme bağımlı olmadığını doğrulayın. Örneğin, "Excel.Application.8" dizesi yerine "Excel.Application" dizesini kullanın. Başarısız olan sistemde, Microsoft Office'in, "ProgID" dizesinde belirtilenden daha eski veya daha yeni bir sürümü olabilir.
  • Erl komutunu kullanarak, hatalı olan kod satırının satır numarasını bildirin. Bu, IDE modunda çalışamayan uygulamalarda hata ayıklamanıza yardımcı olabilir. Aşağıdaki kod, hangi Automation nesnesinin oluşturulamadığını bildirir (Microsoft Word veya 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")
     	
     	' ... diğer kodlar
     	
     	err_handler:
     	  MsgBox "Kod şu satırda başarısız oldu: " & Erl, vbCritical
    Hatayı izlemek üzere MsgBox işlevini ve satır numarasını kullanın.
  • Sonradan bağları aşağıdaki gibi kullanın:
    Dim oWordApp As Object
    Önceden bağlanan nesneler, özel arabirimlerinin işlem sınırları genelinde sıraya konmasını gerektirir. Özel arabirim CreateObject veya New sırasında sıraya konamazsa, hata 429 alırsınız. Sonradan bağlanan nesneler, IDispatch sistemi tarafından tanımlanan ve özel bir proxy sunucusunun sıraya konmasını gerektirmeyen bir arabirimi kullanır. Sonradan bağlanan bir nesne kullanarak, bu yordamın düzgün çalışıp çalışmadığını doğrulayın.

    Sorun, nesne önceden bağlandığında oluşuyorsa, sunucu uygulamasından kaynaklanmaktadır. Tipik olarak, bu makalenin "Otomasyon Sunucusunu İnceleme" bölümünde açıklandığı şekilde uygulamayı yeniden yükleyerek bu sorunu düzeltebilirsiniz.

Otomasyon sunucusunu inceleme

CreateObject veya New ile ilgili bir hata oluşmasının en sık karşılaşılan nedeni, sunucu uygulamasındaki bir sorundur. Tipik olarak, uygulamanın yapılandırması veya kurulumu soruna neden olur. Sorun gidermek için şu yordamları kullanın:
  • Otomasyon gerçekleştirmek istediğiniz Office uygulamasının yerel bilgisayarda yüklü olduğunu doğrulayın. Uygulamayı çalıştırabildiğinizden emin olun. Bunu yapmak için, Başlat'ı tıklatın, Çalıştır'ı tıklatın ve sonra da uygulamayı çalıştırmayı deneyin. Uygulama el ile çalıştırılamazsa, otomasyon yoluyla da çalışmaz.
  • Uygulamayı aşağıdaki şekilde yeniden kaydettirin:
    1. Başlat'ı ve ardından Çalıştır'ı tıklatın.
    2. Çalıştır iletişim kutusuna sunucunun yolunu yazın ve satır sonuna /RegServer ekleyin.
    3. Tamam'ı tıklatın.

      Uygulama sessizce çalışır. Uygulama bir COM sunucusu olarak yeniden kaydettirilir.
    Sorun, bir kayıt defteri anahtarı eksik olduğu için oluşuyorsa, bu adımlar sorunu gidermelidir.
  • Otomasyon gerçekleştirmek istediğiniz uygulamanın CLSID değeri altındaki LocalServer32 anahtarını inceleyin. LocalServer32 anahtarının uygulama için doğru konuma işaret ettiğinden emin olun. Yol adının kısa yol (DOS 8.3) biçiminde olduğunu doğrulayın. Sunucuyu bir kısa yol adı kullanarak kaydettirmeniz gerekli değildir. Ancak, boşluklar içeren uzun yol adları bazı sistemlerde sorunlara neden olabilir.

    Sunucu için depolanan yol anahtarını incelemek için, Windows Kayıt Defteri Düzenleyicisi'ni aşağıdaki şekilde başlatın:
    1. Başlat'ı ve ardından Çalıştır'ı tıklatın.
    2. regedit yazın ve Tamam'ı tıklatın.
    3. HKEY_CLASSES_ROOT\CLSID anahtarına gidin.

      Sistemdeki kayıtlı otomasyon sunucularının CLSID değerleri bu anahtar altındadır.
    4. CLSID anahtarının aşağıdaki değerlerini kullanarak, otomasyon gerçekleştirmek istediğiniz Office uygulamasını gösteren anahtarı bulun. Yol için CLSID anahtarındaki LocalServer32 anahtarını inceleyin.
      Bu tabloyu kapaBu tabloyu aç
      Office SunucusuCLSID anahtarı
      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. Yolun, dosyanın asıl konumuyla eşlendiğinden emin olun.
    Not Kısa yol adları doğru olmasalar da doğru gibi görünebilirler. Örneğin, Office ve Microsoft Internet Explorer uygulamalarının (varsayılan konumlarına yüklenmişlerse) kısa yolları C:\PROGRA~1\MICROS~X\ dizinine benzer (burada X bir sayıdır). Bu ad ilk bakışta bir kısa yol adı gibi görünmeyebilir.

    Yolun doğru olup olmadığını belirlemek için şu adımları izleyin:
    1. Başlat'ı ve ardından Çalıştır'ı tıklatın.
    2. Kayıt defterindeki değeri kopyalayın ve Çalıştır iletişim kutusuna yapıştırın.

      Not Uygulamayı çalıştırmadan önce /automation anahtarını kaldırın.
    3. Tamam'ı tıklatın.
    4. Uygulamanın düzgün çalıştığını doğrulayın.

      Tamam tıklatıldıktan sonra uygulama çalışırsa, sunucu düzgün kaydettirilmiştir. Tamam tıklatıldıktan sonra uygulama çalışmazsa, LocalServer32 anahtarına doğru yol değerini girerek değiştirin. Yapabiliyorsanız bir kısa yol adı kullanın.
  • Normal.dot şablonunun veya Excel.xlb kaynak dosyasının bozulmuş olup olmadığını sınayın. Word'deki Normal.dot şablonu veya Excel'deki Excel.xlb kaynak dosyası bozulmuşsa, Microsoft Word veya Microsoft Excel'de otomasyon gerçekleştirmeye çalıştığınızda sorunlar oluşabilir. Bu dosyaları sınamak için, Normal.dot veya Excel.xlb dosyasının tüm örnekleri için yerel sabit sürücülerde arama yapın.

    Not Microsoft Windows 2000 veya Microsoft Windows XP çalışan sistemlerde, bu dosyaların birden çok kopyasını bulabilirsiniz. Sistemde yüklü olan her kullanıcı profili için bu dosyaların bir kopyası vardır.

    Normal.dot veya Excel.xlb dosyalarını geçici olarak yeniden adlandırın, sonra da otomasyon sınamasını yeniden çalıştırın. Word ve Excel, bu dosyaları bulamazsa yeniden oluşturur. Kodun çalışıp çalışmadığını doğrulayın. Yeni bir Normal.dot dosyası oluşturulduğunda kod çalışırsa, yeniden adlandırdığınız dosyaları silin. Bu dosyalar bozuktur. Kod çalışmazsa, bu dosyalarda kaydedilmiş özel ayarları korumak için dosyaları özgün dosya adlarıyla yeniden adlandırmalısınız.
  • Sisteminizde Windows 2000 çalışıyorsa, uygulamayı Administrator hesabı altında çalıştırın. Office sunucuları, kayıt defterine ve disk sürücüsüne okuma/yazma erişimi gerektirir. Geçerli güvenlik ayarlarınız okuma/yazma erişimini engelliyorsa, Office sunucuları düzgün yüklenmeyebilir.

Sistemi inceleme

Sistem yapılandırması da işlem dışı COM sunucularının oluşturulmasında sorunlara neden olabilir. Hatanın oluştuğu sistemde sorun gidermek için, aşağıdaki yordamları kullanın:
  • Sorunun işlem dışı sunuculardan birinde oluşup oluşmadığını belirleyin. Belirli bir COM sunucusunu (Word gibi) kullanan bir uygulamanız varsa, farklı bir işlem dışı sunucuyu sınayarak sorunun COM katmanıyla ilgili olmadığından emin olun. Bilgisayarda bir işlem dışı COM sunucusu oluşturamazsanız, sorunu gidermek üzere bu makalenin "Microsoft Office'i yeniden yükleme" bölümünde açıklanan yöntemle OLE sistem dosyalarını veya işletim sistemini yeniden yükleyin.
  • Otomasyonu yöneten OLE sistem dosyalarının sürüm numaralarını inceleyin. Bu dosyalar genelde bir küme olarak yüklenir. Dosyaların yapı numaralarıyla eşlenmesi gerekir. Hatalı yapılandırılmış bir kurulum yardımcı programı, dosyaları hatalı olarak ayrı ayrı yükleyebilir. Bu, dosyaların yanlış eşlenmesine neden olur. Otomasyon sorunlarını önlemek için, dosyaları inceleyip dosya yapılarının eşlendiğini doğrulayın.

    Otomasyon dosyaları Windows\System32 veya Winnt\System32 dizininde bulunur. Aşağıdaki dosyaları inceleyin.
    Bu tabloyu kapaBu tabloyu aç
    Dosya adıSürümDeğiştirme tarihi
    Asycfilt.dll3.50.501404 Eylül 2002
    Oleaut32.dll3.50.501604 Eylül 2002
    Olepro32.dll5.0.501404 Eylül 2002
    Stdole2.tlb3.0.501404 Eylül 2002
    Dosya sürümünü incelemek için, dosyayı Windows Gezgini'nde sağ tıklatın ve sonra da Özellikler'i tıklatın. Dosya sürümünün (yapı numarasının) son dört basamağını ve dosyanın son değiştirilme tarihini not alın. Bu değerlerin tüm otomasyon dosyaları için aynı olduğunu doğrulayın.

    Not Daha eski sürüm numaraları ve tarihler, Windows Server 2003 çalışan ve Office 2003'ün yüklü olduğu bir bilgisayardan alınmıştır. Bu sayı ve tarihler örnek olarak kullanılmıştır. Sizin değerleriniz farklı olabilir.

    Dosyaların yapı numaraları veya değiştirilme tarihleri aynı değilse, otomasyon dosyalarınızı güncelleştirmek üzere kendiliğinden açılan bir yardımcı program karşıdan yükleyin.

    Çalışma zamanı dosyalarına erişme hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
    235420 Visual Basic 6.0 SP4 çalışma zamanı dosyaları Vbrun60sp4.exe ile yüklenir (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
  • Sistem Yapılandırma yardımcı programını (Msconfig.exe) kullanarak, Office uygulamasında kod çalıştırılmasını kısıtlayabilecek üçüncü taraf uygulamalar için hizmetleri ve sistem başlangıcını inceleyin. Msconfig.exe hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
    310560 Windows XP'de Sistem Yapılandırma yardımcı programını kullanarak nasıl sorun giderilir
    Örneğin, "komut dosyası engelleyici" özellikleri olan bir virüsten koruma programı çalıştırdığınız için Outlook Otomasyon uygulamaları başarısız olabilir.

    Not Yalnızca ağa bağlı olmayan bir sınama sisteminde virüsten koruma programını geçici olarak devre dışı bırakın.

    Alternatif olarak, Outlook'ta aşağıdaki adımları izleyerek üçüncü taraf eklentileri devre dışı bırakın:
    1. Araçlar menüsünde Seçenekler'i tıklatın.
    2. Diğer sekmesinde, Gelişmiş Seçenekler'i tıklatın.
    3. Gelişmiş Seçenekler iletişim kutusunda, Eklenti Yöneticisi'ni tıklatın.
    4. Üçüncü taraf eklentilerin onay kutularını tıklatarak temizleyin.
    5. Outlook'u yeniden başlatın.
    Bu yöntem sorunu giderirse, virüsten koruma programına yönelik bir güncelleştirme hakkında daha fazla bilgi almak üzere üçüncü taraf virüsten koruma satıcısına başvurun.

Office'i yeniden yükleme

Yukarıdaki yordamlardan hiçbiri sorunu gidermezse, Office'i kaldırıp yeniden yükleyin. Microsoft, varolan sürümü kaldırdıktan sonra özgün yükleme disklerini kullanarak Office'i yeniden yüklemenizi önerir.

Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
219423 Office 2000 CD1 nasıl kaldırılır (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
158658 Microsoft Office 97 nasıl tümüyle kaldırılır (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)

Referanslar

'429' hata iletisi ile ilgili sorunları giderme hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
240377 Jet 3.5'in düzgün yüklenmesi nasıl sağlanır (bölüm I) (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
Office otomasyonu ve kod örnekleri hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://support.microsoft.com/ofd

Özellikler

Makale numarası: 828550 - Last Review: 22 Mayıs 2007 Salı - Gözden geçirme: 5.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Office SharePoint Designer 2007
  • Microsoft Office FrontPage 2003
  • Microsoft Office Outlook 2007
  • Microsoft Office Outlook 2003
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Professional Edition
Anahtar Kelimeler: 
kbexpertisebeginner kbtshoot kbprogramming kberrmsg kbautomation kbinfo KB828550

Geri Bildirim Ver

 

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