Visual Basic'te bazı hatalar farklı olarak, yok bir neden bir hata 429 yoktur. Sorun, eksik veya bozuk bir bileşen veya uygulama veya sistem yapılandırması bir hata nedeniyle oluşur. Tam nedeni olasılıklarını ortadan kaldırarak, bir konular olur. Bu hata, istemci bilgisayarda karşılaşırsanız, çok sayıda ayırma ve bu hatayı gidermek için gereken bir şey yok.
Öğeleri daha sonra Office uygulamaları ile çalışırken, bu hatayı gidermek için bazı pratik öneriler sunar. Bu bilgilerin bazıları Office dışındaki COM sunucuları için de de geçerli olabilir, ancak bu makalede, Microsoft Office'in otomatikleştirmek istediğiniz varsayılır.
Kod denetleniyor
Bu soruna yönelik arama başlamak için ilk kod yerdir. Hatayı gidermek, önce hatanın oluştuğu bilmeniz gerekir. Bu tek bir kod satırı aşağı daraltmaya çalışın.
Başarısız olduğu kod bulduğunuzda, aşağıdakileri deneyin:
Kodun açık nesne oluşturma kullandığından emin olun. Herhangi bir sorun, nokta ve sorunu için tek bir eylem daraltıldığı olmadığını belirlemek daha kolay olur. Örneğin, aşağıdakileri yapı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 kadar Microsoft Word başlatılmaz. Değişken programın farklı bölümlerinde adlı değiştirebileceğinden, bu sorunun yerelleştirmeniz sabit duruma gelir. Ayrıca, uygulama nesnesini veya belge nesnesi oluşturma konusunda sorun olup olmadığını temizleyin vardır.
Bunun yerine, her nesneyi ayrı ayrı oluşturmak üzere açık çağrılar olun:
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 kolaylaştırır ve kodun daha kolay okunabilir hale getiren.
Microsoft Office uygulaması örneği oluşturulurken, CreateObjectYeni yerine kullanın. CreateObject daha yakından çoğu Visual C++ istemcileri taraf?ndan kullan?lan oluşturma işlemi eşleştirir ve sunucunun CLSID sürümleri arasındaki olası değişikliklere izin verir. Erken bağlama hem de sonradan bağlanan nesnelerle CreateObject kullanılır.
Progıd için CreateObject geçirilen dize doğru olduğunu ve sürüm bağımsız olduğunu doğrulayın (yani, "Excel.Application.8" "Excel.Application yerine" kullanın). Bu işlem, başarısız sistemde bir daha eski veya daha yeni sürüm, Microsoft Office'in Progıd'de belirtilen sürüm olduğunu olabilir.
IDE içinde çalışacak hata ayıklama uygulamalarında yardımcı olmak için <a0></a0>, başarısız olan satırının satır numarasını bildirin Erl</a0> komutunu kullanın. Örneğin, aşağıdaki kodu (Word veya Excel'deki) hangi Otomasyon nesnesi oluşturulamıyor, 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
ileti kutularını birleşimi kullanın ve satır numaraları hata izlemek için.
Geç bağlama (yani, Dim oWordApp nesne olarak) kullanmayı deneyin. Erken bağlanmış nesneleri, özel arabirimlerinin işlem sınırları boyunca konmasını gerektirir. Özel bir arabirim için CreateObject veya Yeni sırasında sıralama bir sorun varsa, hata 429 alırsınız. Geç, ilişkili bir nesne, özel bir proxy konmasını için gereken bir sistem tanımlı arabirimi (ıdispatch) kullanır. Bu fark, hissettiren görmek için geç bir ilişkili nesne kullanmayı deneyin.
Nesne erken bağlı olduğunda sorun oluşursa, sorun ile sunucu uygulama ve genellikle (daha sonra bakın), uygulamayı yeniden yükleyerek düzeltilebilir.
ASP ya da bir MTS bileşen otomatikleştirme CreateObjectServer.CreateObject() yerine kullanın. Server.CreateObject kullanarak, Microsoft Office ile ilgili sorunlara neden olduğu bilinen bir MTS paketinin kimliği altında Office uygulama başlatılamadı.
Otomasyon sunucu denetleniyor
Sunucu uygulaması ile ilgili sorunları en sık karşılaşılan nedenleri CreateObject veya Yeni bir hata var. Genellikle, bu sorunlar yapılandırmasını veya uygulamanın kurulumu ile var. Aşağıda, bazı öğeleri denetlemek için:
Otomatikleştir için istediğiniz uygulamanın yerel bilgisayarda yüklü olan Microsoft Office doğrulayın ve uygulamanın başlangıç başlatın ve sonra iletişim kutusunu Çalıştır dikkat edin. Program el ile yeniden başlatılamıyor, Otomasyon yoluyla çalışmayacak.
Başlangıç, sunucunun yolunu yazarak, uygulama dosyasını yeniden kaydettirin ve sonra iletişim kutusunu Çalıştır ve sonra ekleme / RegServer satır sonuna. Tamam ' ı tıklatın. Bu sessizce uygulamayı çalıştırın ve bir COM sunucusu olarak dosyasını yeniden kaydettirin. Sorun, eksik kayıt defteri anahtarıyla ise, bu genellikle düzeltecektir.
Otomatikleştir için istediğiniz uygulamanın clsıd DEĞERI altındaki LocalServer32 anahtarının denetleyin. Bu uygulama için doğru konuma işaret ettiğinden emin olun ve yol adı bir kısa yol (DOS 8.3) biçiminde olduğundan emin olun. Bir sunucu olması zorunlu değil ancak bir kısa yol adı kullanarak kayıtlı, katıştırılmış boşluklar içeren uzun yol adlarını (daha sonra bakın), bazı sistemlerde sorunlara neden bilinmektedir.
Sunucu için depolanan yol anahtarını denetlemek için <a0></a0>, Windows Kayıt Defteri Düzenleyicisi başlangıç regedit yazarak başlatın ve sonra iletişim kutusunu Çalıştır. HKEY_CLASSES_ROOT\Clsid anahtarına gidin. Bu anahtar altında sistemdeki kayıtlı otomasyon sunucularının clsıd değerleri bulabilirsiniz. Daha sonra değerleri kullanarak, yol için LocalServer32 anahtarını denetleyin ve otomatikleştir için istediğiniz Office uygulamasını gösteren anahtarı bulun.
Yolun, dosyanın gerçek konumu eşleşmiyor? Kısa yol adları değil olabilir, bir yolun doğru olduğunu etki verebilirsiniz unutmayın. Örneğin, hem de Microsoft Office ve Microsoft ınternet Explorer (varsayılan konumlarına yüklüyse) "C:\PROGRA~1\MICROS~X\ için" benzer bir kısa yol burada X, bazı sayıdır gerekir. Bir kısa yol adı Baktığınız olduğunu hemen belirgin değil.
Yol değeri kayıt defterinden kopyalayıp başlangıç gerçekten doğru olarak ve sonra iletişim kutusunu Çalıştır sınamak (kaldırmak / Automation uygulamayı çalıştırmadan önce geçiş). Tamam ' ı seçtiğinizde, uygulamayı başlatmak mı? Evet ise, sunucunun doğru şekilde kaydedilir. Aksi durumda, LocalServer32 anahtarının değerini (kullanmak mümkünse bir kısa yol adı) doğru yolu ile değiştirmeniz gerekir.
(Word) Normal.dot şablonunun veya Excel.xlb kaynak dosyası (Excel) bozuldu, Word veya Excel'deki otomatikleştirme ortaya sorun bilinmektedir. Bir bozukluk oluştu korunmadığını sınamak için <a0></a0>, yerel sabit sürücüler normal.dot veya *.xlb tüm örneklerini bulmak için arama. (Lütfen Not profilleri etkinleştirilmişse Windows 2000, Windows NT veya Windows 95/98'i çalıştırıyorsanız, bu dosyalar, bir sistem üzerindeki 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, otomasyon sınama çalıştırın (bunları bulamıyorsanız, Word ve Excel bu dosyalar oluşturur). Kod şu anda çalışıyor mu? Bozuk olduğundan Evet ise, daha sonra yeniden adlandırılan dosyalar silinmelidir. Tersi durumda, bu dosyalarda kaydedilmiş özel ayarları kayıp olmaz; bu nedenle, bunları özgün adlarını geri adlandırmalısınız.
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ığı engellerseniz düzgün yüklenmeyebilir.
Sistem denetimi
Sistem Yapılandırması da işlem dışı COM sunucularının oluşturma ile ilgili sorunları neden olabilir. Sistemlerde denetlemek için bazı şeyler hatanın oluştuğu şunlardır:
Sorun herhangi bir işlem dışı sunucusu ile durum mu? Yalnızca belirli bir COM sunucusunu (örneğin, Word) kullanan bir uygulama varsa, sorunun COM katmanıyla kendisi olduğundan emin olmak için farklı bir işlem dışı sunucu sınamak tercih edersiniz. Hiçbir işlem dışı COM sunucusu, o sistem üzerindeki oluşturulabilir (aşağıya bakın) bir yeniden yükleme OLE sistem dosyalarını veya işletim sisteminin bir yeniden yükleme sorunu gidermek için gerekli.
Otomasyonu yöneten OLE sistem dosyalarının sürüm numaralarını denetleyin. Bu dosyalar, genelde bir küme olarak yüklenir ve yapı numaraları eşleşmesi gerekir. Bir yanlış yapılandırılmış bir kurma programı yanlışlıkla dosyaları ayrı olarak uyumsuz hale için neden yükleyebilirsiniz. Otomasyon sorunlarını önlemek için <a0></a0>, dosyaları yap?lar eşleştiğinden emin olun dosyaların denetlemelisiniz.
+---------------+-------------+----------------+
| 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 |
+---------------+-------------+----------------+
Gezgini'ninde dosyayı üzerinde sağ tıklatıp, beliren menüden Özellikler'i seçin, dosya sürümü denetleyin. En önemli dosya sürümü (yapı numarasıdır) ve son değiştirme tarihi son dört rakam değerlerdir. Istediğiniz bu değerlerin tüm Otomasyon dosyaları için aynı olduğundan emin olun.
Lütfen sürüm numaraları ve tarihler, yukarıda verilen örnek yalnızca olduğunu unutmayın. Değerleriniz farklı olabilir. Önemli nokta, bu değerleri birbirinin yerine bu tablo aynı olur.
Dosyaların yapı numaraları veya değiştirilmiş tarihler eşleşmiyorsa, otomasyon dosyalarınızı güncelleştirecek kendiliğinden açılan bir 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:
Visual Basic 6.0 SP5 çalışma zamanı dosyaları VBRun60sp5.exe ile yüklenir
Windows NT 4.0 ile katıştırılmış bir alan adını içerir ve/veya başka bir klasöre, ilk 8 karakter özdeş benzer bir klasörde live otomasyon sunucuları başlatma bilinen bir sorun var. Örneğin, C:\Program Files\SomeFolder içinde yaşayan bir sunucu C:\Program Stuff\SomeFolder adlı sistemde başka bir klasör varsa CreateObject bir arama sırasında başlatılamayabilir. Daha fazla bilgi için aşağıdaki Microsoft Knowledge Base makalesine bakın:Bu sorun ve geçici çözüm adımları hakkında ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
Hata: COM/OLE sunucusu ile Windows NT 4. 0'ı başlatma başarısız.
Microsoft Office'in yeniden yükleme
Önceki adımlardan hiçbiri sorununuzu gidermenize yardımcı olur, Microsoft Office'in kaldırıp göz önünde bulundurun. Microsoft, varolan sürümü önce kaldırmanız ve özgün yükleme disketlerinden yeniden önerir.
Kaldırılacak öğelerin tam listesi için lütfen aşağıdaki Knowledge Base makalelerinde bakın:
Makale numarası: 244264 - Last Review: 11 Mayıs 2007 Cuma - Gözden geçirme: 6.2
Bu makaledeki bilginin uygulandığı durum:
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 Visual Basic Enterprise Edition for Windows 6.0
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 Office Excel 2003
Microsoft Excel 2002 Standard Edition
Microsoft Excel 97 Standard Edition
Microsoft Office FrontPage 2003
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
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 Office Word 2003
Microsoft Word 2002 Standard Edition
Microsoft Word 2000 Standard Edition
Microsoft Word 97 Standard Edition
Anahtar Kelimeler:
kbmt kbautomation kbfaq kbinfo KB244264 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.