استخدام عناصر تحكم DataCombo وDataList
تشبه عناصر التحكم DataCombo وDataList إلى حد كبير مربعات القائمة القياسية وعناصر تحكم مربع التحرير والسرد، ولكن بها بعض الاختلافات المهمة التي تجعلها قابلة للتكيف ومفيدة للغاية في تطبيقات قواعد البيانات. يمكن تعبئة كلا عنصري التحكم تلقائيًا بواسطة حقول قاعدة البيانات التي ترتبط بها عناصر التحكم هذه. بالإضافة إلى ذلك، يمكنهم بشكل اختياري تمرير حقل محدد إلى عنصر تحكم بيانات ثانٍ، مما يجعلها مناسبة لإنشاء تطبيقات "جدول البحث".
الاستخدام المحتمل
1. في قاعدة البيانات العلائقية، استخدم البيانات من جدول واحد لتوفير القيم المراد إدخالها في جدول ثانٍ (مرتبط). على سبيل المثال، في قاعدة بيانات المخزون، يتم تخزين أسماء الموردين في جدول، ويكون لكل مورد معرف فريد. يستخدم جدول آخر يعرض المنتجات هذه المعرفات للإشارة إلى المورد الذي يوفر المنتج. يمكنك استخدام عنصر التحكم DataList لعرض اسم المورد أثناء توفير معرف المورد لجدول المنتجات (بشكل غير مرئي).
2. السماح للمستخدمين بتضييق نطاق البحث عن طريق تحديد معيار من القائمة المنسدلة. على سبيل المثال، يمكن لتطبيق قاعدة بيانات تقارير المبيعات استخدام عنصر تحكم DataList للسماح للمستخدم بتحديد حالة أو منطقة مبيعات. بمجرد إجراء التحديد، يتم تمرير التحديد تلقائيًا إلى عنصر تحكم بيانات ثانٍ، وهو المسؤول عن البحث عن سجلات المبيعات للمنطقة المحددة.
مثل عناصر التحكم المضمنة المقابلة لها، يتمثل الاختلاف الرئيسي بين عناصر التحكم DataList وDataCombo في أن عنصر التحكم DataCombo يوفر مربع نص يمكن تحرير المحتوى فيه.
للحصول على وصف لقدرة عنصري التحكم DataList وDataCombo على الانضمام إلى جداول قاعدة البيانات، راجع "الانضمام إلى جدولين باستخدام عنصري التحكم DataList وDataList". لإنشاء تطبيق قاعدة بيانات بسيط يستخدم الجداول المرتبطة، راجع "إنشاء تطبيق DataCombo بسيط".
خصائص التحكم الجديرة بالملاحظة
تتضمن بعض الخصائص الهامة لعنصري التحكم DataList وDataCombo ما يلي:
لاحظ أن الخاصية DataFormat لعنصر التحكم DataCombo هي خاصية موسع. لذلك يكون مرئيًا دائمًا في صفحة الخصائص ويمكن تعيينه في التعليمات البرمجية. ومع ذلك، يقوم عنصر التحكم DataCombo بتنسيق العنصر الأعلى في القائمة الخاصة به فقط. قد يكون هذا أقل أهمية بالنسبة للمستخدم النهائي الذي يرى العنصر العلوي المنسق ويمكنه ببساطة الاختيار من القائمة غير المنسقة. قد تؤدي العناصر المنسقة أيضًا إلى تضليل المستخدمين النهائيين وجعلهم يعتقدون أن العناصر منسقة قبل إدخالها في قاعدة البيانات. لهذه الأسباب، من المستحسن عدم تعيين الخاصية DataFormat عند استخدام عنصر التحكم DataCombo.
التفاصيل للحصول على برنامج تعليمي خطوة بخطوة يوضح استخدام خاصية BoundText، راجع "إنشاء DataGrid باستخدام عنصر تحكم DataList متصل." للحصول على قائمة كاملة بخصائص وأساليب عناصر التحكم هذه، راجع "التحكم في DataList" و"التحكم في DataCombo".
قم بتوصيل جدولين باستخدام عناصر التحكم DataCombo وDataList
الميزة المميزة لعنصري التحكم DataCombo وDataList هي القدرة على الوصول إلى جدولين مختلفين وربط البيانات من الجدول الأول بحقل في الجدول الثاني. يتم ذلك باستخدام مصدرين للبيانات (مثل عنصر تحكم ADOData أو بيئة البيانات).
الجداول العلائقية والقيم "غير الودية".
في قاعدة البيانات العلائقية، لا يتم تخزين كافة المعلومات لإعادة الاستخدام في أماكن متعددة. يتم تخزين معظم هذه المعلومات في مجموعة سجلات تتكون من حقول متعددة؛ ومن بين هذه الحقول يوجد حقل "المعرف" الذي يحدد مجموعة السجلات بشكل فريد. على سبيل المثال، تقوم قاعدة بيانات Biblio التي يوفرها Visual Basic بتخزين أسماء العديد من شركات النشر في جدول يسمى Publishers. يتضمن هذا الجدول العديد من الحقول، مثل العنوان والمدينة والرمز البريدي ورقم الهاتف. ولكن من أجل التبسيط، يتم أخذ الحقلين الأساسيين في هذا الجدول في الاعتبار فقط، وهما الاسم ومعرف النشر. يخزن حقل الاسم اسم الناشر، بينما يخزن حقل PubID قيمة "غير مألوفة" نسبيًا، مثل رقم أو رمز. لكن هذه القيمة غير الودية مهمة لأنها تعرّف الناشر بشكل فريد وتعمل كوسيلة لربط مجموعة السجلات بأكملها. بالإضافة إلى ذلك، سيتم تخزين هذه القيمة في مجموعات سجلات متعددة في الجدول الثاني.
اسم الجدول الثاني هو العناوين، وتحتوي كل مجموعة سجل على معلومات بما في ذلك العنوان وسنة النشر والرقم الدولي القياسي للكتاب (ISBN) وما إلى ذلك. اسم أحد هذه الحقول هو PubID. اسم هذا الحقل هو نفس الحقل المقابل في جدول الناشرين، لأن هذا الحقل يخزن القيمة التي تربط هذا العنوان بناشر معين.
يمثل هذا الحل المحتمل مشكلة صغيرة: نظرًا لتطبيق قاعدة بيانات يسمح للمستخدمين بإدراج عناوين جديدة، يجب على المستخدم بطريقة ما إدخال عدد صحيح يحدد هوية الناشر. إذا كان بإمكان المستخدم أن يتذكر المعرف الفريد لكل ناشر، فلا يزال ذلك ممكنًا، ولكن إذا كان بإمكان المستخدم رؤية اسم الناشر من ناحية، ومن ناحية أخرى يتم تخزين القيمة المقابلة في قاعدة البيانات، فمن ثم سوف تظهر أكثر ملاءمة. يمكن لعناصر التحكم DataList وDataCombo حل هذه المشكلة بسهولة.
مصدران للبيانات، ثلاثة حقول، بدون تشفير
تستخدم عناصر التحكم DataList وDataCombo مصدري بيانات لحل هذه المشكلة. أثناء عرض اسم الناشر فقط (من جدول الناشرين)، يقوم عنصر التحكم DataList أو DataCombo بكتابة قيمة حقل PubID فقط في جدول العناوين. من خلال نافذة الخصائص، قم بتعيين مصدر الصف إلى مصدر البيانات الذي يوفر البيانات المراد كتابتها (أي جدول الناشرين). ثم قم بتعيين خاصية DataSource إلى مصدر البيانات حيث سيتم كتابة البيانات (أي جدول العناوين). وأخيرًا، قم بتعيين خصائص DataField وListField وBoundColumn. يوضح الشكل التالي كيفية تعيين مصدرين للبيانات (في شكل عنصري تحكم بيانات) وثلاثة حقول لعنصر تحكم DataCombo:
باختصار، تحدد الخاصية ListField الحقل الذي سيتم عرضه بواسطة عنصر التحكم. في هذه الحالة هو اسم الناشر. ومن ناحية أخرى، تحدد الخاصية BoundColumn الحقل الموجود في جدول الناشرين الذي يوفر القيمة الفعلية المطلوبة لجدول العنوان. لاحظ أنه لا يمكن (ولا ينبغي) تحرير حقل PubID في جدول Publishers. بدلاً من ذلك، تتم كتابة القيمة الموجودة في الحقل PubID إلى الحقل المحدد بواسطة الخاصية DataField. في هذا المثال، هذه السمة هي حقل PubID في جدول العناوين.
ويقدم الجدول التالي نظرة عامة على هذه الخصائص وكيفية استخدامها.
لاحظ أنه يمكن أيضًا استخدام عنصري التحكم DataList وDataCombo مع عنصر تحكم بيانات واحد. لتحقيق ذلك، يمكنك تعيين خصائص DataSource وRowSource إلى نفس عنصر تحكم البيانات، وتعيين خصائص DataField وBoundColumn إلى نفس الحقل في مجموعة سجلات عنصر تحكم البيانات. في هذه الحالة، سيتم ملء القائمة بقيم ListField من نفس مجموعة السجلات الجاري تحديثها. إذا تم تحديد خاصية ListField ولكن لم يتم تعيين الخاصية BoundColumn، فسيتم تعيين BoundColumn تلقائيًا إلى حقل ListField.
التفاصيل إذا كنت تريد إنشاء تطبيق قاعدة بيانات بسيط خطوة بخطوة باستخدام عنصر تحكم DataCombo، راجع "إنشاء تطبيق DataCombo بسيط."
->