بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
إخواني الكرام سنتطرق اليوم إلى خدعة جميلة وبسيطة في عالم الأكسس وهي كيف ننفذ إجراء تحديد/إزالة الكل في مربع checkbox.
قد يسأل البعض لماذا لا تقدم لنا مرفقا عوضا عن هذا الشرح المطول بخصوص هذه القضية؟
في الواقع أنا لا أحب هذا الأسلوب لأنه يعزز فكرة التلقين وأنا لا أرغب هذا الأسلوب في شرح وتفسير القضايا لأنه لا يجدي نفعا ولا يفيد في أغلب الأحيان.
سأحاول أن أقدم مثال بسيط وسهل ومن خلاله سأقوم بشرح القضية بالتفصيل بغية تقديم أقصى حد من المنفعة والإستفادة.
بداية لا بد من تحديد مكونات المشروع وهي:
- جدول بعنوان PersonCard
- جدول إستعلام تحديث بعنوان SelectAll
- جدول إستعلام تحديث بعنوان DeselectAll
- نموذج بعنوان PersonCardF
ننتقل إلى المرحلة الثانية وهي إنشاء الحقول في الجدول PersonCard وهي :
- StudentID
- FName
- LName
- Class
- Date
- Attendance
في المرحلة الثالثة نقوم بإنشاء إستعلام لجدول PersoCard. ونضيف إلى الاستعلام كافة الحقول في الجدول المذكور، ثم نضع في معايير الحقل Attendance قيمة True أو 1- ، بعد ذلك نقوم بإجراء عملية حفظ للإستعلام بعنوان SelectAll.
في المرحلة الرابعة نقوم أيضاً بإنشاء إستعلام لجدول PersonCard ونضيف إلى الإستعلام كافة الحقول في الجدول المذكور، ثم نضع في معايير الحقل Attendance قيمة False، وبعد ذلك نقوم بإجراء عملية حفظ للإستعلام بعنوان DeselectAll.
في المرحلة الخامسة نقوم بإنشاء نموذج بعنوان PersonCardF ونضيف إليه من خلال معالج النماذج جدول PersonCard، بعد ذلك نقوم بإنشاء زري أمر في رأس النموذج ونسمي أحدهما SelectAll ولآخر DeselectAll.
في المرحلة السادسة نقوم بتنفيذ استعلامي التحديث من خلال لغة VBA وذلك على الشكل الآتي:
- زر أمر SelectAll
نضع في إجراء OnClick الكود التالي:
On error resume next
Docmd.setwarnings.false
Docmd.refreshrecord
Docmd.RunSQL "UPDATE PersonCard SET Attendance = True"
Docmd.OpenQuery "SelectAll"
End sub
- زر أمر DeselectAll
نضع في إجراء OnClick الكود التالي:
On error resume next
Docmd.SetWarnings False
Docmd.RefreshRecord
Docmd.RunSQL "UPDATE PersonCard SET Attendance = False"
Docmd.OpenQuery "DeselectAll"
End sub
إنتهى