كيفية استخدام ADOX مع بيانات Excel من Visual Basic أو VBA

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

اضغط هنا لرابط المقالة باللغة الانجليزية303814
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الموجز
ملحقات كائنات بيانات ActiveX للغة تعريف البيانات و الأمان (ADOX) يوفر للمطورين كائنات بيانات ActiveX (ADO) القدرات الموجودة في كائنات الوصول إلى البيانات (DAO) للتعامل مع قواعد البيانات "و" جداول "،" حقول "و" كائنات قاعدة بيانات أخرى برمجياً. منذ إصدار موفر Microsoft OLE DB إصدار Jet 4. 0، الذي يدعم برامج تشغيل ISAM يستخدم مشغّل Jet مع قواعد بيانات سطح المكتب أخرى غير Microsoft Access، تم قادراً على استخدام كل من ADO و ADOX مع مصنفات Microsoft Excel أو أوراق العمل مع مطوري ADO.

ومع ذلك، لأن ورقة عمل Excel غير قاعدة بيانات عادية ، ADO وجود بعض القيود عند استخدامه مع Excel. في خاص، العديد من أساليب ADOX إما لا تعمل أو يعطي نتائج غير متوقعة عند استخدامها مع Excel. المستندات هذه المقالة العديد من قيود ADOX و Excel. للحصول على معلومات إضافية حول الاستخدام ADO مع Excel ، انقر فوق رقم المقالة أدناه لعرضها في "قاعدة المعارف لـ Microsoft:
257819كيفية استخدام ADO مع بيانات Excel من Visual Basic أو VBA
يتم تقسيم هذه المقالة إلى المقاطع التالية:

ملاحظة: اختبار لـ تم إنجازه هذه المقالة في Microsoft Windows 2000 Server Service Pack 2 (SP2) مع Microsoft Data Access Components (MDAC) 2.6 SP1 و Microsoft Visual Basic 6 حزمة الخدمة SP5 Microsoft Excel 2002 (XP). قد لا تعرف هذه المقالة أو مناقشة الاختلافات في السلوك الذي قد مشاهدة المستخدمين مع الإصدارات المختلفة من Windows أو MDAC Visual Basic أو Excel.
معلومات أخرى

كتالوجات ADOX

في طراز كائن ADOX يمثل الكائن كتالوج قاعدة البيانات أو في حالة مصنف Excel.
  • يمكنك استخدام سلسلة اتصال أو كائن اتصال ADO لإنشاء أو فتح كائن كتالوج. يبين نموذج التعليمات البرمجية التالي كيفية فتح Book1.xls مثل ADOX كتالوج:
    Dim cat As ADOX.CatalogSet cat = New ADOX.Catalogcat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _    "Data Source=" & App.Path & "\book1.xls;Extended Properties=Excel 8.0"					
  • يحتوي أسلوب إنشاء كائن كتالوج ولكن لا يتوفر أسلوب حذف.

إنشاء كتالوج

لا يمكنك استخدام الأسلوب إنشاء كائن ADOX كتالوج لإنشاء مصنف Excel جديد. إذا حاولت القيام بذلك تتلقى رسالة الخطأ التالية:
العملية غير معتمدة لنوع الكائن هذا.
ومع ذلك، يمكنك إنشاء مصنف Excel جديد عن طريق تحديد اسم ملف مصنف جديد الخاص بك كتالوج إلحاق جدول واحد على الأقل إلى كتالوج جديد باستخدام التقنيات الموضحة أدناه. ينشئ هذا الأسلوب مصنف جديد مع أوراق العمل التي أنشأتها الجداول ADOX فقط; بمعنى آخر، لا سيتم إضافة العدد الافتراضي من أوراق فارغة تحديد مصنف Excel جديد خلال مربع الحوار خيارات Excel.

جداول ADOX

كائن ADOX جدول يطابق أي من الكائنات Excel (أي، ورقة عمل أو نطاق) التي يمكن أن يعمل كحاوية البيانات.

إنشاء جدول

يمكنك استخدام ADOX لإنشاء جداول جديدة في Excel. لأنه لا يمكنك إنشاء جدول بدون أيضاً إنشاء أعمدة ، يظهر نموذج التعليمات البرمجية في المقطع "ADOX Columns".
  • إنشاء جدول ADOX جديد إنشاء كل ورقة عمل جديدة و نطاق مسمى جديد على ورقة جديدة مع الاسم المحدد. يمتد نطاق مسمى جديد عناوين الأعمدة. على سبيل المثال، إذا قمت بإنشاء جدول (ورقة) يسمى الجدول ذات عمودين نطاق مسمى الجدول يعرف الجدول! $ A $ 1: $ B $ 1, يتم إنشاء أيضاً.
  • يمكنك تحديد اسم جدول يتضمن مسافة; ومع ذلك، تستبدل ADOX المساحة بتسطير أسفل السطر (_) في ورقة عمل واسم نطاق التي تقوم بإنشائها.
  • يتم إنشاء ورقة عمل جديدة باسم الورقة الأخيرة في المصنف التالية العدد الافتراضي فارغة الأوراق المحددة في خيارات Excel عن مصنف جديد.
  • إذا حاولت إنشاء جدول جديد عندما يكون المصنف مفتوحاً في Excel تتلقى رسالة الخطأ التالية:
    خطأ غير محدد.
  • إذا حاولت إنشاء جدول يحتوي على لم أعمدة معرفة ويظهر لنجاح لكن في الواقع يتم إنشاء أي شيء.
  • عند محاولة تغيير اسم جدول موجود تتلقى رسالة الخطأ التالية:
    العملية غير معتمدة لنوع الكائن هذا.

حذف جدول

لا يمكن استخدام ADOX لحذف جدول (ورقة) أو نطاق في Excel، مسمى ADOX بإنشائه أم لا.
  • إذا حاولت حذف ورقة العمل (الجدول $) يظهر لنجاح بدون خطأ ولكن يبقى ورقة العمل في المصنف. يمكن استدعاء الأسلوب "حذف" بشكل متكرر بدون خطأ ولكن لن يكون له أي تأثير.
  • إذا حاولت حذف النطاق (الجدول) يظهر لنجاح بدون خطأ ولكن يبقى النطاق في المصنف. ومع ذلك، إذا حاولت حذف النطاق مرة ثانية تظهر رسالة الخطأ 3265:
    لا يمكن العثور على العنصر في المجموعة المطابق الاسم المطلوب أو ترتيبي.
  • إذا حاولت حذف نطاق مسمى أن تتركه تعريف نطاق مسمى سليمة ولكن يتم حذف أية بيانات في النطاق.

أعمدة ADOX

أعمدة ADOX تتوافق مع الأعمدة أو الحقول في قاعدة بيانات وتطابق بوضوح إلى الأعمدة من ورقة عمل Excel.

أنواع بيانات ADO المستخدمة بواسطة Excel

يتعرف ADO ستة أنواع البيانات في مصدر بيانات Excel "التي يمكنك استخدامها لإنشاء أعمدة:

  • adDouble ، اكتب 5
  • adDate ، اكتب 7
  • adCurrency ، اكتب 6
  • adBoolean ، اكتب 11
  • adVarWChar ، اكتب 202
  • adLongVarWChar ("المذكرة") ، اكتب 203

الأعمدة في عام

  • يمكنك إلحاق أعمدة إضافية إلى جدول إنشاؤها مسبقاً طالما لا يحتوي الجدول على أية صفوف من البيانات.
  • يمكنك تحديد أسماء الأعمدة التي تتضمن مسافات.
  • ينشئ ADOX دوماً رؤوس الأعمدة التي تكون مسبوقة بـ علامة اقتباس مفردة (') ، على سبيل المثال، 'F1،' عمود1 ، ' عمود2. على الرغم من ذلك، هذا لا يبدو تسبب مشكلة فيما بعد استرداد الاسم بدون علامة اقتباس.

إنشاء أعمدة عند إنشاء جدول

إنشاء أعمدة يعمل بشكل أفضل عند انتهاء في نفس الوقت الذي يتم إنشاء جدول جديد باستخدام ADOX.

تعمل التعليمة البرمجية التالي على إنشاء جدول جديد (ورقة) الذي يحتوي على عمودين (الرقمية واحد والنص واحد):
    Dim cat As ADOX.Catalog    Dim tbl As ADOX.Table    Dim col As ADOX.Column    Set cat = New ADOX.Catalog    cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _	"Data Source=" & App.Path & "\book1.xls;Extended Properties=Excel 8.0"    Set tbl = New ADOX.Table    tbl.Name = "TestTable"    Set col = New ADOX.Column    With col        .Name = "Col1"        .Type = adDouble    End With    tbl.Columns.Append col    Set col = Nothing    Set col = New ADOX.Column    With col        .Name = "Col2"        .Type = adVarWChar    End With    tbl.Columns.Append col    cat.Tables.Append tbl				

إنشاء أعمدة في ورقة موجود

إلحاق أعمدة pre-existing ، بإنشاء ورقة عمل فارغة نتائج معتادة. عندما يتم إلحاق العمود ADOX الأول إلى مجموعة أعمدة الجدول ، ADOX أولاً بإنشاء رأس عمود المسمى F1 في العمود A ورقة العمل ثم ثم يقوم بإنشاء رأس العمود ADOX جديد في العمود B ورقة العمل. وبالتالي، يؤدي رمز ADOX الذي يقوم بإلحاق عمودين جديدة في رؤوس الأعمدة الثلاثة. إذا حاولت حذف غير مرغوب فيه العمود الأول من مجموعة Columns قبل إلحاق العمود ADOX الأول ويظهر في عملية بنجاح لكن يتم إنشاء العمود غير المرغوب فيها nonetheless.

حذف أعمدة

لا يمكنك حذف عمود من جدول ADOX في Excel.
  • إذا كان العمود يحتوي على أية بيانات يظهر هذا لنجاح بدون خطأ لكن تظل "العمود" و "رأس العمود.
  • إذا كان العمود يحتوي على البيانات فشل عملية الحذف مع ظهور رسالة الخطأ التالية:
    عملية غير صالحة.

تغيير نوع البيانات للعمود موجود

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

إضافة البيانات إلى Excel جداول وأعمدة

عندما تقوم باختباره، رمز ADO مع Excel في بيئة تصميم Visual Basic في المرة الأولى التي تقوم بتشغيل عملية مجموعة سجلات قد تتلقى رسالة الخطأ التالية:
تحديد تسلسل الدمج غير معتمدة من قبل نظام التشغيل.
يمكن تجاهل رسالة الخطأ هذه; لا يحدث هذا الخطأ بعد التحويل البرمجي للتطبيق. للحصول على معلومات إضافية، انقر فوق رقم المقالة أدناه لعرضها في "قاعدة المعارف لـ Microsoft:
246167PRB: ترتيب تسلسل خطأ فتح ADODB Recordset الوقت الأول مقابل Excel XLS

إضافة البيانات إلى Excel الأعمدة التي إنشاء بواسطة ADOX

عند استخدام ADO إدراج أو تعديل البيانات في الجداول والأعمدة التي تم إنشاؤها في Excel باستخدام ADOX يتقيد ADO أنواع البيانات التي حددتها لـ هذه الأعمدة على الرغم من عدم مسح حيث يتم تخزين هذه المعلومات.
  • يتم تخزين كافة قيم سلسلة النص مسبوقة علامة اقتباس مفردة. على الرغم من ذلك، هذا لا يبدو تسبب مشكلة فيما بعد استرداد القيمة بدون علامة اقتباس.
  • إذا حاولت إدراج سلسلة نصية في عمود تم تعريفه الرقمية أو رقم إلى عمود نص تظهر 80040e21 الخطأ:
    إنشاء عملية متعددة الخطوات أخطاء. تحقق من كل قيمة حالة.

إضافة البيانات إلى أعمدة Excel العادية

عند استخدام ADO إدراج أو تعديل البيانات في أوراق عمل Excel أو النطاقات التي يتم إنشاؤها أو تعديلها باستخدام ADOX يتم فرض أية قيود على نوع البيانات التي يمكنك إدراجها.
  • يتم تخزين سلاسل نصية بدون علامة اقتباس مفردة السابق.
  • تظهر الأرقام محاذاة إلى اليمين. في Excel 2002، يتم وضع علامة أرقام مع "العلامة الذكية" التي يحذر "الأرقام المخزنة كنص". قد يؤدي هذا مشكلة فيما بعد عند العمل مع البيانات ، خاصة إذا كان قد تم تخزين البيانات في Excel لتحليلها رقمية.

استخدام CREATE SQL و ALTER DROP العبارات

يمكنك تشغيل Microsoft SQL بيانات تعريف اللغة (DDL) عبارات مثل CREATE و ALTER DROP مقابل كائنات قاعدة بيانات Excel عبر ADO اتصال العائد نفس النتائج عند الطرق ADOX المطابق الموضحة أعلاه.

نهاية

  • ADOX يعمل بشكل أفضل مع Excel عند جدول جديد ثم يتم كافة أعمدته من إنشاء في نفس الوقت.
  • يعمل ADO بشكل أفضل مع بيانات Excel عند تخزين البيانات في ورقة عمل التي تم إنشاؤها باستخدام ADOX.
نوع بيانات جدول البيانات القابلية للتوسعة

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 303814 - آخر مراجعة: 12/06/2015 04:03:02 - المراجعة: 2.2

Microsoft Data Access Components 2.0, Microsoft Data Access Components 2.1, Microsoft Data Access Components 2.5, Microsoft Data Access Components 2.6, Microsoft Data Access Components 2.7

  • kbnosurvey kbarchive kbmt kbdatabase kbhowto kbiisam KB303814 KbMtar
تعليقات