السلام عليكم
بالنسبة لبيانات مربع التحرير والسرد / القائمة المنسدلة ، فعادة تأخذ بياناتها من جدول خاص بها ، نُدخل فيها البيانات مسبقا ، وكذلك يكون لدينا نموذج لكل جدول ، حتى نستطيع تغيير/إضافة/حذف احد هذه البيانات.
هناك طريقة اخرى اسهل ، واستعملها في برامجي ، والتي تتكون من جدول واحد ونموذج واحد لكل الحقول ، و اود ان اشاركها معكم
الجدول الذي به جميع الحقول اسمه tbl_Constants ، وسنأخذ أحد الحقول كمثال واسمه Department ،
نستخدم هذا الحقل لإدخال بيانات عن طريق النموذج frm_Employees في الجدول tbl_Employees في الحقل Department ،
ونستخدم هذا الحقل لإدخال بيانات عن طريق النموذج frm_Department في الجدول tbl_Department في الحقل Section_Name ،
.
في الجدول tbl_Constanats ، في حقل Department ، بالإضافة الى بيانات الحقل (الشؤون الادارية ، الشؤون المالي *تعمدت عمل هذا الخطا ، والذي نتيجته ظهرت في الجدولين الآخرين*) ، فإننا نكتب اسماء الجداول التي تُحفظ فيها البيانات واسم الحقل في ذلك الجدول (الجدول tbl_Emplyees واسم الحقل فيه هو Department ، وجدول tbl_Department واسم الحقل فيه هو Section_Name ، اما الاشارة _|_ التي قبل اسم الجدول ، فنستعملها لتصفية البيانات *تابع لاحقا*).
العمل كله في الكود وفي اسماء الحقول ، والنموذج frm_Constants.
نفتح نموذج ادخال البيانات frm_Employees او frm_Department
.
نريد ان نعمل تعديل على "الشؤون المالي" في حقل الدائرة ، ولأن النموذج مقفل ولا يسمح لتعديل البيانات ، فنضغط على زر "عمل تعديل على قيم البيانات" ،
فندخل كلمة السر
.
فنرى طرق فتح النموذج frm_Constants ، ثم نختار الحقل الذي نريد ان نغير بياناته (الدائرة) مثلا ، ثم نضغط على الزر الذي على يسار الحقل (لجميع اصدارات الاكسس) او على الزر الذي يظهر اسفل يسار القائمة (للأكسس 2007 فما فوق ، وميزة هذا الزر انه من ضمن اعدادات الحقل ، ولا يحتاج عمل زر اضافي له ولا كود ، كما اننا نُدخل اسم النموذج frm_Constants في اعدادات الحقل كذلك)
.
النموذج frm_Constants يُفتح على بيانات الحقل الذي نريده Department ، وعلى المعلومة/السجل الذي كان مختار في النموذج الذي اتينا منه
.
وكذلك النموذج مُقفل ، ونحتاج الى الضغط على زر التعديل لتعديل المعلومة ، او زر الاضافة لإضافة معلومة جديدة ،
وعند الضغط على زر الخروج ، فالكود سيقوم بتحديث البيانات
.
هنا نرى ان التحديث حصل لجميع الجداول ونموذج frm_Employees كذلك ، وهو المطلوب
.
النموذج الآخر frm_Department والذي يحمل اسم الحقل Department ، ولكن مصدر بياناته الحقل Section_Name ،
كذلك يمكنه عمل نفس الشيء (كما تم شرحه اعلاه)
.
ومع انه عندنا 4 ازرار لتغيير بيانات الحقول ، إلا اننا استخدمنا حدث واحد فقط لفتح النموذج frm_Constants
.
والكود هو
Private Function Open_frm_Constants()
Me(Mid(Screen.ActiveControl.Name, 6)).SetFocus
DoCmd.OpenForm "frm_Constants", , , , , acDialog
End Function
.
.
-----------------------------------------------------------------------------------------
وهذه إضافة حسب رغبة اخي شفان في إضافة النموذج الذي كنت استخدمه سابقا
مع مراعاة اني عملت عليه الكثير من التعديلات حتى يتواكب مع الطريقة الجديدة ،
وللعلم ، فالحقول في الجدول tbl_Constants يجب ان يكون لها تسميات "Captions" ،وقد اعطيت الحقول تسميات عربية ، كما هو ظاهر في النموذج ،
والمرفق الذي به هذا النموذج هو ComboBox_Data_2.MDB.zip ، والذي يشمل جميع النماذج اعلاه ايضا
.
جعفر
ComboBox_Data.mdb.zip
ComboBox_Data.accdb.zip
ComboBox_Data_2.MDB.zip