![]() |
|
استخدام DataControl للربط مع قواعد البيانات في فيجوال بيسك - الجزء الأول - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4) +--- قسم : قسم لغة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=18) +---- قسم : قسم مقالات vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=29) +---- الموضوع : استخدام DataControl للربط مع قواعد البيانات في فيجوال بيسك - الجزء الأول (/showthread.php?tid=5598) |
استخدام DataControl للربط مع قواعد البيانات في فيجوال بيسك - الجزء الأول - RaggiTech - 14-10-12 كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .
سوف نقوم في هذا الدرس بربط قواعد البيانات من Access مع Visual Basic من خلال الأداة DataControl .
وسنستخدم قاعدة البيانات التي أنشأناها قبل اضافة العلاقات في دروس الأكسيس ...
البداية : وللبدء بعد قيامك بتشغيل الفيجوال بيسك ، قم باختيار أداة DataControl وقم برسمها على الفورم . الآن قم بحفظ الملف في نفس المسار الذي تضع فيه قاعدة البيانات . ولا تنس أن تحول قاعدة البيانات إلى اصدار سابق كما تعلمنا سابقاً . ذلك أن هذه الأداة لا تتعامل سوى مع الاصدار 97 من أكسيس . خصائص الأداة : سنبدأ الآن في شرح أهم خصائص هذه الأداة والتي سوف نتعامل معها . Connect : تحدد نوع البرنامج الذي سوف تتعامل معه هذه الأداة ... لذا اختر Access .
DatabaseName
: فيها نحدد مسار قاعدة البيانات ... قم بالضغط على ازرار الاستعراض (...) واختر قاعدة البيانات المحولة .
RecordSource
: تحدد فيها الجدول الذي تريد عرض البيانات منه ... قم باختيار Tb_Main .
جرب الآن عمل Run للبرنامج وتأكد أن ليس ثمة أخطاء - لن يظهر شيء - ولكن تأكد من عدم ظهور رسالة خطأ .
أكثر رسائل الخطأ شيوعاً في هذه المرحلة هي الرسالة التي ترشدك إلى أن البرنامج لم يتعرف على نظام قاعدة البيانات ، في الواقع سبب هذا الخطأ هو اهمال الخطوة التي ذكرناها والتي تتعلق بتحويل قاعدة البيانات إلى نسق Access 97 . الآن سوف نبدأ في اضافة مربعات النص Textbox والتي سوف تعرض فيها بيانات الجدول . قم الآن باضافة أحد مربعات النص ... وابدأ في تغيير الخصائص الخاصة بقواعد البيانات ، وذلك على النحو التالي : DataSource : تحدد الأداة مصدر البيانات ... لذا اختر أداة Date1 .
DataField
: تحدد الحقل الذي سوف يظهر في مربع النص ... لذا اختر Number .
الآن جرب ثانية عمل Run للبرنامج .
لاحظ ظهور أول رقم في قاعدة البيانات داخل مربع النص . الآن انظر إلى الأداة ... سوف تجد أربعة أسهم ... جرب التنقل بواسطتها ، وستجد محتويات Text1 تتغير حسب طريقة تنقلك . هذا ببساطة كل ما يتعلق بربط قاعدة البيانات مبدئياً ومن خلال DataControl ، إذا كنت تواجه بعض المشاكل مع هذه البداية السريعة وما سيليها فحاول قراءة بعض الدروس عن الفيجوال بيسك قبل قراءة باقي الدرس ، في الواقع انصح بكتاب الاستاذ تركي العسيري ( نحو برمجة كائنية التوجه OOP ) وهو كتاب يحتوي معلومات للمبتدئين وحتى المتقدمين في الفيجوال بيسك . الآن ... سوف نبدأ في اضافة مربعات نص لجميع الحقول بنفس الطريقة السابقة ... جرب اضافة Lable بجانب كل Text لتوضيح محتواه . وسنضيف الحقول التالية تماماً كما هو الحال مع ما سبق : الرقم - الاسم الأول - الاسم الأخير - الهاتف - العمر - العنوان - البريد الالكتروني - السنة الدراسية - اللغة - الموقع - متزوج/لا . ولا تنس أن تضيف مربعات نص TextBox - أدوات عنوان للتوضيح Label . بالنسبة لحقل Marry - متزج . اضف مربع اختيار واربطه بقاعدة البيانات مثل مربع النص تماماً . بعد ذلك قم بتجريب البرنامج ... وتنقل بين السجلات كما تريد . هكذا تكون قد اتممت الربط بين قاعدة بيانات بسيطة وبرنامج فيجوال بيسك . والآن سوف نتعرف على أوامر التنقل في قواعد البيانات . لو كنت قد نظرت إلى مثال الدرس السابق لوجدت أن أداة DataControl تحتوي على أربعة أزرار للتنقل إلى ( الأول - السابق - التالي - الأخير ) ، وكذا لو لاحظت لوجدت ان وضع هذه الأداة ليس احترافياً ، ولذا فإننا سنستعيض بالأزرار CommandButton عنها منذ الآن فصاعداً . إن الكائن المختص بالتعامل مع الجداول في هذه الأداة يطلق عليه اسم Recordset وتندرج تحته أكثر أوامر الجداول شيوعاً مثل أوامر التنقل والبحث والتعديل وغيرها . سنبدأ الآن في التطبيق العملي ... وقبل أن نبدأ سنقوم باخفاء أداة Data1 عن طريق ضبط خاصية Visible لتساوي False لهذه الأداة . والآن قم برسم أربعة أزرار Command1,Command2,Command3,Command4 . أبدأ بأولهم والذي سيكون مخصصاً لزر الأول . اكتب اسم أداة قاعدة البيانات بعدها . - نقطة - ستلاحظ ظهور قائمة من الخصائص سنختار منها RecordSet ثم نضع . - نقطة - . ستظهر لنا كافة الخصائص والوظائف المتعلقة بالتعامل مع الجداول ، ما يهمنا هو MoveFirst ، ليصبح الأمر بالشكل التالي : Data1.Recordset.MoveFirst بنفس الطريقة أوامر السابق : Data1.Recordset.MovePrevious التالي : Data1.Recordset.MoveNext الأخير : data1.Recordset.MoveLast والآن قم مجدداً بتجربة المثال حتى الآن . ستعمل معك الأوامر بصورة صحيحة ما عدا في حالات خاصة ، عندما تضغط على زر التالي أو السابق حتى تصل إلى النهاية أو البداية ثم تواصل الضغط ، هنا ستظهر لك رسالة تفيد بإنه لا يوجد سجل . وسوف يتوقف البرنامج برسالة خطأ رقم 4021 . لحل هذه المشكلة لدينا خاصيتان هما Eof والتي تعطي True إذا كنا في نهاية الجدول . والخاصية الثانية هي Bof والتي تعطي True عندما نكون في بداية الجدول . وهاتان الخاصيتان مستخدمة بكثرة في قواعد البيانات والعمل مع الملفات - وفي لغات أخرى ايضاً - . لذا لابد من التأكد من قيمها ، وذلك لعدم تجاوز الحقل الأخير ، وفي حالة اعطاء قيمة True للخاصية المناسبة فإننا سننتقل للسجل الأول ، أو للأخير . وذلك كالتالي : Data1.Recordset.MoveNext If Data1.Recordset.EOF Then Data1.Recordset.MoveLast والسابق . Data1.Recordset.MovePrevious If Data1.Recordset.BOF Then Data1.Recordset.MoveFirst تبقت مشكلة أخيرة ، وهو إذا كانت قاعدة البيانات فارغة من أساسها ، لذا سوف نستخدم إحدى خصائص الكائن Data1.RecordSet وهي الخاصية RecordCount وتعطينا عدد السجلات الفعلي في قواعد البيانات . وفي حالة عدم وجود أي سجل فإننا سوف نخرج من اجراءات التنقل مباشرة بواسطة الأمر Exit Sub . نواصل في الدرس القادم بإذن الله . والله الموفق ... والسلام عليكم ورحمة الله وبركاته . |