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

تغيير المرحلة بعد مرور عام

بدأه عبير الزهور في 23 ديسمبر 2012 · 16 رد · 1,479 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخواني الأفاضل الكرام كيف حالكم واحوالكم؟؟

قمت بعمل برنامج رياض اطفال يحتوي على مرحلة (الحضانة و الروضة و التمهيدي,, بالترتيب) وبعد اجتياز الطفل هذه المراحل يتخرج

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

بأنتظاركم اساتذتي الأفاضل

post-254477-033218000 1356260294_thumb.p

post-254477-088489600 1356260307_thumb.p

روضة السرور (2).rar

المرفقات
11.png22.png
#2

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

أختي أو أخي عبير الزهور user_popup.png

ياريت تراجع نصائح تصميم قواعد البيانات الموجودة في هذا المنتدى بعناية

خصوصاً فيما يتعلق بالتسميات العربية وتصميم الجداول

على كل حال إليك التعديل المطلوب

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

post-212280-091384800 1356324614_thumb.j

روضة السرور (2)Ey.rar

المرفقات
z1.jpg
2

عَـجِبْتُ لِمَنْ يَتَفَكَّـرُ فى مَـأْكُولِهِ كَيْـفَ لا يَتَفَـكَّـرُ فى مَعْـقُـولِهِ، فَيُجَنِّبُ بَطْنَهُ ما يُؤْذيهِ، وَ يُودِعُ صَدْرَهُ ما يُرْدِيهِ

(الحسن بن علي بن أبي طالب)

#3

السلام عليكم

الاخ اياد جزاك الله خير و بارك الله بيك

ممكن تعمل المثال على قاعدة ثانية

وفقط تعمل الحقول المختصة

وبعض التوضيح واكون شاكر لك

وتستاهل احلى تقييم +1

تحياتي

تم تعديل هذه المشاركة بواسطة سلامنا لكم في 24 ديسمبر 2012 في 09:33

#4

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

أخي الكريم سلامنا

طبعاً من حيث المبدأ هناك عدة حلول باستخدام الاستعلامات أو التعليمات البرمجية أو من داخل النموذج ذاته

وكتغيير أحببت أن يكون الحل هنا من داخل الاستعلام لأن من مميزات الاستعلام الكثيرة جداً أنك تستطيع استخدامه كمصدر لنماذجك وتقاريرك

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

على كل حال إذا طالب أحد الأخوة بالشرح فسأنزل عند رغبتكم وسأقوم بعمل شرح تفصيلي للحل

وربما إذا توفر لي بعض الوقت ربما أقوم بعمل حل آخر باستخدام التعليمات البرمجية

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

تم تعديل هذه المشاركة بواسطة إياد بيك في 24 ديسمبر 2012 في 11:22

1

عَـجِبْتُ لِمَنْ يَتَفَكَّـرُ فى مَـأْكُولِهِ كَيْـفَ لا يَتَفَـكَّـرُ فى مَعْـقُـولِهِ، فَيُجَنِّبُ بَطْنَهُ ما يُؤْذيهِ، وَ يُودِعُ صَدْرَهُ ما يُرْدِيهِ

(الحسن بن علي بن أبي طالب)

#5

السلام عليكم

الاخ اياد جزاك الله خير على الرد

مارايك بهذا المثال البسيط الغير معقد الذي عملتة؟

واسالك على الدالة switch

هل تعمل عمل دالة IIF؟

ومشكور

post-252239-052945600 1356344067_thumb.j

NewStage2.rar

المرفقات
NewStage2.JPG

تم تعديل هذه المشاركة بواسطة سلامنا لكم في 24 ديسمبر 2012 في 13:14

#6

والله مجهود مبارك منن الاخت عبير الزهور , وكذلك استخدام ذكي للاستعلام من اياد البيك واتمنى يشرح الطريقة لان صراحة انا حاولت ان احلها باستخدام if الشرطية بس حلك عجبني كثييير موفقين اخوتي الاعزاء

تم تعديل هذه المشاركة بواسطة كرار الحلو في 24 ديسمبر 2012 في 12:16

#7

السلام عليكم

الاخ اياد

وهذا مثالان الاول عن طريق النموذج

والاخر عن طريق الكود البرمجي

post-252239-048175800 1356344920_thumb.j

NewStage4.rar

post-252239-068681800 1356345066_thumb.j

NewStage3.rar

المرفقات
NewStage3.JPGNewStage4.JPG

تم تعديل هذه المشاركة بواسطة سلامنا لكم في 24 ديسمبر 2012 في 13:34

#8

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

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

بداية وقبل كل شيئ وبعد "بسم الله الرحمن الرحيم" وفنجان القهوة يجب أخذ الوقت الكافي لدراسة جميع الحالات الممكنة (كل احتمالات المعطيات) لأي مسألة تواجهنا

والإلمام الكامل بمتغيراتها واستيعابها بالكامل

يكون ذلك قبل التفكير بالحل وهذه العملية جداً مهمة وقد توفر الكثير من الجهد والوقت

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

فمثلاً في مثالنا هنا ومما ذكرته الأخت عبير الزهور في مشاركتها فإن الترتيب هو كالتالي :

1 – حضانة

2- روضة

3-تمهيدي

4-تخرج

وبالتالي أول شئ يجب أن ألتزم به هو هذا الترتيب

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

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

وكان الغرض من استخدام تعليمة Switch هنا هو تقديم حلول غير اعتيادية للأخوة الأعضاء والتعرف على واحدة من إمكانيات الأكسس الضخمة

الموضوع هنا ليس في استخدام IIF أو Switch بل الموضوع في الطريقة المنطقية لمعالجة المشكلة

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

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

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

الحقل StageID:

Switch([stage]="حضانة";1;[Stage]="روضة";2;[Stage]="تمهيدي";3;[Stage]="تخرج";4)

طبعاً هنا إذا أردنا استخدام IIf فإن التعليمة ستصبح

IIf([stage]="حضانة";1;IIf([stage]="روضة";2;IIf([stage]="تمهيدي";"3";IIf([stage]="تخرج";4))))

بالنسبة للمعطى الثاني وهو تاريخ التسجيل فإنني قمت بتحويله إلى رقم بعدد سنوات التسجيل في روضتنا العجيبة YearDiff:

DateDiff("yyyy";[تاريخ التسجيل];Date())]

وبجمع الحقلين السابقين أتوصل إلى قيمة المرحلة الجديدة

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

NewStage:

Switch([YearCal]=1;"حضانة";[YearCal]=2;"روضة";[YearCal]=3;"تمهيدي";[YearCal]>3;"تخرج")

أيضاُ هنا يمكننا استخدام iif

أرجو أن أكون قد وفقت بتقديم شرح بسيط للحل

وسلامي للجميع

post-212280-088535400 1356349810_thumb.j

post-212280-066871900 1356349814_thumb.j

هو فعلياً لتحويل "المرحلة القديمة" إلى قيمة وطبعاً سبب عدم وضوح هذه التعليمة هنا هو استخدام تسميات عربي لذلك فإنه ينصح دائماً باستخدام تسميات انكليزية

المرفقات
c1.jpgc2.jpg

تم تعديل هذه المشاركة بواسطة إياد بيك في 24 ديسمبر 2012 في 14:59

2

عَـجِبْتُ لِمَنْ يَتَفَكَّـرُ فى مَـأْكُولِهِ كَيْـفَ لا يَتَفَـكَّـرُ فى مَعْـقُـولِهِ، فَيُجَنِّبُ بَطْنَهُ ما يُؤْذيهِ، وَ يُودِعُ صَدْرَهُ ما يُرْدِيهِ

(الحسن بن علي بن أبي طالب)

#9

السلام عليكم

الاخ اياد بيك

جزاك الله خير على الرد والتوضيح

1)والله اني انتبهت للترتيب وقد صححته في جميع المشاركات السابقة

قبل ان ترسل مشاركتك

احتمال انت حملت الملف قبل لا اصحح المشاركات

2) وانا اعمل في مثالي انتبهت لشغلة تسجيل الطلاب في المرحلة القادمة لمرحلة الحضانة

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

طبعت المشكلة كانت في التسميات العربية انه كانت غير واضحة

ولكن من خلال المثال :

هل استطيع ان اقول ان عمل الدالة switch انه تعريف او تحديد قيمة لشئ ما وهي قريبة للدالة IIF

وعندي سؤال هل تحديث تاريخ زيادة سنة يتم كما في الصورة المرفقة

طبعا بعد محاولات توصلت الى زيادة 366 يوم

هل هناك صيغة لزيادة التاريخ غير عدد الايام؟؟؟

تحياتي

post-252239-031928700 1356352357_thumb.j

المرفقات
UpDate.JPG

تم تعديل هذه المشاركة بواسطة سلامنا لكم في 24 ديسمبر 2012 في 15:32

#10

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

أخي الكريم سلامنا

بالنسبة لتعليمة Switch فهي بنت عمها لتعليمة IIF ومن نفس العيلة وحتى أنهم ساكنين بنفس البناية

وضربت لك مثال في شرحي وهو :

Switch([YearCal]=1;"حضانة";[YearCal]=2;"روضة";[YearCal]=3;"تمهيدي";[YearCal]>3;"تخرج")

تم تعديل هذه المشاركة بواسطة إياد بيك في 24 ديسمبر 2012 في 15:34

عَـجِبْتُ لِمَنْ يَتَفَكَّـرُ فى مَـأْكُولِهِ كَيْـفَ لا يَتَفَـكَّـرُ فى مَعْـقُـولِهِ، فَيُجَنِّبُ بَطْنَهُ ما يُؤْذيهِ، وَ يُودِعُ صَدْرَهُ ما يُرْدِيهِ

(الحسن بن علي بن أبي طالب)

#11
إياد بيك كتب:

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

أخي الكريم سلامنا

بالنسبة لتعليمة Switch فهي بنت عمها لتعليمة IIF ومن نفس العيلة وحتى أنهم ساكنين بنفس البناية

وضربت لك مثال في شرحي وهو :

Switch([YearCal]=1;"حضانة";[YearCal]=2;"روضة";[YearCal]=3;"تمهيدي";[YearCal]>3;"تخرج")

الاخ اياد بيك

شكرا لك

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

تحياتي

وتستاهل احلى تقييم +1

تم تعديل هذه المشاركة بواسطة سلامنا لكم في 24 ديسمبر 2012 في 15:37

#12

أخي سلامنا

بالنسبة لسؤالك عن إضافة سنة للتاريخ فإن هناك تعليمة عجيبة غريبة خارقة حارقة تقضي على جميع الجراثيم وهي : DateAdd

 DateAdd("m";1;[JoinDate])

معناها أضف قيمة 1 للأشهر في حقل التاريخ

الآن نستبدل "m" ب "d" لإضافة إيام و"yyyy" لإضافة السنوات

تم تعديل هذه المشاركة بواسطة إياد بيك في 24 ديسمبر 2012 في 15:51

عَـجِبْتُ لِمَنْ يَتَفَكَّـرُ فى مَـأْكُولِهِ كَيْـفَ لا يَتَفَـكَّـرُ فى مَعْـقُـولِهِ، فَيُجَنِّبُ بَطْنَهُ ما يُؤْذيهِ، وَ يُودِعُ صَدْرَهُ ما يُرْدِيهِ

(الحسن بن علي بن أبي طالب)

#13

السلام عليكم جميعا

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

اتوقع عزيزي الحل الذي رفعته مغاير للطلب في السوال. الطلوب في السوال هو ان تتغير المرحلة تلقائيا الى المرحلة التي بعدها دون اي عامل خارجي (على حد فهمي من السوال وكما ذكر في السوال). اما الحل الذي رفعته فيجب تغيير تاريخ التسجيل لكي تتغير الحالة! السوال لماذا يتغير تاريخ التسجيل؟ تاريخ التسجيل ثابت لايفترض ان يتغير.

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

−1
#14

السلام عليكم

الاخ الرجل المبدع

لايحتاج تغيير تاريخ التسجيل لماذا؟؟؟

لانك في نفس تاريخ اليوم وتحس نفسك لم تتغير

مجرد غير التاريخ اليوم من الكمبيوتر الى السنة القادمة

وتضغط على التاب ستتغير المراحل تلقائيا واليك المثال

بس ياريت تلقى حل بمجرد تغيير التاريخ الى السنة القادمة من الكمبيوتر

وتعمل رفرش للنموذج تتغير النتائج والمراحل بناءا على تغيير التاريخ

اليك المثال وانا عامل تفصيل للعمل ممكن تلغي حقول

وننتظر منك مثال جديد او عمل جديد

وشكرا

NewStage-up.rar

#15

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

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

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

فقد وضعت الحل من وجهة نظري المنطقية وتخيلت الحالة العملية وكأنني موظف في تلك الروضة

قد أكون مخطئاً في ذلك نعم أنا معك أخي المبدع ولكن منطقياً أظن أنه الأقرب إلى الواقع

طيعاً نحن في هذا المنتدى الرائع لسنا في منافسة مع بعضنا البعض وإنما نسعى إلى تقديم مادة علمية كل زميل وزميلة بحسب قدرته وتبادل للخبرات والأفكار

فلا يمنع ذلك من أن تضع حلولاً وفقاً لما تراه حتى ولو وجدت حلول أخرى

الأمر الآخر وهو أننا في معظم الحالات قد نقوم بالاجتهاد بسبب عدم وضوح السؤال بشكل كامل من قبل الأخ السائل

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

تم تعديل هذه المشاركة بواسطة إياد بيك في 24 ديسمبر 2012 في 21:08

عَـجِبْتُ لِمَنْ يَتَفَكَّـرُ فى مَـأْكُولِهِ كَيْـفَ لا يَتَفَـكَّـرُ فى مَعْـقُـولِهِ، فَيُجَنِّبُ بَطْنَهُ ما يُؤْذيهِ، وَ يُودِعُ صَدْرَهُ ما يُرْدِيهِ

(الحسن بن علي بن أبي طالب)

#16
إياد بيك كتب:

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

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

#17

الف شكر لك اخ اياد بيك وسلمت يداك ووفقك الله الى كل خير وزادك علما فعلا هو المطلوب

وتم التقييم

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