ملخص

عند استخدام عامل جديد أو دالة CreateObject في Microsoft Visual Basic لإنشاء مثيل من أحد تطبيقات Microsoft Office، قد تتلقى رسالة الخطأ التالية:

خطأ وقت التشغيل 429 ': لا يمكن إنشاء مكونات ActiveX كائن

يحدث هذا الخطأ عند تعذر إنشاء واسطة COM كائن التنفيذ التلقائي المطلوب، وبالتالي يتوفر ل Visual Basic. ملاحظة الخطأ بشكل عام على بعض أجهزة الكمبيوتر ولكن ليس للآخرين.

توفر هذه المقالة بعض تلميحات استكشاف الأخطاء وإصلاحها للمساعدة في تشخيص وحل المشاكل الشائعة التي تؤدي إلى هذا الخطأ.

مزيد من المعلومات

على عكس بعض الأخطاء في Visual Basic، هناك أي سبب واحد لخطأ 429. يحدث المشكلة بسبب حدوث خطأ في تكوين تطبيق أو نظام أو مكون مفقود أو معطوب. البحث عن السبب مسألة القضاء على إمكانيات. إذا واجهت هذا الخطأ على جهاز كمبيوتر عميل، هناك عدد من الأشياء التي يجب التحقق لعزل وحل الخطأ.

تمنحك العناصر فيما بعد بعض الاقتراحات العملية لاستكشاف هذا الخطأ عند العمل مع تطبيقات Office. بعض هذه المعلومات قد تسري أيضا على خوادم Office COM أيضا، ولكن تفترض هذه المقالة تحاول أتمتة Microsoft Office.

التحقق من التعليمات البرمجية

المقام الأول لبدء البحث عن المشكلة في التعليمات البرمجية. قبل أن يمكن استكشاف الخطأ، تحتاج إلى معرفة مكان حدوث الخطأ. حاول تضييق خط فردي من التعليمات البرمجية.

عند البحث عن التعليمات البرمجية التي فشل، حاول القيام بما يلي:

  • تأكد من أن تستخدم التعليمات البرمجية إنشاء كائن صريحة. من السهل أي مشكلة وتحديد ما إذا كان تضييق المشكلة إلى إجراء واحد. على سبيل المثال، عدم القيام بما يلي:

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

    أو:

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

    استخدام كلا الطريقتين إنشاء كائن الضمني. لم يتم بدء تشغيل Microsoft Word حتى يتم استدعاء المتغير مرة واحدة على الأقل. حيث يمكن أن يسمى المتغير في أجزاء مختلفة من البرنامج، هذا يمكن أن يجعل المشكلة صعبة ترجمة. أيضا، من غير الواضح ما إذا كانت المشكلة بإنشاء كائن التطبيق أو كائن المستند.

    بدلاً من ذلك، إجراء مكالمات صريحة لإنشاء كل كائن بشكل منفصل:

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

    هذا يسهل عزل المشكلة ويجعل التعليمة البرمجية أكثر قابلية للقراءة.

  • عند إنشاء مثيل من أحد تطبيقات Microsoft Office، استخدم CreateObject بدلاً من جديد. CreateObject أوثق تعيين عملية الإنشاء المستخدمة من قبل معظم عملاء Visual c + +، ويسمح للتغييرات التي قد تطرأ CLSID الخاص بالخادم بين الإصدارات. يمكن استخدام CreateObject مع الكائنات المرتبطة بشكل مبكر ومتأخرا على حد سواء.

  • التحقق من صحة السلسلة ProgID الذي تم تمريره إلى CreateObject وأنها الإصدار المستقل (هذا يعني، استخدام "Excel.Application" بدلاً من "Excel.Application.8"). ويمكن أن أقدم أو أحدث إصدار من Microsoft Office من الإصدار الذي حددته في progid الخاص بالنظام الذي فشل.

  • للمساعدة في تصحيح التطبيقات التي لا يمكن تشغيل في IDE, استخدم الأمر Erl للإعلام رقم بند السطر الذي فشل. على سبيل المثال، التعليمات البرمجية التالية سوف أقول لكم لا يمكن إنشاء أي كائن التنفيذ التلقائي (Word أو 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

    استخدام تركيبة من مربعات الرسائل وأرقام الأسطر لتعقب الخطأ.

  • حاول استخدام الربط في وقت التشغيل (أي، أووورداب أبعاد ككائن). تتطلب الكائنات المرتبطة بشكل مبكر على الواجهات المخصصة لتنظيم عبر حدود العملية. إذا كان هناك مشكلة تنظيم واجهة مخصصة أثناء CreateObject أو جديد، سوف تحصل على خطأ 429. يستخدم كائن منضم متأخر المعرفة من قبل النظام واجهة (IDispatch) التي لا تتطلب وكيل مخصصة لتنظيم. حاول استخدام كائن منضم متأخر لمعرفة إذا كان هذا يحدث فرقا.

    تحدث هذه المشكلة فقط عندما يكون الكائن المنضم المبكر، مع تطبيق الملقم المشكلة، ويمكن تصحيح عادة بواسطة إعادة تثبيت التطبيق (انظر لاحقاً).

  • حالة التنفيذ التلقائي من آسيا والمحيط الهادئ أو مكون MTS، استخدم CreateObject بدلاً من Server.CreateObject(). استخدام Server.CreateObject سيتم إنشاء مثيل تطبيق Office تحت الهوية إحدى حزم MTS المعروف بحدوث مشكلات مع Microsoft Office.

التحقق من ملقم الأتمتة

الأسباب الأكثر شيوعاً لخطأ مع CreateObject أو جديد مشاكل تطبيق الملقم نفسه. عادة ما تكون هذه المشاكل مع التكوين أو إعداد التطبيق. وفيما يلي بعض العناصر للتحقق:

  • تحقق من Microsoft Office الذي تريد أتمتة تطبيق مثبت على الكمبيوتر المحلي، وتأكد من أنه يمكنك تشغيل التطبيق من البداية وقم بتشغيل مربع الحوار. لا يمكن بدء تشغيل البرنامج يدوياً، لن تعمل من خلال التنفيذ التلقائي.

  • إعادة تسجيل التطبيق بكتابة مسار الخادم في البداية وقم بتشغيل مربع الحوار ثم إلحاق /RegServer إلى نهاية السطر. اضغط "موافق". وهذا ينبغي أن صمت تشغيل التطبيق ثم إعادة تسجيل كخادم COM. إذا كانت المشكلة باستخدام مفتاح تسجيل مفقود، وهذا عادة تصحيحها.

  • تحقق من مفتاح LocalServer32 تحت CLSID للتطبيق الذي تريد أتمتة. تأكد من أنه يشير إلى الموقع الصحيح للتطبيق، وتأكد من أن اسم المسار في تنسيق مسار قصير (DOS 8.3). بينما لا يشترط أن يكون ملقم تسجيل باستخدام اسم مسار قصير، أسماء المسارات الطويلة التي تتضمن مسافات مضمنة من المعروف أن يسبب مشاكل في بعض الأنظمة (انظر لاحقاً).

    للتحقق من مسار المفتاح المخزنة للخادم، بدء تشغيل محرر تسجيل Windows بكتابة regedit في البداية ثم قم بتشغيل مربع الحوار. انتقل إلى مفتاح HKEY_CLASSES_ROOT\Clsid. ضمن هذا المفتاح ستجد CLSIDs ملقمات التنفيذ التلقائي المسجلة في النظام. استخدام القيم لاحقاً، العثور على المفتاح الذي يمثل تطبيق Office بأتمتة والتحقق من المفتاح LocalServer32 لها للمسار.


    +========================+=========================================+
    | 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} |
    +------------------------+-----------------------------------------+
    المسار مطابق للموقع الفعلي للملف؟ يجب أن تدرك أن أسماء مسار قصير يمكن أن تعطيك انطباعا بأن مسار الصحيح عندما لا تستطيع. على سبيل المثال، كل من Microsoft Office و Microsoft Internet Explorer (إذا كان مثبتاً في أماكنهم الافتراضية) سيكون مسار قصير تشبه "C:\PROGRA~1\MICROS~X\" حيث يكون X رقماً. ليس من الواضح فورا أن تبحث من اسم مسار قصير.

    يمكنك اختبار أن المسار غير صحيح في الواقع بنسخ القيمة من التسجيل ولصقه في البداية ثم تشغيل مربع الحوار (إزالة رمز التبديل /Automation قبل تشغيل التطبيق). يتم تشغيل التطبيق عند تحديد موافق؟ إذا كان الجواب نعم، ثم يتم تسجيل الملقم بشكل صحيح. إذا لم يتم ذلك، يجب استبدال قيمة مفتاح LocalServer32 المسار الصحيح (استخدم اسم مسار قصير إذا أمكن).

  • مشاكل المعروف بحيث تحدث عند أتمتة Word أو Excel إذا أصبح تالفاً القالب Normal.dot (Word) أو ملف المورد Excel.xlb (Excel). لمعرفة ما إذا كان قد حدث تلف، البحث محركات الأقراص الثابتة المحلية للبحث عن كافة مثيلات Normal.dot أو *.xlb. (يرجى ملاحظة أنه إذا كنت تستخدم Windows 2000 أو نظام التشغيل Windows NT أو نظام التشغيل Windows 95/98 بتمكين ملفات تعريف، قد تجد عدة نسخ من هذه الملفات، واحد لكل ملف تعريف المستخدم على النظام.) إعادة تسمية الملفات Normal.dot أو ملفات *.xlb مؤقتاً، وإعادة تشغيل اختبار التشغيل الآلي (Word و Excel سيقوم بإنشاء هذه الملفات إذا كان لا يمكن العثور عليها). التعليمات البرمجية الآن يعمل؟ إذا كان الجواب نعم، ثم قمت بإعادة تسمية الملفات تحذف منذ أن أصبحت تالفة. إذا لم يكن الأمر كذلك، ينبغي تسميتها إلى أسمائها الأصلية حيث لن تفقد أي الإعدادات المخصصة التي يتم حفظها في هذه الملفات.

  • إذا كنت تعمل على Windows NT أو Windows 2000، نظام التشغيل Windows XP أو Windows Server 2003 النظام، تشغيل التطبيق تحت حساب المسؤول. خوادم office تتطلب الوصول للقراءة/الكتابة إلى التسجيل والأقراص، وقد لا تحميل بشكل صحيح إذا كانت إعدادات الأمان الحالية رفض هذا الامتياز.

التحقق من نظام

تكوين النظام يمكن أيضا أن يسبب مشاكل في إنشاء خوادم COM خارج العملية. فيما يلي بعض الأشياء التي يجب التحقق على أنظمة مكان حدوث الخطأ:

  • تحدث المشكلة مع أي ملقم خارج العملية؟ إذا كان لديك تطبيق يستخدم خادم COM معين (على سبيل المثال، Word) فقط، سوف تحتاج لاختبار ملقم آخر خارج العملية للتأكد من أن هذه المشكلة ليست بطبقة COM نفسه. إذا كان يمكن إنشاء أي ملقم COM خارج العملية على ذلك النظام، ملفات تثبيت من نظام OLE (انظر أدناه) أو يجب إعادة تثبيت نظام التشغيل حل المشكلة.

  • تحقق من رقم الإصدار لملفات النظام الخاصة ب OLE إدارة الأتمتة. هذه الملفات يتم عادة تثبيت كمجموعة ويجب أن يطابق أرقام البناء. أداة إعداد تكوينها بشكل صحيح عن طريق الخطأ تثبيت الملفات بشكل منفصل، مما يؤدي لتصبح متطابقة. لتجنب مشاكل التنفيذ التلقائي، يجب مراجعة الملفات للتأكد من مطابقة الملفات البنيات.

    سوف تجد ملفات التشغيل الآلي في الدليل Windows\System أو Winnt\System32. التالي هو القائمة الملفات للتحقق:


    +---------------+-------------+----------------+
    | 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 |
    +---------------+-------------+----------------+
    التحقق من إصدار الملف عن طريق النقر بالزر الأيمن فوق الملف في "مستكشف" وتحديد خصائص من القائمة المنبثقة. القيم الأكثر أهمية هي الأرقام الأربعة الأخيرة من إصدار الملف (رقم البنية) وتاريخ التعديل الأخير. تحتاج إلى التأكد من أن هذه القيم هي نفسها لكافة الملفات التنفيذ التلقائي.

    يرجى ملاحظة أن إصدار الأرقام والتواريخ المذكورة أعلاه على سبيل المثال أغراض فقط. قد تختلف القيم الخاصة بك. المهم أن هذه القيم التي تتطابق مع بعضها البعض، بدلاً من هذا الجدول.

    في حالة عدم تطابق الملفات إنشاء أرقام أو تواريخ معدلة، يمكنك تنزيل أداة استخراج الذاتي سيتم تحديث الملفات التنفيذ التلقائي. للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":

    290887 VBRun60sp6.exe تثبيت ملفات وقت التشغيل Visual Basic 6.0 SP6

  • يحتوي نظام التشغيل Windows NT 4.0 مشكلة معروفة مع بدء تشغيل ملقمات التنفيذ التلقائي التي تعيش في مجلد الذي يحتوي على مسافة مضمنة في الاسم، و/أو تشبه الأحرف الثمانية الأولى التي تماثل مجلد آخر. على سبيل المثال، قد تفشل ملقم الذين يعيشون في C:\Program Files\SomeFolder ابدأ أثناء استدعاء CreateObject إذا كان هناك مجلد آخر على نظام يسمى C:\Program Stuff\SomeFolder. لمزيد من المعلومات، راجع مقالة قاعدة المعارف التالية:للحصول على معلومات إضافية حول هذه المشكلة والخطوات لحل بديل، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":

    الخطأ 185126 : فشل في بدء تشغيل في نظام التشغيل Windows NT 4.0 ملقم COM/OLE

إعادة تثبيت Microsoft Office

حالة يساعد أي من الخطوات السابقة على حل المشكلة، حاول إلغاء تثبيت وإعادة تثبيت Microsoft Office. توصي Microsoft بإزالة تثبيت الإصدار الموجود أولاً، وثم إعادة تثبيته من قرص التثبيت الأصلي.

للحصول على قائمة كاملة من العناصر المراد إزالتها، الرجاء مراجعة مقالة قاعدة المعارف التالية:

219423 OFF2000: كيفية إزالة Microsoft Office 2000

158658 OFF97: كيفية إزالة Microsoft Office 97

المراجع

للحصول على معلومات إضافية حول رسالة الخطأ '429' استكشاف الأخطاء وإصلاحها، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":

240377 HOWTO: التأكد من صحة تثبيت Jet 3.5 (الجزء الأول)
للحصول على أحدث المعلومات والتعليمات البرمجية للنموذج فيما يتعلق بأتمتة Microsoft Office، الرجاء مراجعة موقع الدعم على إنترنت ل Microsoft على:

http://support.microsoft.com/ofd

هل تحتاج إلى مزيد من المساعدة؟

توسيع المهارات
استكشاف التدريب
الحصول على الميزات الجديدة أولاً
الانضمام إلى Microsoft Insider

هل كانت المعلومات مفيدة؟

ما مدى رضاك عن جودة اللغة؟
ما الذي أثّر في تجربتك؟

نشكرك على ملاحظاتك!

×