تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
استخدام DataControl للربط مع قواعد البيانات في فيجوال بيسك - الجزء الأول
#1
كاتب الموضوع : أحمد جمال

بسم الله الرحمن الرحيم .

سوف نقوم في هذا الدرس بربط قواعد البيانات من
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 .



نواصل في الدرس القادم بإذن الله .
والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .

}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  طريقة لمعرفة عدد السجلات في قاعدة البيانات princeofislam 2 2,740 18-01-24, 11:34 AM
آخر رد: علي جابر
  طريقة تشغيل فيجوال بيسك6 على وندوز7 ahmed3d 6 5,603 05-12-22, 06:49 AM
آخر رد: Ergheegh2022
  كيفية التعامل مع دوال الوقت و التاريخ و كيفية تنسيقهما فى الفجوال بيسك 6 the viper 9 11,281 22-11-18, 01:13 PM
آخر رد: next
  طلب شرح اخذ نسخة احتياطية من قاعدة البيانات DIGTAL 2 4,530 31-07-13, 03:14 AM
آخر رد: طارق بيتا
  شرح للمتغيرات و الثوابت و المعاملات في الفيجول بيسك Ahmad Jawad 5 63,299 12-06-13, 01:14 AM
آخر رد: بلحسين الدين
  طريقة استخدام الاداه actskin بالتفصيل Ahmad Jawad 3 4,456 03-12-12, 07:54 PM
آخر رد: الميسري
  استخدام DataControl للربط مع قواعد البيانات في فيجوال بيسك - الجزء الثاني RaggiTech 1 5,251 14-10-12, 02:29 PM
آخر رد: RaggiTech
  استخدام أداة التقارير DataReport من خلال الفيجوال بيسك 6.0 RaggiTech 0 8,012 14-10-12, 02:21 PM
آخر رد: RaggiTech
  درس سريع - اللغة العربية في فيجوال بيسك RaggiTech 0 4,606 14-10-12, 02:19 PM
آخر رد: RaggiTech
  فيجوال بيسك - التعامل مع قاعدة بيانات أكسيس من خلال Dao - الجزء الثالث والرابع RaggiTech 1 5,767 14-10-12, 02:11 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم