تكلمنا فى عدد من الدروس السابقة عن طريقة إنشاء قائمة منسدلة combo box وربطها بمصدر البيانات .
وفى هذا الدرس سنتناول بالشرح طريقة إنشاء قائمة منسدلة combo box (يطلق عليها أيضا مربع تحرير وسرد) معتمدة على بعضها البعض .
ففي هذا الدرس لدينا ثلاث جداول مرتبطة مع بعضها البعض
الجدول يمثل قارات العالم continents
الجدول الثانى يمثل مجموعة من الدول countries (كل مجموعة من الدول توجد فى قارة معينة)
الجدول الثالث يمثل عدد من المحافظات governorates (كل دولة تتكون من عدة محافظات)
والأن نريد ثلاث قوائم منسدلة combo box هذه القوائم معتمدة على بعضها البعض
فالقائمة الأولى تعرض قارات العالم
والقائمة الثانية تعرض دول العالم
والقائمة الثالث تعرض محافظات كل دولة
ونريد بمجرد اختيار قارة من هذه القارات ..ظهور الدول الموجودة فى هذه القارة فقط فى القائمة المنسدلة الخاصة بالدول وبمجرد اختيار دولة معينة يتم ظهور محافظات هذه الدولة فقط فى قائمة المحافظات.
ولعمل ذلك لابد أولاً من إنشاء العلاقات المختلفة بين هذه الجداول ونلاحظ ان لدينا ثلاث جداول العلاقة بينهم One to many كما هو موضح بالشكل.
وفى هذا الدرس سنتناول بالشرح طريقة إنشاء قائمة منسدلة combo box (يطلق عليها أيضا مربع تحرير وسرد) معتمدة على بعضها البعض .
ففي هذا الدرس لدينا ثلاث جداول مرتبطة مع بعضها البعض
الجدول يمثل قارات العالم continents
الجدول الثانى يمثل مجموعة من الدول countries (كل مجموعة من الدول توجد فى قارة معينة)
الجدول الثالث يمثل عدد من المحافظات governorates (كل دولة تتكون من عدة محافظات)
والأن نريد ثلاث قوائم منسدلة combo box هذه القوائم معتمدة على بعضها البعض
فالقائمة الأولى تعرض قارات العالم
والقائمة الثانية تعرض دول العالم
والقائمة الثالث تعرض محافظات كل دولة
ونريد بمجرد اختيار قارة من هذه القارات ..ظهور الدول الموجودة فى هذه القارة فقط فى القائمة المنسدلة الخاصة بالدول وبمجرد اختيار دولة معينة يتم ظهور محافظات هذه الدولة فقط فى قائمة المحافظات.
ولعمل ذلك لابد أولاً من إنشاء العلاقات المختلفة بين هذه الجداول ونلاحظ ان لدينا ثلاث جداول العلاقة بينهم One to many كما هو موضح بالشكل.
من التبويب create
نضغط على form design
وذلك لإنشاء نموذج فارغ فى وضع التصميم design view
نضغط على القائمة المنسدلة combo
box ونسحب
بالماوس لإضافتها إلى النموذج ونقوم بتحديد ابعادها بالماوس
نلاحظ ظهور مربع حواري كما هو موضح
بمجرد إفلات الماوس نضغط على الزر cancel
لإلغاء هذا المربع
نقف بالمؤشر على القائمة المنسدلة
ومن التبويب design
نضغط على property
sheet لإظهارها
إن لم تكن ظاهرة ثم نقوم بتحديد مصدر البيانات لهذه
القائمة من التبويب data
ونضغط على row
source
نلاحظ أنه تم ظهور المربع الحواري show
table
فنختر الجدول الذى نريد أن يكون مصدر البيانات لهذه القائمة المنسدلة وهو جدول القارات contients
فنضغط عليه ثم add
نقوم بإضافة الحقول التى هى مصدر
البيانات لهذه القائمة المنسدلة وهنا نختر حقلي contienentid وحقل contenentname
نضغط على close
لإغلاق الشاشة ثم نضغط yes
لحفظ التغييرات التى حدثت على مصدر البيانات لهذه القائمة
نقوم بتغيير عدد الأعمدة column count
إلى 2 ثم نقوم بتغيير عرض العمود الأول ليكون 0 والعمود الثانى مثلا 4سم بحيث يتم
إظهار بيانات العمود الثانى والخاص بأسماء القارات بينما يتم تسجيل القيم فى
العمود الأول كود القارةcontienentid
ثم نقوم بفتح النموذج فى طريقة
العرض form
view نلاحظ ظهور قائمة القارات عند
الضغط على القائمة المنسدلة كما هو موضح بالشكل.
بنفس الطريقة نقوم بإضافة القائمة
المنسدلة الثانية الخاصة بالدول ثم نقوم بتحديد مصدر البيانات لهذه القائمة ونحدد
الجدول countries
كمصدر البيانات لهذه القائمة ثم نقوم
بإضافة الحقول التى تعتبر مصدر البيانات لهذه القائمة ثم نضيف حقل الربط بين
الجدولين وهو conienentid
وفى خانة criteria
نحدد هذا الحقل بحيث تظهر الدول طبقا للقارات المرتبطة بها ونكتب [forms]!]form2]![combo0]
وبهذا لا تظهر سوى الدول الموجودة فى نفس القارة التى تم إختيارها من القائمة
المنسدلة الأولى
ثم نضغط على close
لإغلاق
هذه الشاشة ونضغط على Yes لحفظ التغييرات
نضغط على القائمة المنسدلة الأولى
الخاصة بالقارات ومن event
نختر after
update
نختر code
builder لإظهار شاشة محررالأكواد
نكتب هذا الكود combo2.value=“”
وذلك حتى تكون القيمة الظاهرة فى القائمة
المنسدلة الثانية فارغة ثم نكتب refresh
حتى
يتم التحديث طبقا للاختيار المحدد فى القائمة المنسدلة
نلاحظ الأن عند الانتقال إلى وضع form
view
أنه عند الضغط على القارات واختيار مثلا قارة اسيا تظهر الدول الموجودة بقارة آسيا.
نضيف القائمة المنسدلة
الثالثة combo box الخاصة بالمحافظات ونعمل على
تحديد مصدر البيانات لهذه القائمة من Row source
بنفس الطريقة نقوم بإضافة القائمة
المنسدلة الثالثة الخاصة بالمحافظات ثم نقوم
بتحديد مصدر البيانات لهذه القائمة ونحدد الجدول governoratesكمصدر
البيانات
لهذه القائمة ثم نقوم بإضافة الحقول التى
تعتبر مصدر البيانات لهذه القائمة ثم نضيف حقل الربط بين الجدولين وهو courntryid
وفى
خانة criteria
نحدد هذا الحقل بحيث تظهر الدول طبقا للقارات المرتبطة بها ونكتب [forms]!]form2]![combo2]
وبهذا
لا تظهر سوى المحافظات
الموجودة فى
الدولة
التى تم
اختيارها
من
القائمة المنسدلة الثانية
نقوم بتغيير عدد الأعمدة التى سيتم
عرضها إلى 2 column count ثم نغير عرض العمود الأول بحيث يكون 0 والعمود
الثانى
يكون
عرضه مثلا 5 سم بحيث يتم إظهار بيانات العمود الثانى countrynameبينما
يتم تسجيل القيم فى العمود الأول الخاص بكود الدولة countryid
نقف بالمؤشر على القائمة المنسدلة
الخاصة بجدول القارات conienentsومن
التبويب design
نضغط على property
sheet لإظهارها
إن لم تكن ظاهرة
ومن التبويب event
ومن after
ubdateنضغط
على ... لنفتح محرر الأكواد
نكتب الكود combo4.value=“”
ومعناه أن القيمة الافتراضية الخاصة بالمدن ستكون فارغة عند اختيار اسم القارة وسيتم عمل تحديث للبيانات طبقا للقارة المختارة .
نقف بالمؤشر على القائمة المنسدلة
الخاصة بجدول الدول countries
ثم من التبويب event ومن الأمر after
update
نضغط على ...لنفتح محرر الأكواد
نكتب هذا الكود comb4.value=“”
ثم نكتب refresh
ومعناه انه عند اختيار الدولة قم بجعل القيمة الافتراضية للقائمة المنسدلة الخاصة بالمحافظات ستكون فارغة بمجرد اختيار الدولة ثم قم بعمل
تحديث بحيث يتم عرض بيانات المحافظات الخاصة بالدولة المختارة فقط.
نفتح النموذج فى وضع form
view
ثم نلاحظ أنه عند اختيار قارة معينة يتم عرض دول هذه القارة فى القائمة المنسدلة الخاصة بالدول وكذلك يتم عرض
المحافظات الموجودة فى هذه الدولة فقط فى القائمة المنسدلة الخاصة بالمحافظات.
اشكرك جزيلاً على الطريقة
ردحذفجزاك الله خيرا وزادك من فضله وعلمه