ha98 قام بنشر أغسطس 27, 2003 قام بنشر أغسطس 27, 2003 السلام عليكم ورحمة الله وبركاته أعزائي كل من محمد طاهر و أمير عاطف تحياتي لكما وللمجهودات المبذولة من قبلكما وشكرا لكما لكل ماتقدمانه في هذا المنتدى العظيم عندي لمسة فنية ولكن لم افلح في عملها وبودي أن تساعداني في تحقيقها لنفرض أن لدينا قاعدة بيانات بها 3 جداول جدول الطلاب ، جدول المخالفات ، جدول تسجيل المخالفات جدول الطلاب به الأعمدة التالية : رقم الطالب ، اسم الطالب ، درجة المواظبة الكلية ، درجة المواظبة المستحقة (مثال ) 1 ، صالح الماجد ، 100 ، 95 جدول المخالفات به الاعمدة التالية رقم المخالفة ، وصف المخالفة ، درجة الحسم (مثال ) 1 ، غياب بدون عذر ، ربع درجة ولكن من بعد المرة الثانية جدول تسجيل المخالفات به الأعمدة التالية الرقم ، رقم الطالب ، رقم المخالفة أريد كتابة دالة تحسب عدد السجلات التي تخص طالب معين في جدول تسجيل المخالفات ومن ثم تطرح عدد السجلات من درجة المواظبة الكلية للطالب والموجودة في جدول الطلاب بحيث : 1/ يتم مثلا خصم نصف درجة وليس درجة كاملة من درجات المواظبة لكل تأخير عن الطابور الصباحي ولكن من بعد المرة الثالثة (أي يتم خصم نصف درجة من درجة المواظبة للطالب صالح الماجد عندما يكون موجود في جدول تسجيل المخالفات اربع سجلات تخص صالح الماجد وتخص المخالفة تأخير عن الطابور الصباحي وبعدها تخصم نصف درجة تلقائيا لكل تسجيلة جديدة ) 2/ أن يتم مثلا خصم ربع درجة من درجات المواظبة لكل غياب بدون عذر ولكن من بعد المرة الثانية (أي يتم خصم ربع درجة من درجة المواظبة للطالب صالح الماجد عندما يكون موجود في جدول تسجيل المخالفات ثلاث سجلات تخص صالح الماجد وتخص غياب بدون عذر وبعدها تخصم ربع درجة تلقائيا لكل تسجيلة جديدة ) أتمنى ان يكون ماأطلبه واضحا ويمكن تحقيقه تحياتي للجميع 1
محمد طاهر عرفه قام بنشر أغسطس 27, 2003 قام بنشر أغسطس 27, 2003 السلام عليكم أخي الكريم ، أرجو اتباع قواعد الاسئلة المثبتة ، من حيث عدم توجيه السؤال الي شخص أو أشخاص بعينهم بالنسبة للموضوع ، فهو قابل للتطبيق باستخدام دوال تجميع المجال و هي مشروحة هنـــــــــــا فى قسم الدوال فى الارشيف من هنــــا و للتأكد من رقم المخالفة للطالب ستسخدم الدالة Dcount و للحصول علي القيمة المناظرة لرقم المخالفة سنستخدم DLookup بتطبيق للدالتين مع استخدام if الشرطية يتم اجراء الاختبار من المنوذج بالكود ، و سيتم تحديد القيمة الجزائية بناء علي جدول الجزاءات و عدد التكرار فى الجدول نفسه فاقرا الموضوع عاليه و ابدأ ، و ان لم تصل لما تريد فستجد التعاون من الجميع باإذن الله حتي تكمل المثال مع تحياتي
ha98 قام بنشر أغسطس 27, 2003 الكاتب قام بنشر أغسطس 27, 2003 عزيزي المشرف محمد طاهر في البداية عذرا على مخالفة قوانين المنتدى لجهلي بها راجعت قسم الدوال وعرفت وظيفة الدالة Dcount ووظيفة الدالة DLookup ولكن مشكلتي ياعزيزي أنني لاأعرف كيف اكتب الكود اللازم لعمل هذا ولا أجيد ترتيب خطواته وادخال if الشرطية فيه لو تكرمت انت او اي واحد من الخيرين في هذا المنتدى أن يرفق لي مثال في المنتدى ولو لفقرة واحدة من الفقرات السابقة أتعلم من الكود كيفية تنظيم الخطوات وترتيبها مثلا متى استخدم Dcount ومتى استخدم DLookup وأين مكان if من الكود واستفيد منها في تكملة باقي المشروع لأنه في الحقيقة مشروع ضروري أسويه للمدرسة اللي أنا فيها تحياتي لكم
ha98 قام بنشر أغسطس 28, 2003 الكاتب قام بنشر أغسطس 28, 2003 السلام عليكم والله أني انتظر بفارغ الصبر تحياتي
ha98 قام بنشر أغسطس 28, 2003 الكاتب قام بنشر أغسطس 28, 2003 أعزائي هل يوجد احد يستطيع مساعدتي في ماطلبته في الاعلى الرجاء اذا كان ذلك ممكن فليرد علي على الاقل بسرعة تحياتي
امير عاطف قام بنشر أغسطس 29, 2003 قام بنشر أغسطس 29, 2003 (معدل) اذاً لعمل ذلك باسلوب علمي ... يجب ان يكون لدينا ثلاث جداول اولا: جدول الطلاب واسمه مثلاً tblstudents ويحتوي على الحقول التالية student_id (رقم الطالب) المفتاح الأساسي strstudent_name (اسم الطالب) ثانياً: جدول الجزاءات واسمه مثلاً tblrecompenses ويحتوي على الحقول التالية recompense_id (رقم الجزاء) المفتاح الأساسي strrecompense_description (وصف الجزاء) intdiscount (درخة الحسم) bytperiod_after (وهو حقل المدة التي يتم تطبيق الحسم بعدة) ثالثاً: جدول تسجيل عمليات الجزاءات واسمه مثلاً tbltransaction وهو جدول الوصلة ويتكون من الحقول التاليه student_id (حقل رقم الطالب) وهو ذو علاقة واحد الى متعدد مع جدول tblstudents recompense_id (حقل رقم الجزاء) وهو ذو علاقة واحد الى متعدد مع جدول tblrecompenses اي كل ما نفعله في هذا الجدول هو تسجيل رقم الطالب رقم الجزاء فقط وبذلك نكون قد حققنا الاسلوب العلمي والقياسيNormalization في تصميم قاعدة البيانات رجاء مراجعة الجزء الخاص بتصميم الجداول والجزء الخاص بالاستعلامات من دورة الأكسس لما به من فائدة كبيرة ومن خلالها تم عمل المثال المرفق بالمشاركة السفلية تم تعديل سبتمبر 12, 2003 بواسطه امير عاطف
ha98 قام بنشر أغسطس 29, 2003 الكاتب قام بنشر أغسطس 29, 2003 مشرفنا العزيز أمير عاطف والله ماقصرت ودائما ماتتحفنا بأفكارك الجميلة أثابك الله على ماتقدمه من مساعدات لغيرك ولكن حبيت استفسر منك لو حبيت مثلا احدد درجة المواظبة لكل طالب بحيث لما احب اعمل استعلام لدرجة مواظبة طالب معين حيث درجة مواظبة الطالب = 100 - عدد الدرجات المخصمة فكيف يمكنني عمل ذلك ثانيا لاحظت شيئا ما وهو انك لم تستعمل الدوال التي نوه عنها الاستاذ محمد طاهر فهل استعضت بلغة sql بدلا منها في الاستعلامات ثالثا qry1 لم افهمه 100% تحياتي وتقديري الكبيرين لك ياكبير
امير عاطف قام بنشر أغسطس 29, 2003 قام بنشر أغسطس 29, 2003 المسألة ليست استعاضة الدوال بالاستعلامات ولكن هناك اكثر من فكرة لعمل ذلك واعتقد ان هناك افكار افضل لعمل ذلك ... ولو قمت بقراءة الجزء الذي تم انجازه بدورة الأكسس حتى الان والجزء الخاص بالدوال بقسم خلاصة مشاركات الاكسس بتمعن سوف تجد نفسك تجد افكار اخرى يمكن العمل من خلالها :d بالنسبة للاستعلام qry1 فهو الذي يحسب عدد الجزاءات لكل طالب عن طريق الدالة Count راجع الاستعلام وتمعن به جيداً وبعد ذلك تم استنتاج الاستعلام المسمى qry2 من هذا الاستعلام وتم استخدام الدالة iif لحساب الدرجات المخصمة من كل طالب اعتماداً على الاستعلام qry1 اما بالنسبه لحساب درجة المواظبه فيمكنك عمل ذلك بالطبع بدون اضافة حقل بجانب كل طالب لكتابة النهاية العظمى للمواظبة وذلك باضافة حقل بالاستعلام المسمى qry2 ووضع هذه القيمة بداخلة درجة المواظبة: 100-[عدد الدرجات المخصمة]
ha98 قام بنشر أغسطس 29, 2003 الكاتب قام بنشر أغسطس 29, 2003 شكرا لك مرة اخرى عزيزي اخي أمير ولكن قصدي اجمع كل درجات الحسم لجميع مخالفات احمد واطرحها من 100 لأحصل على درجة المواظبة على فكرة عملت استعلام جديد على qry2 واخترت فقط عمودان هما strstudent_name (ووضعن عليه تجميع حسب ) و ج: عدد الدرجات المخصمة (ووضعت عليه sum) ولكن بعده يطلع عندي خطأعدم توافق نوع البيانات في المعايير فما الحل تحياتي
امير عاطف قام بنشر أغسطس 29, 2003 قام بنشر أغسطس 29, 2003 (معدل) اولاً بالنسبه للخطأ الذي يظهر "عدم توافق نوع البيانات في المعايير فما الحل" فهذا بسبب انه وجد قيمة نصيه في وسط الأرقام ويمكن معالجة ذلك عن طريق استبدال القيمة النصيه الي تم استخدامها مع الداله iif برقم صفر قم بعمل نموذج جديد مصدر السجل الخاص به هو جدول الطلاب tblstudents وبعد ذلك قم بوضع مربع نص وضع به المعادلة التالية =100-DSum("[عدد الدرجات المخصمة]";"qry2";"student_id = forms!formname!student_id") هنا بالطبع استخدمنا الدالة Dsum لا تنسى مراجعة شرح الدوال بقسم خلاصة مشاركات الأكسس :WU: الملف المرفق absense.zip تم تعديل سبتمبر 12, 2003 بواسطه امير عاطف
ha98 قام بنشر أغسطس 30, 2003 الكاتب قام بنشر أغسطس 30, 2003 حبيبي وعزيزي أمير عاطف يعجز اللسان عن شكرك تحياتي لك من كل أعماق قلبي شكرا لك مرة أخرى وإلى الامام ووفقك الله لكل خير
ha98 قام بنشر سبتمبر 12, 2003 الكاتب قام بنشر سبتمبر 12, 2003 أخي العزيز أمير عاطف كم أنا ممتن لك لما قدمته لي وتقدمه انت والمشرف العزيز محمد طاهر بودي اسألك حول مشاركتي السابقة فكرة لتسجيل المخالفات وخصمها بالدرجات والتي قدمت لي فيها ميكانيكية الخصم بعد تسجيل المخالفات من ضمن نماذج المشروع كان هناك نموذج اسمه formname وكان هذا النموذج يسرد اسماء الطلاب ودرجات المواظبة لهم وذلك بعد أن يخصم درجات الحسم من 100 ماأريد عمله هو ان يكون في هذا النموذج مربع نص اكتب فيه الحرف الاول من اسم الطالب الذي أريد معرفة درجة مواظبته فتخرج لي أسماء كل الطلاب الذين اسماؤهم تبدأ بنفس الحرف مع درجات المواظبة التابعة لهم حاولت كثيرا لعمل ذلك ولم افلح اتمنى المساعدة في هذا شيء آخر الطلبة الذين لم تسجل لهم أي مخالفات تظهر اسماؤهم ولكن في خانة درجة المواظبة لايظهر أي نص أو رقم هل من الممكن أن تظهر الدرجة 100 في هذه الخانة تحياتي وتقديري لك
امير عاطف قام بنشر سبتمبر 13, 2003 قام بنشر سبتمبر 13, 2003 ====================================== الأخ العزيز ha98 : من قواعد طرح الأسئلة بالمنتدى عدم طرح الأسئلة لأشخاص محددين حتى يتسنى لكل المشاركين ولأي شخص يعرف الاجابه ان يضع الرد حيث ليس الرد مقصور على المشرفين وليس شرط ان يعرف المشرف اجابة سؤالك ....... ارجو ان تتقبل ذلك بصدر رحب :) ====================================== بالنسبه للبحث بمجرد كتابة الحرف الأول يمكنك الاستفادة من هذين الموضعين بقسم الخلاصات: البحث بمجرد الكتابة مباشرةً (داخل قائمة) البحث بمجرد الكتابة مباشرةً (داخل نموذج فرعي) اما بالنسبه لكي تجعل درجة مواظبة الطلاب الملتزمين 100% استبدل كود المعادلة التي داخل مربع النص الخاص بدرجة المواظبه بالكود التالي: =IIf(DCount("[عدد الدرجات المخصمة]";"qry2";"student_id = forms!formname!student_id")>0;100-DSum("[عدد الدرجات المخصمة]";"qry2";"student_id = forms!formname!student_id");"100%")
ha98 قام بنشر سبتمبر 13, 2003 الكاتب قام بنشر سبتمبر 13, 2003 مرة أخرى لاأملك إلا أن أشكرك أخي أمير وأنا متقبل ماتقوله بكل رحابة صدر وعذرا منك مرة أخرى
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.