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

حاجة غريبة في التاريخ ! يالله حلوها .

مغلق
بدأه ميزان العدل في 22 سبتمبر 2005 · 28 رد · 2,888 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

إخواني

أرجو حل مشكلتي في النموذج

وهي انه عندي نموذج به مربع نص لكتابة التاريخ وأكتب به التاريخ تمام بدون اية مشاكل الا أنه عند كتابة التاريخ 30/10/1426 يقلب التاريخ الى 1/11/1426.

علما أن جميع التواريخ يكتبها صحيحة فقد جربت 30/11 و 30/12 و 30/9 و 20/10 وليس فيها أي مشكلة

فالبرنامج يكتبها كما أريد ....... الا تاريخ 30/10 يكتبها 1/11 .

فما هي المشكلة ؟

سؤالي الآخر...

كيف أكتب بعد كتابة التاريخ حرف ( هـ ) للهجري أو ( م ) للميلادي ؟

وشكرا مقدما للأخوة الزملاء .

#2

أين الأخوان ألا يوجد حل .

#3

الأخ / ميزان العدل

وعليكم السلام و رحمة الله وبركاته

مشكلة التاريخ الهجري

للأسف فمن عيوب نظام التشغيل أن التاريخ الهجري محفوظ دون مرونة التعديل

قم خلال مثالك يقوم النظام بالتعديل من تاريخ 30 - 10 إلى 1 -11 لأنه لاوجود للتاريخ 30-10 في ذاكرة النظام ولا يمكن تعديلة او اضافته.

الحل :

من الحلول اعتماد المبرمج على جدول من انشائة يحتوي جميع التواريخ الهجرية ، و يكون نوع الحقل نص وهذه الطريقة تجعلك تتنازل مرغماً على كل المرونة التي تتعامل بها آكسس في مجال التعامل مع التواريخ

القبول بأن التاريخ 30-10 هو 1-11 و اقناع المستفيد بصعوبة تحقيق ذلك دون جهد كبير

اعتماد التاريخ الميلادي مثلاً

كتابة التاريخ حرف ( هـ ) للهجري أو ( م ) للميلادي

لا تستطيع كتابة التاريخ حرف ( هـ ) للهجري أو ( م ) للميلادي على مربع نض مصدر بياناته حقل تاريخ

هناك حل

مرفق مثال بأسمك يا ميزان العدل

و بالتوفيق....

fair_balance.rar

#4

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

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

#5

استاذي مصلح الحريصي

اخي f11

بارك الله فيكم على هذا الشرح الوافي وكلامكم صحيح 100 %

اخي ميزان العدل

كما ذكر الاخوان في مشاركتهم يجب استخدام حقل نص بدلا من حقل تاريخ ووقت واريد ان ابلغك امرا اخر لا يقتصر الامر على التاريخ الذي ذكرته وهو 30 / 10 ويتحول الى 1 / 11 ولكن ازيدك واقول جرب ايضا 30 / 2 و 30 / 5 ستتحول مباشرة الى 1 / 3 و 1 / 6 وكل هذه المشاكل ان الاكسيس معتمد على تاريخ الويندوز الذي لا تستطيع تغييره

اختكم

زهره

#6

شكرا للأخو الكرام الأخf11 والأخ مصلح والأخت زهرة على هذه الفائدة والآن عرفت أن ذلك عيب في البرنامج

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

عموما الأخ مصلح والأخت زهرة أشاروا علي أن استخدام حقل نص بدلا من حقل تاريخ ووقت وقد جربت

ذلك لكن يجب أن أكتب السنة أولا ثم الشهر ثم اليوم . فإذا كتبت1/9/1426هـ وخرجت من المربع قلبها إلى 1426/9/1 هـ

فهل أنتم كذلك أو لديكم حل لهذا فاكتبوه لنا جزاكم الله خيراً .

وشكرا مرة أخرى .

#7

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

#8

انشا مودل جديد واكتب

Function convert_date(aa As TextBox)

Dim a, F As String

If aa.text = " " Then GoTo 100

If Len(aa.text) < 8 Then GoTo 100

a = aa.Value

If Mid(a, 4, 1) = "/" Then

F = Mid(a, 5, 1) + Mid(a, 6, 1) + Mid(a, 7, 1) + Mid(a, 8, 1) + "/" + Mid(a, 3, 1) + "/" + Mid(a, 1, 1): GoTo 110

ElseIf Mid(a, 2, 1) = "/" Then

F = Mid(a, 6, 1) + Mid(a, 7, 1) + Mid(a, 8, 1) + Mid(a, 9, 1) + "/" + Mid(a, 3, 1) + Mid(a, 4, 1) + "/" + Mid(a, 1, 1): GoTo 110

ElseIf Mid(a, 5, 1) = "/" Then

F = Mid(a, 6, 1) + Mid(a, 7, 1) + Mid(a, 8, 1) + Mid(a, 9, 1) + "/" + Mid(a, 4, 1) + "/" + Mid(a, 1, 1) + Mid(a, 2, 1): GoTo 110

Else

F = Mid(a, 7, 1) + Mid(a, 8, 1) + Mid(a, 9, 1) + Mid(a, 10, 1) + "/" + Mid(a, 4, 1) + Mid(a, 5, 1) + "/" + Mid(a, 1, 1) + Mid(a, 2, 1): GoTo 110

End If

110: aa.Value = F

100:

End Function

ثم اكتب في بعد التعديل لمربع النص الذي تريد كتابة التاريخ فيه

convert_date(اسم مربع النص)

هذه الكد صممته قبل ست سنوات وهو مضمون 100%

#9

شكرا لك اخي mah110011 على هذه المعلومة .... ولكن لو تشرح لي وتوضحها لي أكثر .

فأنت تقول : انشا مودل جديد ..... ماهو المودل ...... وأين أضع الكود ...... وهل ذكر اسم مربع النص داخل الكود .اسم مربع النص ؟

وأيضا تقول : ( ثم اكتب في بعد التعديل لمربع النص الذي تريد كتابة التاريخ فيه ) أين أكتب ذلك الكلام أو الكود ؟

وفي الختام شكرا لتعاونكم وسعة صدوركم وسامحوني إن أثفلت عليكم في الأسئلة ... فأنا أطمع في الاستزادة من علمكم .

#10

اخي الفاضل ميزان العدل

السلام عليكم ورحمة الله وبركاته

وكل عام وانتم بخير بهذا الشهر الكريم واسأل الله ان يتفبل منا ومنكم صالح الاعمال

اقتباس
لكن يجب أن أكتب السنة أولا ثم الشهر ثم اليوم . فإذا كتبت1/9/1426هـ وخرجت من المربع قلبها إلى 1426/9/1 هـ

1. اعرض النموذج في وضع التصميم واختر مربع النص المطلوب كتابة التاريخ به ثم اضغط بالماوس الايمن على هذا المريع واختر خصائصه

2. اختر من لوحة الخصائص التبويب بيانات ثم اختر قناع الادخال وضع به هذا التعبير "00/00/0000"&"هـ

اقتباس
شكرا لك اخي mah110011 على هذه المعلومة .... ولكن لو تشرح لي وتوضحها لي أكثر .

فأنت تقول : انشا مودل جديد ..... ماهو المودل ...... وأين أضع الكود ...... وهل ذكر اسم مربع النص داخل الكود .اسم مربع النص ؟

يقصد الاخ بإنشاء مودل جديد يعني وحدة نمطية جديده وتجدها اما في اطار قاعدة البيانات او من خلال اشرطة الادوات من ادراج

05_10_05_08_27_40_1128569260module.gif

قم بنسخ الكود كما هو وضعه في الوحدة النمطية الجديده

Function convert_date(aa As TextBox)
Dim a, F As String
If aa.text = " " Then GoTo 100
If Len(aa.text) < 8 Then GoTo 100
a = aa.Value
If Mid(a, 4, 1) = "/" Then
F = Mid(a, 5, 1) + Mid(a, 6, 1) + Mid(a, 7, 1) + Mid(a, 8, 1) + "/" + Mid(a, 3, 1) + "/" + Mid(a, 1, 1): GoTo 110
ElseIf Mid(a, 2, 1) = "/" Then
F = Mid(a, 6, 1) + Mid(a, 7, 1) + Mid(a, 8, 1) + Mid(a, 9, 1) + "/" + Mid(a, 3, 1) + Mid(a, 4, 1) + "/" + Mid(a, 1, 1): GoTo 110
ElseIf Mid(a, 5, 1) = "/" Then
F = Mid(a, 6, 1) + Mid(a, 7, 1) + Mid(a, 8, 1) + Mid(a, 9, 1) + "/" + Mid(a, 4, 1) + "/" + Mid(a, 1, 1) + Mid(a, 2, 1): GoTo 110
Else
F = Mid(a, 7, 1) + Mid(a, 8, 1) + Mid(a, 9, 1) + Mid(a, 10, 1) + "/" + Mid(a, 4, 1) + Mid(a, 5, 1) + "/" + Mid(a, 1, 1) + Mid(a, 2, 1): GoTo 110
End If
110: aa.Value = F
100:
End Function

اقتباس
وأيضا تقول : ( ثم اكتب في بعد التعديل لمربع النص الذي تريد كتابة التاريخ فيه ) أين أكتب ذلك الكلام أو الكود ؟

لنفرض ان لديك مربع نص اسمه Date

اذن اختر خصائص هذا المربع ثم اختر تبويب حدث ومنه اختر بعد التحديث ثم اضغط على السهم الصغير واختر اجراء حدث وستجد ايضا مربع صغير ذو ثلاث نقط 000 قم بالضغط عليه واكتب

05_10_05_09_06_47_1128571607date1.jpg

convert_date(Date)

اختكم

زهره

تم تعديل هذه المشاركة بواسطة zahrah في 6 أكتوبر 2005 في 07:01

#11

السلام عليكم ورحمة الله وبركاته ،،،

اخي ميزان العدل وهذي نقطة اضافية الى حلول اخواني السابقة،حاول عمل مايلي بعد تغيير الحقل الى نص

1- من الإعدادت الأقليمية للويندوز غير date separator فاصل التاريخ من / الى -

2-وغير قناع الإدخال في اي حقل تاريخ الى

99-99-9999;0;" "

ان شاء الله تكون هاالنقطة مفيدة

تحياتي

من مواضيعي

برنامج للكفالات والأقساط

برنامج لإدارة مؤسسة نقل الطالبات

بـــــرنامج الصراف الآلي

_______________________

سبحان الله وبحمده سبحان الله العظيم

#12

شكرا للأخت زهرة على الشرح الوافي وفقها الله لمرضاته .

علما أن أعرف وضع الوحدات النمطية وإنما سألت عن كلمة ( مودل ) ما معناها .

كما أنني أعرف حميع الخصائص لمربع النص ( كان يكفي أن تقولي بأن الكود يوضع في حدث بعد التحديث لمربع النص ) .

لكن كرمك وحرصك على نفع الاخرين جعلك تسهبين بالشرح جزاك الله بكل حرف تكتبينه خيرا كثيرا وأجرا وفيرا .

ومثالك الذي ذكرتي لي بأن أضع في قناع الادخال "00/00/0000"&"هـ لم ينجح ولا أعلم هل جربتي ذلك .

وكذلك حاولت عن طريق الكود الذي وضعه الأخ mah110011 ولم أفلح .

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

ووضعت في حدث بعد التحديث هذا الكود (convert_date(Date

ومع ذلك لم تنجح المحولة .

أرشدوني الى الحل بارك الله فيكم .

كما أشكر اخي dbprog على مساهمته في الحل ولكن ياأخي لا ارغب

في تغيير الاعدادات الاقليمية . كما أحب أن يأتي التاريخ بصيغة 00/00/00هـ

شكرا لك مرة أخرى . حاول معي لحل آخر.

#13

اخي العزيز فيه طريقه اخرى وهي بعد ان تسجل في قناع الادخال للنص

00/00/0000"هـ";;

واذا اردت ان تكتب التاريخ اكتب السنه ثم الشهر ولاحظ ان الشهر خانتين فاذا كان عدد الشهر مفرد تسجل صفر ثم اليوم كذالك

#14

اخي هناك حل ان شاء الله يساعدك في حل مشكلتك

وقد واجهتني مثلها تقريباً مع الكرستل ريبورت

وهي ان تذهب الى خيارات التاريخ والوقت وتختار تخصيص ومن ثم التاريخ وبعدها قم بضبط التاريخ في خانة ضبط التاريخ الهجري الى

لكي تتوافق مع التاريخ الهجري المنسق بالجهاز في فقرة التاريخ القصير ارجو ان تفيدك الصورة المرفقة

وارجو ان نسهم في حل مشكلتك ووفقك الله

post-29423-1129161481_thumb.jpg

158.gif

هناك فرق بين أن تكبر بالعمر

، و أن تكبر بالعقل
فالأولى ، إجباري
، والثانية اختياري .."
 
 

164684_514411088579476_442405016_n.jpg

#15

اخي ميزان العدل مدري انحلت معاك المشكلة ام لا

158.gif

هناك فرق بين أن تكبر بالعمر

، و أن تكبر بالعقل
فالأولى ، إجباري
، والثانية اختياري .."
 
 

164684_514411088579476_442405016_n.jpg

#16

أعتذر عن التأخير وذلك لمشاغل حصلت.... وشكرا على حرصكم على حل المشكلة بارك الله فيكم

كما أشكرالأخوة الذين ساهموا في ايجاد حل .

كما أشكر الأخوين lilili505lilili و الفوارس2000 على مشاركتهما .

ولكن أنا لا أريد أن أدخل السنة أولا ثم الشهر وأخيرا اليوم كما قال الأخ lilili505lilili . نريد طريق أكثر إيجابية

أما بالنسبة لما تفضل به للفوارس 2000 فأنا سبق أن قلت بأنني لا أريد حلا عن طريق التعديل في الاعدادات الاقيمية .

ارجو التفكير في حل أفضل.

!!!!!

!

!!!!!!!

أين الأخت المعلمة زهرة ؟ وكذلك الأخ mah110011 ؟ يفيدونا أكثر عن مساهمتهم في الحل

وكذلك مطلوب من الأخ مصلح الحريصي لو يتكرم ويشرح لنا هذه العبارة حيث يقول ( عموماً أنا من الذين يفضلون أستخدام نوع حقل التاريخ (( نص )) ...... كيف الطريقة يا أخ مصلح .

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

تم تعديل هذه المشاركة بواسطة ميزان العدل في 20 أكتوبر 2005 في 01:49

#17

السلام عليكم ..

مشاركة ومداخلة بسيطة ...

تستطيع أن تعمل ثلاثة حقول من نوع نص غير منضم في النموذج الأول لليوم والشهر والسنة ( الأول والثاني من خانتين والثالثة للسنة من أربع خانات )

ثم تجمعها في حقل نصي وتضع فارق بينهم ( / )

هذه من احد الطرق .

mk17481_26bccea871.gif
#18

السلام عليكم ...

هذا مثال على السريع ..... وتستطيع أن تعمل إضافات اخرى للتحكم والسيطرة على حقول التاريخ ....

Hj_date.rar

mk17481_26bccea871.gif
#19

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

سأرفق مثال على ذلك قريباً إن شاء الله .

تم تعديل هذه المشاركة بواسطة عبدالله سليمان2 في 22 أكتوبر 2005 في 16:39

#20

برفقه مثال تقويم أم القرى من إعداد الأخ أبو هادي هو باسم (UmAlQura_Samples_20050801.rar)

ومثال على استخدام نفس التقويم مع إضافة نموذج لتحويل التاريخ .

وطريقة الاستخدام هي :

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

وضع حقل نصي مكون من عشرة حروف .

في النموذج ولنفس الحقل السابق أضف حدثي قبل وبعد التحديث وإذا أردت فأضف حدث عند التغيير .

عندها يصبح لديك تقويم أم القرى من عام 1300 هـ إلى عام 1500 هـ .

كما يصبح لديك جميع دوال التاريخ مبرمجة خصيصاً لتقويم أم القرى مع دالة لتحويل بين الميلادي وتقويم أم القرى ، وطريقة كتابة الدوال هو كتابتها بنفس الاسم مسبوقة بحرفي UM .

UmAlQura_Samples_20050801.rar

تقويم أم القرى 18-9-1426.rar

#21

اشكر الأخوة الذين شاركوا بالرد ومحاولة ايجاد الحل .

كما أقول للأخ عبد الله سليمان: لقد حملت الملفين الذين أرفقتهما مشكورا

ولكن لم أستطع فتحهما حيث يعطي رسالة بأن الملف قد يكون أنشئ في إصدار جديد

علما أنني فتحتهما بواسطة أوفيس 2000 وكذلك أوفيس إكس بي 2003 ولكن بدون فائدة

تخرج نفس الرسالة .

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

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

أشكر الجميع لتفاعلهم

والسلام عليكم

تم تعديل هذه المشاركة بواسطة ميزان العدل في 26 أكتوبر 2005 في 02:07

#22

أينكم أيها الأخوة .... وخصوصاً صاحب الملفين ( تقويم أم القرى ) الأخ عبد الله سليمان ؟

#23

أخي ميزان العدل

القاعدة كانت بتنسيق اكسس 2003 - 2002 (اكس بي ).

وبرفقه نسخة ثانية بتنسيق اكسس 2000 وهي تشتغل بشكل تلقائي على اكسس 2002 .

#24

أخي ميزان العدل

القاعدة كانت بتنسيق اكسس 2003 - 2002 (اكس بي ).

وبرفقه نسخة ثانية بتنسيق اكسس 2000 وهي تشتغل بشكل تلقائي على اكسس 2002 .

تقويم أم القرى.rar

تم تعديل هذه المشاركة بواسطة عبدالله سليمان2 في 31 أكتوبر 2005 في 06:27

#25

عبد الله سليمان

الله يجزاك ألف خير أخي عبد الله وبارك في جهودك .

المثال رائع جداً واستفدت منه علما وخبرة.

.

ولكن يا أخي أنا أريد مربع نص منضم يكتب فيه التاريخ حتى يصدره إلى تقرير.

حيث اتضح أن الطريقة الذي ذكرت تعتمد على مربع نص غير منضم فكيف أستفيد منه لطباعة التقارير .

وشكرا لحرصك على نفع الآخرين .... وفقت لكل خير.

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

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