الأخوة الكرام
واجهتني مشكلة غريبة أول مرة تحصل معي وهي أنني كنت مركب أوفس اكس بي في جهازي واحتجت لتركيب أوفس 2000 لتطبيق بعض الأمثلة فقمت بتركيب الـ 2000 مع التعريب و2002 موجود ومركب قبل ذلك فلخبط علي بعض الخطوط في بعض القواعد وليست هذه المشكلة فقد غيرت الخط وسار كل شي على مايرام ، المشكلة أنه عند حدوث خطأ في الكود يتحول التاريخ في القاعدة الى ميلادي في كلا الإصدارين 2000 و2002 كيف ؟ مثال إذا كان لدي مربع نص به تاريخ هجري وقد وضعت رسالة Msgbox تظهر التاريخ من هذا الحقل أجد بعد الخطأ تحول التاريخ إلى ميلادي مثال 1/1/1422 يتحول إلى 5/4/2000 في الرسالة فقط دون مربع النص فرجعت إلى بدء التشغيل في 2000 فوجدت الاختيار هجري ورجعت الى اعدادات دولية في 2002 فوجدت الاختيار هجري فقلت المشكلة أكيد بسبب تركيب 2000 فحذفته ولم تحل المشكلة فحذف 2002 واعدت تركيبه فلم تحل المشكلة فحذفته مره أخرى وركبت 2000 ونفس النتيجة ففرمت الجهاز كله وركبت 2000 ونفس النتيجة فركبت فوقه 2002 ولم يتغير شيئ ففرمت الجهاز مرة أخرى وركبت 2000 قبل تركيب أي برنامج ولم يتغير شيء .
للتأكد من هذه المشكلة اجعل في حدث النقر على زر الأمر التالي :
Msgbox Date()
ستجد التاريخ يظهر بالهجري إذا كان اختيارك لتاريخ القاعدة هجري ، أضف بعد السطر السابق أي حرف ليكون كالتالي :
Msgbox Date()
e
سيعطيك رسالة خطأ انقر Debug ثم أوقف الإجراء وأزل الحرف ثم شغل الإجراء مرة ثانية وانظر التاريخ .
المشكلة في هذا أنني عملت Recordest لعبارة استعلام والمعيار يستند على قيمه في النموذج ففي الاستعلام العبارة من أحسن ما يكون وعند فتحها بـ DAO تعطي نتيجة خاطئة ولأتاكد من ذلك قمت بجعل المعيار في استعلام تاريخ بين ## ونسخت العبارة وألصقتها في الوحدة النمطية للنموذج فتحول التاريخ الهجري السابق المكتوب بين ## إلى ميلادي وهذا الذي فسر عدم الحصول على أي سجلات عند تشغيل العبارة بـ DAO .
ارجو ممن لديه حل أي يفرغ من وقته دقائق ليبين السبب علماً أنني جربت المشكلة على جهاز آخر مركب عليه نفس الأوفس 2002 فأعطى نفس المشكلة وقد أشغلتني وأخذت من وقتي الكثير .
وآسف على الإطالة ولكن أحببت أن أوضح المشكلة بالتفصيل .
ولكم تحياتي
إضافة :
جربت الكود الذي ذكره أحدهم نسيت من هو :
Calendar = vbCalHijri
ووجدت أنه يعطي التاريخ صح في مثل هذا المثال :
Msgbox Forms![اسم النموذج]![مربع نص]
وأما الـ DAO فنفس المشكلة .
ووضعت :
Msgbox Calendar
قبل وبعد الخطأ فرأيتها متغيرة .
آخر تجربة عملتها قمت بوضع التاريخ الميلادي في عبارة SQL كمعيار لحقل تاريخ هجري فأعطاني النتيجة صح !!!
ماهو رأيكم هل السبب في 2000 علما أن تحميلي الأخير كان من نسخة أخرى .
ولكم تحياتي