اصول التعامل الصحيح مع التاريخ في مايكروسوفت اكسس

عندما يتم التعامل مع التاريخ باستخدام محرر الكود VBA او باستخدام SQL في مايكروسوفت اكسس فان تنسيق التاريخ سيتغير الى التنسيق الامريكي MM/DD/YYYY مهما كانت اعدادات تنسيق التاريخ الخاصة بجهاز المستخدم.

يمكنكم مشاهدة الفيديو للحصول على الشرح التفصيلي او الاستمرار بقرأة الموضوع

ولمشاهدة مثال على ذلك يمكنكم اضافة تاريخ في معايير الاستعلام ثم مشاهدة SQL لهذا الاستعلام 
 
في كثير من الاحيان نجد ان الكود او الاستعلام لا يعمل بشكل صحيح فمثلا قد تطلب التواريخ التي بعد تاريخ 7/4/2016 ولكن الاستعلام او الكود يفهمها بشكل معكوس ويعطي النتائج لما بعد تاريخ 4/7/2016.
للتغلب على هذا الامر يجب علينا استخدام الدالة Format حتى نحول التاريخ الى الصيغة الامريكية ليتم التعامل معهة بالشكل الصحيح، وهنا يجب الانتباه ايضا الى فواصل التاريخ المستخدمة في اعدادات الوندوز فلو  استخدمنا اشارة "/" كفاصل فانه لا مشكلة في ذلك ولكن اذا تم استخدام "\" فان هذا سيسبب مشكلة وسيظهر لنا الخطأ رقم 3075 ولهذا سنستخدم الاشارتين "/" و"\" في التنسيق للدلالة على ان الفاصل متغير وبذلك سيكون متاح استخدام اي فاصل نريدة  .
فمثلا لو اردنا فتح نموذج معين بشرط اظهار السجلات بعد التاريخ الموجود في مربع النص Text0 سيكون الكود كما يلي:
VBA
DoCmd.OpenForm "students", , , "StDateOfBirth<" & Format$(Form_Form1.Text0, "\#mm\/dd\/yyyy\#")
او يكون ضمن دالة Dlookup او Dcount او Dlast او Dmin ... الخ وكما يلي:
VBA


DLookup("FieldName" , "TableName" , "Criteria= Format$(Date, "\#mm\/dd\/yyyy\#")





هناك تعليق واحد:

  1. السلام عليكم جزاك الله خيرا أخي إذا بأريد أسوي كود مثل السابق ولكن الفرق أن يكون بين تاريخين من تاريخ إلى تاريخ كيف يكون الكود شكرا لك

    ردحذف