حامل المسك قام بنشر ديسمبر 19, 2007 قام بنشر ديسمبر 19, 2007 (معدل) السلام عليكم ورحمة الله وبركاته أسأل الله أن يديم عليكم نعمه ظاهرة وباطنة ........ آمين لدي استعلام خاص بلجنة تحكيم على النحو التالي :ـ اسم الطالب ==درجة المحكم 1=درجة المحكم 2=درجة المحكم 3=درجة المحكم 4=أعلى درجة حصل عليه=أدنى درجة حصل عليها الطالب=المستحق محمد------40------------------35--------------------30-----------------25-------------------40--------------------------25-------------35+30/2=23.5 علي--------20-----------------45--------------------32-----------------35------------------45---------------------------20-----------35+32/23=33.5 فهد----------50------------------45--------------------فارغ-------------40--------------------50----------------------------40--------------45/1=45 وفقكم الله أجمعين أيها الأحبة : لدي هذا اللاستعلام المطلوب أن يكون في خانة أعلى درجة : أعلى درجة حصل عليها الطالب في الاختبار وفي الأدنى أيضا أدنى درجة حصل عليها الطالب والمستحق وهو المهم جدا جدا أن يقوم بحذف أعلى درجة وأدنى درجة حصل عليها الطالب يتبقى بعدها دجة اثنين من المحكمين يقوم بجمعهما ثم قسمتهما على عدد المحكمين المتبقين (2) وفي حالة كون أحد الخانتين فارغة فإنه يقسم على 1 وليس على اثنين أي كأن عدد المحمين ثلاثة وليس أربعة فهل يمكن للاستعلام صنع ذلك _____.rar تم تعديل ديسمبر 19, 2007 بواسطه حامل المسك
محب العلم قام بنشر ديسمبر 19, 2007 قام بنشر ديسمبر 19, 2007 حامل المسك ، بالاستعلامات كما تطلب صعبة جدا، ولكن بالكود ممكن، وإذا احببت أشرحه لك judge.rar تحياتي
Accessna قام بنشر ديسمبر 19, 2007 قام بنشر ديسمبر 19, 2007 مع كل الشكر والتقدير لمحب العلم تم عمل الحل بالإستعلامات . فميزة الإستعلام سوف تغني عن تخزين النتائج ، يعني مساحة أقل . وعيبها أنك لا يمكن إضافة البيانات من نفس النموذج ، يعني ستحتاج إلى عمل نموذج آخر لإدخال البيانات . يمكن اختصار الإستعلامات من 3 إلى 2 ولكني أحببت أن تكون مفهومة أكثر مع جعلها 3 . judge_Queries.rar
حامل المسك قام بنشر ديسمبر 20, 2007 الكاتب قام بنشر ديسمبر 20, 2007 والله يا إخواني إنه عمل أروع من رائع ، وأسأل الله أن يكتب لكما الأجر في هذا البرنامج الذي يخدم بالدرجة الأولى حفظة كتاب الله الكريم وأنا كنت أتوقع أن أجد الإجابة بأنه لا يمكن عمل مثل ذلك فأسأل الله لكما التوفيق والسداد وأن يبارك في علمكما وعملكما. (للفائدة ) أخي محب العلم هل من الممكن أن تشرح الكود الذي قمت بعمله ----------------------------------------------------------------------------------------------- لوكنت أعرف فوق الشُّكر منزلةً ... أعلى من الشكر عند الله في الثَّمن إذا منحتكها منِّي مهنَّدةً ... شكراً على صنع ما أوليت من حسن ----------------------------------------------------------------------------------------------
محب العلم قام بنشر ديسمبر 20, 2007 قام بنشر ديسمبر 20, 2007 (معدل) حامل المسك، شرح الحلول : أولا: الحل البرمجي الذي قدمه محب العلم المقدمة : جعل مصدر السجلات للنموذج الذي سيتم فيه ادخال الدرجات وحساب النتائج الجدول مباشرة وذلك يؤدي إلى السماح بإمكانية التعديل أو الاضافة لطلبة جدد وكذلك احتساب النتائج ولاحقا عندما تريد تصميم التقارير ستكون العملية سهلة جدا حيث النتائج ستكون متوفرة لك في الجدول وفي هذه الطريقة لا تحتاج إلى استعلام لأنها بحد ذاتها هي عبارة عن استعلامي اجرائي يقوم بتعديل النتائج في الجدول. الإجراءات : إجراء حدث عند النقر على زر احتساب النتائج Private Sub Command17_Click() Dim Rst As Recordset Set DBs = CurrentDb Set Rst = DBs.OpenRecordset("Judges", dbOpenDynaset) Rst.MoveLast Rst.MoveFirst Do While Not Rst.EOF Rst.Edit Rst!maxg = whatmax(Rst!g1, Rst!g2, Rst!g3, Rst!g4) Rst!ming = whatmin(Rst!g1, Rst!g2, Rst!g3, Rst!g4) Rst!grade = whatgrade(Rst!g1, Rst!g2, Rst!g3, Rst!g4) Rst.Update Rst.MoveNext Loop Rst.Close Me.Refresh End Sub هذا الإجراء يقوم بالدوران داخل سجلات الجدول Judges (الحكام) من بدايته وحتى النهاية ولكل سجل (سطر) موجود في الجدول يتم استدعاء ثلاثة اقترانات هي whatmax الذي سيرجع لنا القيمة العظمى من حكم الحكام و whatmin الذي سيرجع لنا القيمى الصغرى من حكم الحكام و whatgrade الذي سيرجع لنا النتيجة بعد خصم القيمة الصغرى والعظمى وفحص كم نتيجة يوجد للقسمة على 2 أو 1 وتخزن هذه النتائج في الجدول في الحقول maxg و ming و grade والتي تمثل الأكبر والأصغر والمستحق على الترتيب الإقتران الأول whatmax Function whatmax(a, b, c, d As Double) max = 0 If a > max Then max = a If b > max Then max = b If c > max Then max = c If d > max Then max = d whatmax = max End Function لاحظ أننا افترضنا أن القيمة العظمى max هي 0 ثم قارنا ذلك مع الدرجة الأولى فإذا كانت أكبر من صفر أصبحت هي الأكبر ثم نقارن مع الدرجة الثانية وهكذا... الإقتران الثاني whatmin Function whatmin(a, b, c, d As Double) min = 100 If a < min Then min = a If b < min Then min = b If c < min Then min = c If d < min Then min = d whatmin = min End Function لاحظ هنا أن العملية عكسية للإقتران السابق حيث أننا نبحث عن اقيمة الصغرى لذلك افترضنا أن القيمة الصغرى min هي 100 ثم قارنا ذلك مع الدرجة الأولى فإذا كانت أصغر من 100 أصبحت هي الأصغر ثم نقارن مع الدرجة الثانية وهكذا... الإقتران الثالث whatgrade Function whatgrade(a, b, c, d As Double) h = 4 If a = 0 Or IsNull(a) Then h = h - 1 If b = 0 Or IsNull(b) Then h = h - 1 If c = 0 Or IsNull(c) Then h = h - 1 If d = 0 Or IsNull(d) Then h = h - 1 g = Nz(a, 0) + Nz(b, 0) + Nz(c, 0) + Nz(d, 0) - whatmax(a, b, c, d) - whatmin(a, b, c, d) If h = 4 Then whatgrade = g / 2 Else whatgrade = g End If End Function وهذا الاقتران الذي سيحسب لنا الدرجة لكل طالب حسب القاعدة المطلوبة ثانيا: الحل البرمجي الذي قدمه Accessna المقدمة : في بعض الاحيان لا نستطيع كتابة استعلام واحد مباشرة يحقق لنا ما هو مطلوب من المسألة وفي هذه الحالة (الأصعب) يلجأ إلى بناء استعلامات مركبة تكون نتيجة استعلام هي مصدر استعلام أخر وهذا هو المنهج الذي اتبعة Accessna في التوصل للحل. الخطوات : 1. بناء استعلام توحيد QryJudgesAll SELECT [no], g1 as grade FROM Judges Union all SELECT [no], g2 FROM Judges Union all SELECT [no], g3 FROM Judges UNION ALL SELECT [no], g4 FROM Judges ORDER BY [no]; وهذا الاستعلام يقوم باختيار رقم الطالب no والحكم الأول g1 ويتم تسمية الحكم grade لكل الطلاب وثم يضيف اليها (يوحدها) الحكم الثاني والثالث والرابع ونتيجة هذا التوحيد ستكون عمودين عمود يظهر فيه رقم الطالب no وعمود تظهر فيه النتيجة التي تم تسميتها grade بمعنى أخر نتيجة استعلام التوحيد هي استعلام فيه حقلين no و grade حسب الصورة السابقة واسم هذا الاستعلام QryJudgesAll وسوف يستخدم في الخطوة التالية 2. بناء استعلام اختيار QryJudgesSum لاحظ أن مصدر هذا الاستعلام هو الاستعلام التوحدي الذي تم إنشاءه بالخطوة الأولى وأن الاقترانات الثلاثة التي تم شرحها في طريقة البرمجة يتم معالجتها هنا وهي MaxG و MinG و Grade 3. بناء استعلام اختيار QryGrades وهذا الاستعلام سيعتبر مصدرا للنموذج حيث يوفر جميع الحقول من جدول البيانات الأساسي judges ويوفر النتائج التي هي في الاستعلام QryJudgesSum ذكر Accessna يمكن اختصار الإستعلامات من 3 إلى 2 ولكني أحببت أن تكون مفهومة أكثر مع جعلها 3 وهذا كلام دقيق وذلك بتعديل QryJudgesSum ليضم أيضا جميع الحقول من Judges كما يآتي : وهذا الملف بعد اختصار الاستعلامات الثلاث إلى إثنين لمن يحب : judge_Queries_update.rar تحياتي تم تعديل ديسمبر 20, 2007 بواسطه محب العلم 1
محب العلم قام بنشر ديسمبر 20, 2007 قام بنشر ديسمبر 20, 2007 وبمزيد من العمل في نفس المسألة : توصلت إلى طريقة ثالثة تستخدم استعلام تحديد واحد ويطلب هذا الاستعلام الاقترانات التي تم شرحها سابقا من وحدة نمطية تعرف فيها الاقترنات بشكل Public وهذه الطريقة تمكننا من التعديل على النموذج ومشاهدة النتائج مباشرة وعدم تخزين النتائج في الجدول بل الحصول عليها من خلال الاستعلام. اعتقد أن هذه الطريقة هي الأمثل لهذه المسألة الملف : JudgeOneQuery.rar تحياتي
Accessna قام بنشر ديسمبر 20, 2007 قام بنشر ديسمبر 20, 2007 نعم هو الحل الأمثل أخي محب العلم بارك الله فيكم . ولم تكن الفكرة بعيدة عن ذهني ولكن هذا فهل يمكن للاستعلام صنع ذلك ما قيدني .
عمار زيد قام بنشر ديسمبر 20, 2007 قام بنشر ديسمبر 20, 2007 جزاكم الله خيرأ على هذا المستوى الرائع من الفهم والإفهام
حامل المسك قام بنشر ديسمبر 21, 2007 الكاتب قام بنشر ديسمبر 21, 2007 جزاكم الله خير الجزاء على هذا الشرح الوافي الكافي يارب يسر لهم من أمرهم رشدا ، وانفع بهم ، وبارك لهم في مالهم وولدهم وعلمهم وعملهم. وفقكم الله أجمعين
محب العلم قام بنشر ديسمبر 21, 2007 قام بنشر ديسمبر 21, 2007 حامل المسك، ولك مثل دعائك ، لم تخبرني أي طريقة من الثلاث استخدمت ؟؟ تحياتي
حامل المسك قام بنشر ديسمبر 22, 2007 الكاتب قام بنشر ديسمبر 22, 2007 وفقك الله أخي لقد استخدمت آخر طريقة (( الوحدة النمطية )) مع أن خلفيتي في الوحدة النمطية = صفر ولكن لن أنسى ما قدمتموه . وأسأل الله أن يجمعنا بكم في الدنيا على الخير ، وفي الآخرة في جنة الفردوس
محب العلم قام بنشر ديسمبر 22, 2007 قام بنشر ديسمبر 22, 2007 اختيار موفق بإذن الله وسأساعدك بكل سرور حتى النهاية بإذن الله تحياتي
حامل المسك قام بنشر ديسمبر 27, 2007 الكاتب قام بنشر ديسمبر 27, 2007 وفقكم الله واجهتني مشكلة هي أن درجات كل محكم تشمل 1) تطبيق التجويد 2) الحفظ 3) التلاوة 4) التفسير هل بالإمكان أن يقوم البرنامج بجمع هذه الدرجات للمحكم الأول ويضعها في خانة g1 وكذا الثاني والثالث والرابع. وفقكم الله لكل خير Judg.rar
محب العلم قام بنشر ديسمبر 27, 2007 قام بنشر ديسمبر 27, 2007 حياك الله أخي حامل المسك ، التعديل يشمل إضافة جدول للمحكمين وربط الجداول معا بعلاقات وعمل استعلامات تحديث للعللامات وطلبها في حدث عند الفتح لنموذج الطلاب الذي سيعرض النتائج وعمل نموذج إدخال للعلامات والله الموفق التعديل : StudentsMarks.rar تحياتي
حامل المسك قام بنشر ديسمبر 27, 2007 الكاتب قام بنشر ديسمبر 27, 2007 إنَّني أثني بما أوليتني ... لم يضع حسن بلاءٍ من شكر إنَّني والله لا أكفركم ... أبداً ما صاح ديكٌ في السَّحر جزاك الله خير الجزاء وجعل ذلك في ميزان حسناتك جاري العمل
حامل المسك قام بنشر ديسمبر 27, 2007 الكاتب قام بنشر ديسمبر 27, 2007 عذرا أخي محب العلم خانة التفسير أحيانا تكون فارغة فإذا كانت فارغة فإن المجاميع لا تظهر فهل هناك حل ؟ وفقك الله وجعل الجنة مثواك
محب العلم قام بنشر ديسمبر 27, 2007 قام بنشر ديسمبر 27, 2007 حياك الله أخي حامل المسك، بكل تأكيد يجب الاحتياط أنها ليست Null وذلك يتم عن طريق nz مثال (nz(marks.m1,0 فإذا كان الحقل null يعطينا 0 وهكذا تحل المشكلة ولئلا اتعبك قمت بالتعديل في الملف في الاستعلامات الإجرائية لجميع العلامات الملف المعدل :StudentsMarksv1.rar تحياتي
حامل المسك قام بنشر ديسمبر 28, 2007 الكاتب قام بنشر ديسمبر 28, 2007 جزاك الله خير الجزاء وفق الله لكل خير
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.