|
عرض السجلات بناء على اختيار من قائمتين |
أضيف بتاريخ 16/8/1423هـ
عندما يكون لديك سجلات معروضة في نموذج طريقة العرض له سجلات مستمرة وتريد أن تضع قائمة تختار منها بند محدد فتظهر السجلات التي تطابق الاختيار ثم تختار من قائمة أخرى اختيار آخر لعرض سجلات أقل والنموذج عند فتحه لايظهر أي سجلات حتى يتم الاختيار من القائمة .
وقد كان هناك سؤال في قسم الأكسس في منتدى الفريق العربي للبرمجة ومثال لاختيار صف ثم اختيار فصل ، وقد كانت الطريقة فيها بعض الصعوبة في التطبيق ، وقد طلب مني الأخوة مزيد من الشرح على فعملت طريقة أسهل منها وجعلت لها هذا الشرح المبسط ، والله الموفق .
انظر الصورة :

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

ارسم القائمة على النموذج :
سيشتغل المعالج ويظهر مربع الحوار التالي :

لاتغير الخيارات واضغط التالي :

دع الخيارات على جدول الصفوف ثم اضغط التالي :

انقل حقل الصف للحقول المحددة بضغط زر > ثم اضغط التالي :

اضغط التالي :

اضغط التالي :

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

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

وذلك لأن المعالج يجعل المفتاح هو العمود الأول (رقم 1) والعمود الثاني هو 2 وإن كان عند تشغيل القائمة لايظهر عمود المفتاح لأنه جعل عرض العمود له صفر .
المهم غير 1 إلى 2 .
الآن شغل النموذج وستظهر القائمة إن عملت الخطوات السابقة بشكل صحيح كما في الصورة :

الآن اعمل القائمة الخاصة بالفصول كما عملت بالقائمة السابقة وطبعا البيانات ستكون من جدول الفصول ثم سم القائمة اختر_فصل .
وستظهر كما في الصورة :

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

الآن انقر بزر الفأرة الأيمن تحت الصف في معيار واختر إنشاء ...

سيظهر مربع حوار انقر في الجهة اليمنى على نماذج =>نماذج محملة=>الطلاب
ثم في الوسط انقر على اختر_صف مرتين أو انقر زر لصق مرة واحدة وستظهر العبارة
نماذج![الطلاب]![اختر_صف]
وغيرها إلى :
[forms]![الطلاب]![اختر_صف]
وهذه من حركات ميكروسوفت البايخة ، انظر الصورة :

ثم موافق وكرر الأمر تحت حقل الفصل ولكن انقر في الوسط على اختر فصل ثم غير العبارة لتكون كما يظهر في الصورة :

الآن أغلق شاشة مصم الاستعلام وعد إلى النموذج .
أظهر خصائص قائمة اختر_صف وفي حدث بعد التحديث اكتب :
|
Me.Requery |
كرر الأمر مع قائمة اختر_فصل وفي نفس الحدث السابق ضع الكود السابق .
الآن جرب النموذج وستجد أنه عند اختيار صف يظهر طلاب هذا الصف فقط وعند اختيار فصل يظهر طلاب هذا الفصل فقط .
ولكن لابد أنك لاحظت أنه يظهر جميع الفصول ولو لم تكن لهذا الصف سوى فصول محددة بينما نريد أن يعرض في قائمة اختر_فصل الفصول التابعة للصف المختار ، ولحل هذه المشكلة يمكن ذلك بالطريقة التالية :
اظهر صفحة الخصائص لقائمة اختر_فصل ثم
في مصدر الصف انقر المربع ذو الثلاث نقط
سيظهر
مصمم الاستعلام انقر على زر إظهار جدول :
| واضف جدول الطلاب ، ثم أدرج حقل الصف وتحت هذا الحقل اكتب العبارة : |
![]() |
[forms]![الطلاب]![اختر_صف]

ثم أغلق مصمم الاستعلام وعد إلى النموذج وشغله ستجد قائمة اختر_فصل تعرض الفصول الموجودة في الصف الذي تم اختياره .
يتبقى ملاحظة بسيطة وهي عند اختيار صف ووجود اختيار فصل سابق قد لاتظهر البيانات لأن هذا الفصل غير موجود في هذا الصف مثال ذلك : اخترنا الصف الأول ثم اخترنا الفصل ب ثم اخترنا مرة اخرى الصف الثالث ولم نمسح الفصل ب قد لاتظهر بيانات لأن الصف الثالث لايوجد به فصل ب آمل أن تكون المشكلة قد وضحت بهذا المثال ، ولحلها اكتب في حدث بعد التحديث لقائمة اختر_صف التالي :
|
اختر_فصل = "" |
انتهى الحل ومرفق المثال بنفس الطريقة .
يمكن حل المطلوب بطريقة اخرى كالفلترة وكذلك ووضع مصادر القوائم في احداث التركيز وغيرها من الطرق .
|
مثال بالأكسس 97 |
الأمثلة مضغوطة تحتاج إلى برنامج فك الضغط انقر هنا لتحميل البرنامج |
مثال بالأكسس 2000 |
![]()
