استعلامات الوصول مع حرف بدل لا تصدير البيانات إلى مستند XML


الخطا رقم: 8808 (صيانة المحتوي)الخطا #: 232596 (officenet) تنطبق هذه المقالة فقط علي قاعده بيانات Microsoft Access (.mdb).معتدل: يتطلب مهارات الماكرو الاساسيه والترميز وامكانيه التشغيل المتداخل.

الأعراض


عندما تقوم بتصدير استعلام Access إلى مستند XML ، ويحتوي الاستعلام علي حرف بدل Microsoft Jet مثل العلامة النجميه (*) في المعايير ، لا يتم تصدير البيانات إلى مستند XML. لذلك ، لا يحتوي مستند XML الناتج علي إيه بيانات. يعمل الاستعلام بشكل صحيح إذا قمت بتشغيل نفس الاستعلام باستخدام Access.

السبب


يحدث هذا السلوك عند التصدير إلى XML. يستخدم XML كائنات بيانات ActiveX (ADO) للاستعلام عن البيانات من قاعده البيانات. عند استخدام حرف بدل Jet الخاصة في استعلام Access ، الاستعلام بإرجاع إيه سجلات. تحدث هذه المشكلة لان ADO يتعرف فقط علي أحرف البدل 92 معهد المعايير الوطنية الامريكيه (ANSI).

الحل البديل


كمحاولة للتغلب علي هذه المشكلة استخدم أحدي الطرق التالية.

الطريقة الأولى

يمكنك أعاده كتابه الاستعلام لاستبدال حرف البدل Jet الخاصة بحرف البدل ANSI 92. علي سبيل المثال ، قد يتشابه الاستعلام الأصلي مع هذا مع حرف البدل *:
SELECT Customers.CustomerIDFROM CustomersWHERE (((Customers.CustomerID)  Like "A*"));
يمكنك أعاده كتابه الاستعلام كما يلي:
SELECT Customers.CustomerIDFROM CustomersWHERE (((Customers.CustomerID)  Like "A%"));
ملاحظه إذا لم يتم تكوين قاعده بيانات Access ANSI 92 التوافق ، عند تشغيل الاستعلام أعاده كتابه من Access ، يتم إرجاع إيه بيانات. ومع ذلك ، مستند XML الذي تم تصديره استنادا إلى الاستعلام أعاده كتابته بإرجاع النتائج المتوقعة.

الطريقة الثانية

يمكنك أعاده كتابه الاستعلام بحيث لا يحتوي معيار الاستعلام علي أحرف البدل. علي سبيل المثال ، قد يتشابه الاستعلام الأصلي مع هذا مع حرف البدل *:
SELECT Customers.CustomerIDFROM CustomersWHERE (((Customers.CustomerID)  Like "A*"));
يمكنك أعاده كتابه الاستعلام كما يلي:
SELECT Customers.CustomerIDFROM CustomersWHERE Left(CustomerID,1) = "A";

الطريقة 3

عند تصدير البيانات إلى مستند XML ، يمكنك تحديد ما إذا كنت تريد تطبيق عامل تصفيه موجود علي الكائن ام لا. بدلا من تحديد حرف بدل في معايير الاستعلام يمكنك إنشاء عامل تصفيه مع سلسله عامل التصفية مكافئ المعايير التي تريدها (مثل "A *") ثم قم بتطبيق عامل التصفية هذا اثناء عمليه تصدير XML. للقيام بذلك ، اتبع الخطوات التالية ، اعتمادا علي إصدار Access.

الوصول 2003

  1. فتح نموذج قاعده بيانات Northwind.
  2. من القائمة ادراج ، انقر فوق استعلام.
  3. في مربع الحوار استعلام جديد ، حدد طريقه العرض "تصميم" ثم انقر فوق موافق.
  4. من القائمة عرض ، انقر فوق عرض SQL.
  5. في اطار الاستعلام ، ألصق الاستعلام التالي:
    SELECT Customers.CustomerIDFROM Customers;
    ملاحظه يمكنك ان تري ان يتم أزاله معيار الاستعلام. لذلك ، لا يحتوي الاستعلام علي إيه أحرف بدل.
  6. من القائمة ملف ، انقر فوق حفظ.
  7. في المربع اسم الاستعلام من مربع الحوار حفظ باسم ، اكتب Query1ثم انقر فوق موافق.
  8. من القائمة عرض ، انقر فوق طريقه عرض ورقه البيانات.
  9. من القائمة سجلات ، أشر إلى تصفيهثم انقر فوق تصفيه/فرز متقدمة.
  10. في قائمه الحقول ، حدد معرف العميل.
  11. في مربع المعايير تحت معرف العميل، ألصق التعليمه البرمجية التالية:
    Like "A*"
  12. في القائمة تصفيه ، انقر فوق تطبيق عامل تصفيه/فرز.
  13. من القائمة ملف ، انقر فوق حفظ.
  14. من القائمة ملف انقر فوق إغلاق.
  15. في الإطار " قاعده بيانات " ، انقر فوق استعلامات.
  16. انقر بالزر الأيمن Query1، ومن ثم انقر فوق تصدير.
  17. في مربع الحوار تصدير استعلام ' Query1 ' إلى ، حدد XML في القائمة حفظ بنوع ، ثم انقر فوق تصدير.
  18. في مربع الحوار تصدير XML ، انقر فوق خيارات اضافيه.
  19. في مربع الحوار تصدير XML ، حدد علامة التبويب بيانات . ضمن السجلات للتصدير، انقر لتحديد خانه الاختيار تطبيق عامل التصفية الموجود ثم انقر فوق موافق.

الوصول 2007

  1. فتح نموذج قاعده بيانات Northwind.
  2. علي علامة التبويب إنشاء ، انقر فوق تصميم الاستعلامثم انقر فوق إغلاق.
  3. ضمن علامة التبويب " تصميم " ، انقر فوق عرض SQL في المجموعة نتائج .
  4. في اطار الاستعلام ، ألصق الاستعلام التالي:
    SELECT Customers.[First Name]FROM Customers;
    ملاحظه يمكنك ان تري ان يتم أزاله معيار الاستعلام. لذلك ، لا يحتوي الاستعلام علي إيه أحرف بدل.
  5. انقر فوق زر Microsoft Office، ثم انقر فوق حفظ.
  6. في المربع اسم الاستعلام من مربع الحوار حفظ باسم ، اكتب Query1ثم انقر فوق موافق.
  7. ضمن علامة التبويب الصفحة الرئيسية ، في المجموعة طرق العرض ، انقر فوق طريقه العرض، ثم انقر فوق طريقه عرض ورقه البيانات.
  8. ضمن علامة التبويب الصفحة الرئيسية ، انقر فوق خيارات متقدمة في الفرز & تصفيه المجموعة ، ثم انقر فوق تصفيه/فرز متقدمة.
  9. في قائمه الحقول ، حدد الاسم الأول
  10. في مربع المعايير تحت الاسم الأول، ألصق التعليمه البرمجية التالية:
    Like "A*"
  11. ضمن علامة التبويب الصفحة الرئيسية ، انقر فوق خيارات متقدمة في الفرز & تصفيه المجموعة ، ومن ثم انقر فوق تطبيق عامل تصفيه/فرز.
  12. انقر فوق زر Microsoft Office، ثم انقر فوق حفظ.
  13. انقر بالزر الأيمن Query1، أشر إلى تصدير، انقر فوق ملف XML، ثم انقر فوق موافق.
  14. في مربع الحوار تصدير XML ، انقر فوق خيارات اضافيه.
  15. في مربع الحوار تصدير XML ، انقر فوق علامة التبويب بيانات .
  16. ضمن السجلات للتصدير، حدد الخيار تطبيق عامل التصفية الموجود ثم انقر فوق موافق.
  17. في مربع الحوار تصدير ملف XML ، انقر فوق إغلاق.

الحالة


أكدت microsoft ان هذا خطا في منتجات Microsoft المسرده في بداية هذه المقالة.

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


خطوات أعاده إنشاء المشكلة في Access 2003

  1. فتح نموذج قاعده بيانات Northwind.
  2. من القائمة ادراج ، انقر فوقاستعلام.
  3. في مربع الحوار استعلام جديد ، حددطريقه العرض "تصميم " ثم انقر فوق موافق.
  4. من القائمة عرض ، انقر فوق عرض SQL.
  5. في اطار الاستعلام ، ألصق الاستعلام التالي:
    SELECT Customers.CustomerIDFROM CustomersWHERE (((Customers.CustomerID)  Like "A*"));
  6. انقر فوق حفظ في القائمة ملف.
  7. في المربع اسم الاستعلام في مربع الحوارحفظ باسم ، اكتبQuery1.
  8. من القائمة ملف ، انقر فوقإغلاق.
  9. انقر بالزر الأيمن Query1 ومن ثم انقر فوق تصدير.
  10. في مربع الحوار تصدير الاستعلام ' Query1 ' إلى... ، حدد XML في القائمة حفظ بنوع ثم انقر فوق تصدير.
  11. في مربع الحوار تصدير xml ، انقر فوقموافق لحفظ الملفات المتعلقة ب xml في الموقع الافتراضي.
  12. في Microsoft Internet Explorer ، افتح ملف XML الذي تم تصديره. يمكنك ان تري ان ملف XML الذي تم تصديره والذي يستند إلى الاستعلام المحدد لا يحتوي علي إيه سجلات.

المراجع


لمزيد من المعلومات حول بناء جمله ANSI 92 ، اكتب حول وضع استعلام ansi sql في مساعد Office ثم انقر فوق بحث.