حول كائن الوصول للمعطيات DAO:
About the Date Access Object (DAO)
مكتبة DAO عندما قامت Microsoft بتصنيع مكتبة DAO كانت مصنعة للتعامل مع MS Access وكان هذا من أكبر عيوبها لأنها لا تتعامل مع ORACLE أو SQL
Server فكان لابد علي Microsoft أن تقوم بعمل مكتبة لتعامل مع أي نوع من
أنوع قواعد البيانات سواء السابقة أو اللاحقة في المستقبل و إلا أصبحت
مستخدم لقواعد البيانات فبعد ذلك تم ظهور مكتبة RDO وبعد ذلك كما ذكرنا تم
ظهور مكتبة الـ ADO التي شملت كل هذا وأكثر لذلك سأقوم بشرح كتبة DAO وADO
وسوف أستغني عن مكتبة RDO لأن الـ ADO أقوه منها.
نرجع لموضوعنا
· كيفية التعامل مع مكتبة DAO.
- الكود:
Dim DB As [u][color=#bb66ff]DataBase[/color][/u]
Dim RS As Recordset
في هذا الكود قمت بتعريف متغير أسمه DB نوعه DataBase
لكي يتم التعامل وفتح اتصال مع قاعدة البيانات, وعمل متغير أخر أسمه RS
نوعه Recordset لكي يقوم بالتعامل مع الحقول وقت قمت بتعريفهم في منطقة
General_Declarations لكي تكون معرفة علي مستوي الـ Form
بعد
ذلك نقوم بكتابة الكود الخاص بالتعامل مع قاعدة البيانات والكود الخاص
بالتعامل مع الجدول الموجود داخل قاعدة البيانات ويكون كما يلي
سنقوم بعمل قاعدة بيانات ونسميها DB1 عبارة عن جدول واحد وتكون كما يلي
أسم الجدول CUST
نقوم بفتح VB6 سيتم ظهور شاشة
يتم
اختيار Standard EXE كما بالصورة السابقة ثم اختيار Open سيتم فتح شاشة
VB6 سنقوم بأول شيء بعمل فتح لمكتبة DAO عن طريق قائمة Project ثم
اختيارReferences
سيتم ظهور شاشة سيتم اختيار مكتبة DAO
ثم OK
ملاحظة:- تلاحظ وجود مكتبتين بنفس الاسم ولكن بإصدارتين مختلفين:
Microsoft DAO 3.51 Object Library لتعامل مع Access 97
Object Library Microsoft DAO 3.6 لتعامل مع Access XP,2003 ويمكنها ضبعا التعامل مع Access97 لأنها إصدار أحدث من 3.51 .
بعد
اختيار مكتبة DAO بهذا قد تم فتح أو جلب مكتبة DAO ويمكن التعامل معها يتم
فتح شاشة الكود عن طريق الضغط مرتين بزر الفأرة علي الـ Form وفي منطقة
General_Declarations أو ما تسمي منطقة التصريحات العمة نقوم بكتابة الكود
التالي
- الكود:
Private Sub Form_Load()
Set DB = OpenDatabase("db1.mdb")
Set RS = DB.OpenRecordset("cust", 2)
End Sub
هنا في هذا الكود تم مساواة المتغير DB بالعنصر OpenDatabase ويقوم بتوصيلها بقاعدة البيانات DB1.mdb
بعد
ذلك يقوم بمساواة المتغير RS بقاعدة البيانات المفتوحة ويقوم بفتح الجدول
Cust ونوع الفتح يكون 2 وتعني Dynamic أي يقدر يعمل إضافة وحذف وتعديل من
قاعدة البيانات.
سيتم تنفيذ كل هذا بمجرد تحميل Form1.
هل سيتم تنفيذه فعلا؟ طبعا - لا ولماذا؟
جرب وقم بعمل Run للبرنامج عن طريق F5 أو عن طريق الأيقونة الموجودة بشريط الأدوات
سيتم ظهور رسالة خطأ
معني الرسالة أنه ملف قاعدة البيانات DB1.mdb غير موجود.
وسبب
هذا الاعتراض عدم تحديد الباص الخاص بالمشروع ويتم ذلك عن طريق عمل Save
As للمشروع عن طريق قائمة File واختيار Save Project asسيتم ظهور شاشة يتم
اختيار مكان قاعدة البيانات ويتم حفظ المشروع بالكامل
وبعد ذلك قم بإغلاق الـ Visual BASIC وقم بالذهاب إلي المكان المحفوظ به البرنامج وقم بالتشغيل عن طريق ملف المشروع ذو الامتداد Vbp
ملاحظة
مهمة جدا:- أول شيء تقوم بعملة عند العمل علي مشروع أول شيء تقوم بعمل
Folder للمشروع وبعد ذللك تقوم بفتح VB ثم تقوم بفتح قائمة Project .
سيتم ظهور شاشة يتم كتابة اسم البرنامج بها
ثم
بعد ذلك نقوم بعمل Save Project As في نفس Folder الموجود بهي قاعدة
البيانات ثم بعد ذلك نقوم بإغلاق البرنامج ومن ثم التشغيل مرة أخري من
أيقونة البرنامج الموضحة سابق.
نرجع تاني لمشروعنا بعد أجراء الخطوات السابقة قم بتجريب البرنامج وشوف سيتم العمل معك أم لا.
سؤال: كيف أعرف أن الاتصال بقاعدة البيانات تم ؟
لو تم ظهور Form1 بدون مشاكل فاعلم أن Connection.
فيما
سبق كنت بتقول للبرنامج أفتح لي قاعدة البيانات التي تسمي DB1.mdb كان
يبحث عنها لا يجدها أما الآن بعد عمل الليلة المذكورة أعلاة عند البحث عن
قاعدة البيانات يجدها في Folder المحدد لها ويتم فتح الاتصال.
مرحله وضع الأدوات علي الـ Form1 :-
نقوم بوضع الأدوات علي الـ Form
طريقة عمل البرنامج.
عند الضغط علي زر New سيقوم RS بعمل سجل جديد لاستقبال البيانات.
عند الضغط علي زرSave سيقوم RS بحفظ البيانات المرسلة إلية عن طريق أدوات الـ Text الموجودة علي الـ Form.
كود NEW
- الكود:
Private Sub Command1_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
RS.AddNew
End Sub
في هذا الكود تم مسح جميع الـ Text الموجود علي الـ Form ثم قيام RS بعمل سجل جديد جاهز لاستقبال البيانات.
كود Save
- الكود:
Private Sub Command2_Click()
RS("name") = Text1.Text
RS("code") = Text2.Text
RS("phone") = Text3.Text
RS("address") = Text4.Text
RS.Update
MsgBox "تم حفظ البيانات"
End Sub
هنا تم ربط كل من الحقول بالأدوات الخاصة بها والتي تستخدم في عملية الإدخال والإخراج من والي قاعدة البيانات.
بعد كتابة الكود بشكل سليم جرب البرنامج وتأكد من عمله بشكل سليم.
في الحلقة القادمة إن شاء الله سيتم شرح كود Find وكيفية عمل Find من خلال Combobox
وسيتم شرح لغة SQL وبالأخص جمل SELECT.