الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

وجاءت مشكلة التاريخ

مغلق
بدأه أحمد الحربي في 20 يناير 2003 · 42 رد · 2,522 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#26

يا جماعة نفس المشكلة نقع فيها و لا أدري كيف ..

أنا أعرف أن الاستعلامات يجب أن تكتب بطريقة معينة و هي نمط التاريخ الانكليزي ..أما لماذا و كيف فلا أعرف ..فهل عند أحدكم الحل

#27

وعليكم السلام أخي أبو هاجر

هذا المثال يوضح المشكلة بشكل دقيق

dbdateproblem.zip

#28

أخي الكريم أحمد الحربي

السلام عليكم

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

تحياتي

أخوك / أبو هاجر

db5.zip

#29

اخي أبو هاجر

للأسف لم يعمل معي المثال وهذه بعض الملاحظات :

Syntax error

Call EnumDateFormats(AddressOf EnumCalendarDateProc, LCID, DATE_LONGDATE)

Method or data member not found

thisCombo.AddItem StringFromPointer(lpDateFormatString)

مع تحيات أخيك أبو هادي

#30

أخي الكريم أبا هادي

السلام عليكم

المثال يعمل بشكل جيد على أكسس 2000 وأكسس إكس بي لكنه لا يعمل على أكسس 97 بسبب عدم دعم المعامل AddressOf في الـ VBA الخاصة بأوفيس 97

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

تحياتي

أخوك / أبو هاجر

db3444.zip

#31

أخي أبا هاجر

تخزين التاريخ على هيئة هجري .. هذا لا إشكال فيه وعملك صحيح

ولكن أنا أخزن التاريخ في القاعدة بعد تحويله إلى الميلادي هروباً من 30/12 الذي لا يقبله أكسس ويحوله إلى 1/1

أنا أريد أن أستعلم عن تاريخ ميلادي مخزن في الجدول

تحياتي لك .. والله تعبناك .. والله يعطيك الأجر ويعطيك الصبر

#32

أخي الكريم

السلام عليكم

التاريخ في المثال ميلادي كما أردت ولم أغير فيه كل ما فعلت هو أن المستخدم يقوم بإدخال تاريخ هجري ثم يتم تحويله إلى ميلادي والاستعلام به ويبقى التخزين بالميلادي

تحياتي

#33

مشاركة لزيادة الفائدة (بعد إذن استاذنا ابو هاجر)

أخي أحمد

1- اعتمدت في القاعدة التاريخ الهجري ثم في الجدول tblPersonal أدخلت التاريخ الميلادي، وهنا فإن الجهاز عامله على أنه تاريخ هجري، يعني عام 2003هـ وليس م. ولهذا لما غير تقويم القاعدة إلى الميلادي تحول إلى عام 2564 م الذي يقابل 2003 هـ .

وهذا ما أظنه أساس المشكلة عندك وقد صححه أبو هاجر كما ستلاحظ

2- إذا اعتمدت التاريخ الميلادي وخزنت التاريخ الميلادي فأنت في البحث بين أمرين :

الأول : أن تبحث مباشرة في الجدول ، وحينئذ عليك أن تبحث عن تاريخ ميلادي ، ولا يمكنك أن تبحث عن تاريخ هجري حتى تحوله إلى ميلادي .

الثاني : أن تبحث في استعلام تم تحويل التاريخ الميلادي فيه إلى تاريخ هجري ، وحينئذ عليك أن تبحث عن تاريخ هجري ، ولا يمكنك أن تبحث عن تاريخ ميلادي إلا بعد تحويله إلى تاريخ هجري .

طبعا يمكنك الجمع في الاستعلام بين التاريخين الهجري والميلادي ، والبحث بهما معا ، لكن لماذا ؟

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

4- سؤال : هل لما اعتمدت التاريخ الميلادي حلت مشكلة 30/12 ، أعني أن الظاهر أنك تريد عرض التاريخ الهجري ، فهل ستتمكن من عرض تاريخ 30/12 .

#34

الأستاذان الكريمان / أبا هاجر وحارث

بارك الله فيكما

فعلاً حين أزلت علامة استخدام التاريخ الهجري من بدء تشغيل استعلمت بالتاريخ الميلادي بالخيار الثاني في المثال وكل شيء تمام

عندما استخدمت فكرة تخزين التاريخ الهجري بعد تحويله إلى ميلادي كان همي الأول قبول 30/12/1424 وفعلاً نجحت الطريقة وقبلها بعد تحويلها إلى 2004/02/21 .. وما إن أخذت ألتقط بعضاً من أنفاسي حتى جاءت المشكلة الثانية والتي تفضلتم بحلها وشرحها .. ثما عدت مرة أخرى لألتقط ما تبقى لي من نفس فإذا التاريخ لا يعرض 30/12/1424

و كما قال الأستاذ حارث لم أتمكن من عرضها 30/12/1424 وإنما تعرض 01/01/1425 فما هو الحل

والله تعبت مع هذا البرنامج كله بسبب التاريخ .. أظن ما بقي إلا أن أستخدم التاريخ بنوع (نص) ثم الاستعلام عنه بعد تحويله إلى تاريخ .. وش رايكم

شكراً لك أخي أبي هاجر على ما بذلته من جهد ونصح

شكراً لك أخي حارث على التوضيح الرائع

#36

أخي الكريم أبو هاجر

أنا عاجز عن شكرك فأفضالك وسمينك الوافر طال الجميع جعله الله في ميزان حسناتك وأكرمك الله بالجنة .

اقتباس
المثال يعمل بشكل جيد على أكسس 2000

لقد قمت بتجربة المثال السابق على أكسس 2000 ولما واجهت المشاكل حولته إلى 97 وتكررت نفس الرسائل .. هذا للعلم فقط .

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

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

تحياتي للجميع

#37

أخي الكريم أبا هادي

السلام عليكم

الحقيقة أنني مستغرب أشد الاستغراب وهذه اللحظة قمت بتنزيل البرنامج من المنتدى مباشرة وجربته على كل من أكسس إكس بي وأكسس 2000 فعمل بشكل جيد

استبعد أن تكون المشكلة في اختلاف نظام التشغيل ، علماً بأن نظام التشغيل لدي هو إكس بي ، فما هو نظام التشغيل لديك

تحياتي

أخوك / أبو هاجر

#38

أخي أبو هاجر

نظام التشغيل لدي هو 98 .

تحياتي لك .

#39

أخي الكريم أبا هادي

السلام عليكم

حسناً يوم السبت ـ بإذن الله ـ سوف أجرب البرنامج على نظام التشغيل 98 وأخبرك بالنتيجة

لكن ما أخبار البرنامج بعد التعديل

تحياتي

أخوك / أبو هاجر

#40

أخي الفاضل أبو هاجر

البرنامج بعد التعديل يعمل بشكل ممتاز .

شكرا لك .

مع تحياتي .

#41

الأستاذان أبا هاجر وحارث

أبشركما أن البرنامج يعمل بشكل ممتاز ولكما الفضل في ذلك ..

وأما عن طريقة عرض 30/12 فإني جعلته يعرضها من خلال عبارة SELECT CASE

بحيث إذا كان التاريخ المدخل ميلادي يوافق 1/1/1425 فإنه يضع بدلاً عنه 30/12/1424 وأدخلت عدة تواريخ بدءاً من 30/12/1425 إلى 30/12/1433 وكل تاريخ يغيره أكسس إلى 1/1 جعلت بدلاً عنه 30/12

ما رأيكما في هذا الحل

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

فهل مشكلته فقط في 30/12 أم شيء آخر

تحياتي لكما

#42

ليست مشكلة ام القرى فقط في تواريخ نهاية السنة ، بل أكثر من ذلك :

فهناك مشكلة نهايات الأشهر بشكل عام ، ولنأخذ مثلا عام 1423

شهر 1وشهر 3وشهر 5وشهر 8وشهر 10 وشهر 12 كلها أشهر تامة حسب تقويم أم القرى ، فهل ستستطيع عرض تاريخ 30 منها كلها ، بالتأكيد لا .

وهناك مشكلة عدم التوافق مع الأيام ، يعني يوم 1/9/1423 في أم القرى هو يوم الأربعاء ، لكن حسب تقويم الهجري في الويندوز هو يوم الثلاثاء .

للاستزادة وبعض الحلول انظر الرابط :

قسم الدروس العملية وتطبيقاتها > خلاصة حول تقويم أم القرى

http://www.arabteam2000.com/vb/showthread....&threadid=17151

#43

على فكرة حول استخدام OR في عبارة SQL مع ADO أو DAO لم تنجح معي إذا كان المتغيرين من نوع long ففي المثال السابق كانا من نوع string فما هو العمل إذا كان المتغيران رقمين من نوع long

أرجوا كتابة كود يوضح ذلك ولكما تحياتي

هذا الموضوع مغلق.

مواضيع مشابهة