عدد المساهمات : 107 السٌّمعَة : 0 تاريخ التسجيل : 16/11/2012 العمر : 30 الموقع : منتديات شاطئ الفرات
موضوع: ماهي تقنية ADO في الفيجوال بيسك ؟ السبت يوليو 05, 2014 2:33 pm
بسم الله الرحمن الرحيم
تقنية ADO في الفيجوال ببيسك .! ماهو محرك قواعد البيانات DAO ؟ هو واجهة استخدام تمكنك من الوصول إلى المعطيات بدون النظر عن نوعية المعطيات المستخدمة
مع فيجوال بيسك طريقة عمل DAO
اولا قبل معرفة الطريقة يجب ربط مكتبة DAO
بالفيجوال بيسك كالتالي
اختر من القائمة
Project - References
واختر العنصر المطلوب كالتالي
وبعد ربط المكتبة يجب الان ربط قاعدة البيانات المطلوبة بالشكل التالي
Dim dbOpenNewDatabase1 As Database Dim rsDetails As Recordset
dbPathName = App.Path & "\Absoft.MDB"
'Open Database تم فتح الإتصال مع قاعدة البيانات Absoft.MDB Set dbOpenNewDatabase1 = DBEngine.Workspaces(0).OpenDatabase(dbPathName) Set rsDetails = dbOpenNewDatabase1.OpenRecordset("Details", dbOpenTable) rsDetails.Index = "Custno" وبعد عملية الربط هذه بإمكانك الاشارة إلى الجداول المطلوبة بإلاشارة فقط إلى rsDetails
فمثلا سوف نقوم بعمل البرنامج التالي
ItemNo وبهذا المثال نريد تغير قيمة الحقل
قم بوضع زر امر في نافذة البرنامج وضع بداخله هذا الكود
' rsdetails هنا نشير إلى الجدول 'وتحريك المؤشر إلى بداية الجدول rsDetails.MoveFirst 'لتنفيذ عملية التكرار في الحقول do هنا نستخدم امر Do 'اولا Edit يجب معرفة عند القيام بعملية التغير على اي حقل معين يجب استخدام المنهج rsDetails.Edit 'هنا نقوم بالإشارة الفعلية للحقل مع اضافة 11 rsDetails.Fields!ItemNo = rsDetails.Fields!ItemNo + 11 'Update ولاحظ ايضايجب استخدام المنهج rsDetails.Update 'وهذا ايضا ظروري لكي نقوم بعملية تكرار من حقل إلى الحقل الذي يليه rsDetails.MoveNext 'هنا نقوم بإغلاق عملية الدوران مع وضع شرط وهو نهاية الجدول المطلوب Loop Until rsDetails.EOF
وبهذه الطريقة بإمكانك الاشارة إلى اي حقل تريد العمل
الان نريد معرفة كيفة عملية البحث عن حقل معين بإلاشارة إليه بالرقم مثلا
وهذا هو الكود المطلوب '''''''''''''''''''''''''''''''''''''''''''''''''' '' 'قدم هذا البرنامج من موقع عرب سوفت ' http://www.absoft2000.com ' e-mail :webmaster@absoft2000.com 'فائدة البرنامج : يختص في تعليم dao 'قواعد بيانات '''''''''''''''''''''''''''''''''''''''''''''''''' ''' 'هنا نقوم بتعريف كائنات 'هذا للقاعدة وبذلك نتمكن من استدعاء القاعدة بهذا الاسم ' db Dim db As Database 'وهذا ايضا للسجلات او الصفوف داخل الجدول ' rs Dim rs As Recordset Private Sub comfind_Click() Dim varauid As Variant Dim strbkmark As String 'هنا نقوم بإدخال رقم العميل varauid = InputBox("ادخل رقم العميل", "بحث العملاء", 13) 'لو رقم العميل المدخل فارغ اذن اخرج من عملية البحث If varauid = "" Then Exit Sub End If 'هنا نستخدم طريقة with rs بدل من ان نستخدمها اكثر من مره With rs 'هنا نقوم بأخذ مكان اول سجل حالي 'وذلك يفيدنا عندما تفشل عملية البحث strbkmark = .Bookmark 'هنا نقوم بعملية البحث بطريقة find first 'وهو يقوم الان بالبحث من اول سجل موجود في القاعدة .FindFirst "auid = " & varauid 'هنا نقوم بإختار هذا المتغير الذي يفيدنا عند فشل عملية البحث 'فإذا فشلت عملية البحث If .NoMatch = True Then 'رجعنا على السجل قبل عملية البحث .Bookmark = strbkmark 'إظهار رسالة بحث MsgBox "لايوجد السجل المطلوب " 'غير ذلك Else 'ضع في خانة النص رقم العميل من الجدول txtid.Text = rs!auid 'ضع في خانة النص اسم العميل txtname.Text = rs!Name 'ضع في خانة النص تاريخ ولادة العميل txtdate.Text = rs!dob End If End With
End Sub 'عرب سوفت 2000 لتعليم الفيجوال بيسك 'للإستفسار 'absoft2000@************ ' Private Sub Form_Load() 'إنشاء متغيرات مطلوبة عادية Dim strdbname As String Dim strrsname As String
'هنا نقوم بإدخال اسم قاعدة البيانات المطلوبة 'واسم السجلات ايضا strdbname = App.Path & "\books6.mdb" strrsname = "Authors" 'وهنا نقوم بوضع قاعدة البيانات كعنصر يمكننا من الاشارة إلى القاعدة في اي وقت Set db = DBEngine.OpenDatabase(strdbname) 'وهذا ايضا يمكننا من الاشارة إلى الحقول في اي وقت نريدها Set rs = db.OpenRecordset(strrsname, dbOpenDynaset) End Sub