Foksh قام بنشر فبراير 1 قام بنشر فبراير 1 أهلاً بكم في انطلاقة سلسلتنا الجديدة "الفعاليات والتحديات الشهرية". في عالم قواعد البيانات ، المحترف الحقيقي ليس من يكتب مئات الأسطر من الأكواد ، بل هو "المعماري" الذي يبني قاعدة بيانات قوية ، ذكية ، وتحمي نفسها بنفسها ! تحدي اليوم سيعيدنا إلى الجذور ، إلى قوة محرك آكسيس الكامنة في جداوله . فهل أنت مستعد لخوض التجربة الأولى ؟؟ 📖 قصة التحدي :- طلب منك عزيزي المشارك ( مصنع تقني ) بناء نظام لإدارة شؤون الموظفين ، ولكن لديهم شروط صارمة جداً لمنع أي موظف مُدخِل بيانات من ارتكاب أخطاء . حيث أن الإدارة ترفض تماماً استخدام أكواد ( VBA ) ، وتريد أن تكون الحماية مزروعة ومتأصلة في قلب الجداول مباشرة ، لضمان أقصى درجات الأمان . 🛠️ المطلوب :- إنشاء جدول باسم tbl_Managers ، يحتوي على الحقول التالية :- اسم الموظف ( EmpName ) تاريخ الميلاد ( DOB ) تاريخ التعيين ( HireDate ) الدرجة الوظيفية ( JobGrade ) = (A أو B أو C) الراتب الأساسي ( Salary ) 🚫 شروط التحدي :- يجب عليك ضبط إعدادات الجدول (Property Sheet) ليقوم بالمهام التالية تلقائياً :- يُمنع الحفظ في حال مخالفة القوانين والأحكام ، حيث يُمنع تسجيل أي موظف عمره أقل من 18 عاماً ( بناءً على تاريخ ميلاده مقارنة بتاريخ اليوم ) . حماية التسلسل الزمني ، حيث يُمنع أن يكون تاريخ التعيين قبل تاريخ تأسيس المصنع ( 01/01/2020 ) . يُمنع أن يكون تاريخ التعيين في ( المستقبل ، أي بعد تاريخ اليوم الحالي ) . حماية هيكل الرواتب : يجب ربط الراتب بالدرجة الوظيفية كالتالي :- إذا كانت الدرجة A : الحد الأقصى للراتب هو 10,000 . إذا كانت الدرجة B : الحد الأقصى للراتب هو 7,000 . إذا كانت الدرجة C : الحد الأقصى للراتب هو 5,000 . الرسائل المخصصة ، بحيث عند وقوع أي خطأ ، يجب أن يظهر للمستخدم رسالة تنبيه واضحة باللغة العربية تشرح له سبب الرفض بالضبط . 🚫 قوانين المشاركة :- يُمنع منعاً باتاً استخدام أكواد VBA أو الـ Macros - الماكرو . الحل يجب أن يكمن في خصائص الجدول ( Table Properties ) فقط . ♻ كيف تشارك ؟ قم برفع ملف مرفق فقط . وتذكر أنك عزيزي المشارك تملك الحق في 3 محاولات لإجاباتك خلال التحدي الواحد فقط . 2 1
Debug Ace قام بنشر فبراير 1 قام بنشر فبراير 1 (معدل) حاولت بقدر المستطاع الموضوع صعب بدون اكواد جداول مصنع تقنى.accdb تم تعديل فبراير 1 بواسطه Debug Ace 2
Debug Ace قام بنشر فبراير 1 قام بنشر فبراير 1 وبما ان لكل عضو عدد 3 محاولات انا سوف أكتفى بمحاولة أخرى جداول مصنع تقنى - 2.accdb 1
Moosak قام بنشر الأحد at 04:34 قام بنشر الأحد at 04:34 وهذي مشاركتي المتواضعة 🙂 التحدي 1 - التعامل مع الجداول وخصائصها - موسى.accdb 2
jjafferr قام بنشر الإثنين at 18:43 قام بنشر الإثنين at 18:43 السلام عليكم في 1/2/2026 at 18:24, Foksh said: وتريد أن تكون الحماية مزروعة ومتأصلة في قلب الجداول مباشرة وتماشيا مع روح الشروط (وليس تماشيا مع الشروط 🙂 ) ، وهي ثغرة قانونية استندت عليها في المرفق 🙂 في 1/2/2026 at 18:24, Foksh said: يجب عليك ضبط إعدادات الجدول (Property Sheet) ليقوم بالمهام هممم ، اعتقد هذه العبارة ذو اكثر من تأويل ، فإذا استعملناها بحذافيرها ، فيمكن ان نعمل المطلوب ولكن الكود سيكون غير واضح بسبب إستعمال عدد كبير من iif في بعضها البعض !! ولذلك من مرفقات الشباب اعلاه ، ارى انهم لم يلتزموا بالعمل على مستوى إعدادات الجدول فقط ، وانما انتقلوا الى إعدادات الحقول ايضا 🙂 Challange_01_02.zip 1
Foksh قام بنشر الإثنين at 22:57 الكاتب قام بنشر الإثنين at 22:57 4 ساعات مضت, jjafferr said: وتماشيا مع روح الشروط (وليس تماشيا مع الشروط 🙂 ) ، وهي ثغرة قانونية استندت عليها في المرفق 🙂 فكرة جميلة جداً تجميع بين عدم ظهور الشروط في خصائص الحقول + القوة والمتانة + دعمها للرسائل العربية 1
jjafferr قام بنشر بالامس في 07:42 قام بنشر بالامس في 07:42 انا اميل الى اشعار المستخدم بالخطأ على مستوى الحقل وليس على مستوى السجل ، حتى يتمكن من التعديل مباشرة ، لهذا السبب طرق @Debug Ace و @Moosak اعلاه هي افضل من طريقتي ، ولكن طريقتي باب الى عمل الكثير في الحقول والسجلات على مستوى الجداول المحلية. ولما يسمح لنا اخوي @Foksh ، بنتكلم عن الطريقة ان شاء الله 🙂
Foksh قام بنشر بالامس في 08:25 الكاتب قام بنشر بالامس في 08:25 37 دقائق مضت, jjafferr said: انا اميل الى اشعار المستخدم بالخطأ على مستوى الحقل وليس على مستوى السجل ، حتى يتمكن من التعديل مباشرة ، كلامك سليم وجميل أخي جعفر .. لكن الميزةفي فكرتك هي بمثابة خط الدفاع الأخير . يعني حتى لو تم إدخال البيانات عبر استعلام إلحاق مثلاً أو من مصدر خارجي ، سيأتي الحارس الشخصي للجدول وهو هنا الماكرو لإيقافها . 38 دقائق مضت, jjafferr said: ولما يسمح لنا اخوي @Foksh ، بنتكلم عن الطريقة ان شاء الله 🙂 سامحك الله أخي جعفر .. من أنا لأسمح أو أمنع .. لاحظ أن الشرط حماية هيكل الرواتب ( ربط الراتب بالدرجة ) ، فهذا الشرط لا يمكن عمله على مستوى الحقل أبداً ، لأننا هنا سنقارن حقلين ببعضهما . لذا ومن رأيي الشخصي ، لا بد من وجود قاعدة تعمل على مستوى السجل .
Foksh قام بنشر منذ 5 ساعات الكاتب قام بنشر منذ 5 ساعات لا تنسوا أن الأفكار قد تكون كثيرة ، والحلول لم تنتهي بعد 😉
jjafferr قام بنشر منذ 4 ساعات قام بنشر منذ 4 ساعات اقتباس هذه فكرة لا تخضع لشروط التحدي ، ولكنها بانتظار التوجيه منكم فقط ، وانظر لردكم الكريم أساتذتي المشرفين .. 1. انت دخلت في جدول محظور الدخول فيه ، ولم اقرأ اي محترف ان تجرأ وقام بالتعديل عليه ، 2. رسائل الخطأ غير واضحة ، حيث انها جزء من رسالة خطأ الاكسس ، 3. يجب ان تكون المعادلات ورسائل الخطأ سهل الوصول اليها ، وسهل تغييرها ، 3. وحتى اذا تم قبول المشاركة ، فالشرط الاساس لا ينطبق عليها: ان الجدول يتضمن جميع الشروط . فقد نقلت الجدول الى قاعدة بيانات اخرى ، ولم تعمل الشروط عليه (للعلم ، فقد قمت بهذا العمل لبقة المرفقات ، وعمل الجدول بطريقة صحيحة 🙂 ) . 1 ساعه مضت, Foksh said: لا تنسوا أن الأفكار قد تكون كثيرة ، والحلول لم تنتهي بعد 😉 اعتقد التحدي القادم يجب ان يكون ساحة مفتوحة لإستعمال اي طريقة ، سواء بالبرنامج نفسه او حتى الاستعانة ببرامج خارجية
Debug Ace قام بنشر منذ 1 ساعه قام بنشر منذ 1 ساعه بسيطة بدون خصائص الحقول ولو من الجدول فقط يكون Table Validation Rule كالتالى : (DateDiff("yyyy",[DOB],Date())>=18 Or [DOB] Is Null) And ([HireDate]>=#1/1/2020# And [HireDate]<=Date() Or [HireDate] Is Null) And ([JobGrade] In ("A","B","C") Or [JobGrade] Is Null) And ([JobGrade]="A" And [Salary]<=10000 Or [JobGrade]="B" And [Salary]<=7000 Or [JobGrade]="C" And [Salary]<=5000 Or [Salary] Is Null) يكون Table Validation Text كالتالى : خطأ في الحفظ: - العمر <18 سنة - HireDate قبل 1/1/2020 أو مستقبلي - Salary > حد الدرجة (A:10000 B:7000 C:5000) 1
الردود الموصى بها
انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد
يجب ان تكون عضوا لدينا لتتمكن من التعليق
انشئ حساب جديد
سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .
سجل حساب جديدتسجيل دخول
هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.
سجل دخولك الان