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

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

المقدمة :
هناك العديد من طرق التعامل مع قواعد البيانات ، ففيما تتربع التقنية الحديثة Ado.net على طرق التعامل مع قواعد البيانات في اصدارات .Net FrameWork فإن هناك مثيلاً لها في الفيجوال بيسك وهو الاصدارة الاقدم Ado ، فيما توجد طرق أخرى مثل RDO و DAO وهي الطريقة محور درسنا اليوم ، وهي واحدة من اقدم الطرق ، ولم تطلها يد التطوير التي طالت ADO على سبيل المثال لتخرج منها DAO.net .
ويشرح هذا الدرس كيفية التعامل مع هذه التقنية من خلال قاعدة بيانات بسيطة جداً ، والدرس مقسم إلى ثلاثة اقسام :

يتضمن القسم الأول محتويات قاعدة البيانات ، ومن ثم انشاء الواجهة الاساسية بالفيجوال بيسك وكيفية الربط مع قاعدة البيانات وانشاء قاعدة بيانات وقت التنفيذ Run Time .
أما القسم الثاني فيحتوي على كيفية التعامل مع قواعد البيانات والأوامر الاساسية للحفظ والاضافة والتعديل وغيرها .
أما الدرس الثالث فهو مختص بعرض البيانات الموجودة في درسنا على أداة MSFlexGrid ، وبعض العمليات عليها .
ويختص الدرس الأخير بعمل عملية بحث مبسطة بدلالة الاسم ، أو رقم الهاتف . مع اتمام التعامل مع MSFlexGrid .

الدرس :
في البداية قم بانشاء قاعدة بيانات تحتوي على الحقول التالية :

Nu : من النوع رقم Number ، وهو مثلاً رقم الموظف في الشركة .
Fn : من النوع ( نص Text ) وهو خاص باسم الشخص .
Te : وهو خاص برقم الهاتف ، وهو من النوع رقم Number ، وهذا الحقل أيضاً من المفضل وضعه على هيئة نص Text إلا أننا سنسخدمه على شكل رقم .
ومن ثم قم بانشاء Form وضع فيه الأدوات التالية :
* Text1,Text2,Text3 لعرض معلومات كل شخص .
* Command من 1 إلى 4 ( الأول - السابق - التالي - الأخير ) .
* Command من 5 إلى 8 ( تعديل سجل ، سجل جديد - انهاء بلا حفظ - حفظ ) . مع مراعاة أن يكون التمكين Enabled لكل من زري ( حفظ - بلا حفظ ) هو False .
* Command من 9 إلى 12 ( حذف - خروج - عرض في جدول - عدد السجلات ) .
وقم بانشاء Module ... اضغط على الفورم بزر الماوس الأيمن ، اختر Add ومن ثم Module .

والآن سننتقل لمرحلة التعامل مع قاعدة البيانات .

لبدء التعامل مع DAO لا بد من اضافة المكتبة الخاصة بالداو إلى المشروع الذي قمنا بانشاءه ، لذا من قائمة Project اختر Refrence واختر المكتبة :
Microsoft Dao 3.6 Object Library
أو أي اصدار اقدم ، إلا أن 3.6 هو الاصدار المفضل .

والآن ، تقدم لنا DAO كائنات مختلفة للتعامل مع قواعد البيانات ، فهي توفر لنا Workspace لبدء العمل مع قاعدة البيانات مع الكائن Database والمختص بالتعامل مع ملف قاعدة البيانات ، RecordSet للتعامل مع الجداول ، TableDef للقيام بانشاء جداول وقت التنفيذ - أحد تطبيقاته - .

والآن سنتعرف على Sub main() ؟
يوفر لنا الفيجوال بيسك امكانية بدء المشروع بواسطة هذه الاجراء والذي يتم تعريفه في Module ، ولذلك نقوم في هذا الاجراء بعمل المهام التي نحتاجها قبل البدء في تنفيذ الكود .
من قائمة Project اختر Project Properties ، ومن ثم اختر Sub main من القائمة Startup .

والآن سوف بتعريف عدد من المتغيرات Public وذلك بالشكل التالي :

كود :
Public D1 As Database
Public T1 As Recordset
Public T2 As Recordset
Public folder As String

* المتغيرات Public هي أحد أنواع الوصول للمتغيرات حيث يتم مشاهدة المتغيرات على مستوى المشروع .
المتغير الأول خاص بقاعدة البيانات ، بينما متغيرات خاصان بالجداول ، وأخيراً متغير نصي String نخزن فيه مسار البرنامج الحالي .

والآن سوف نقوم ببرمجة الاجراء main ، وسوف يحتوي على المهام التالي مرتبة :

* معرفة مسار البرنامج .
* إذا لم تكن قاعدة البيانات موجودة فإنه يقوم باستدعاء اجراء انشاء قاعدة بيانات جديدة .
* بعد وجود قاعدة البيانات الجديدة أو الموجودة اصلاً ، القيام بازالة خاصية القراءة فقط من على الملف .
* الاتصال بقاعدة البيانات .
* اظهار الفورم الرئيسي للبرنامج .

وهذا هو الكود ، وبين كل مهمة ومهمة أخرى هناك سطر .

كود :
Private Sub main()
folder = App.Path
If Right(folder, 1) <> "\" Then folder = folder & "\"
If Dir(folder & "mm.mdb") = "" Then
CreateMyDatabase folder & "mm.mdb"
End If
SetAttr folder & "mm.mdb", vbNormal
Set D1 = DBEngine.Workspaces(0).OpenDatabase(folder & "mm.mdb")
Form1.Show
End Sub
والآن سوف نقوم ببرمجة الاجراء الذي يقوم بعمل قاعدة البيانات في حالة عدم وجودها ، وهو مقسم على قسمين :
- انشاء ملف قاعدة البيانات .
- بعد انشاء الملف ، انشاء الجداول والحقول داخلها .

سنسمي المهمة الأولى CreateMyDatabase وسوف تقوم بالخطوات التالية مرتبة :
* تعريف متغير خاص لقاعدة البيانات .
* انشاء قاعدة البيانات - لاحظ تشابه الطريقة مع طريقة فتح قاعدة البيانات .
* اغلاق قاعدة البيانات .
* استدعاء الاجراء الثاني - انشاء الجداول والحقول داخلها - .
* افراغ المتغيرات Varibles حتى لا تحجز مكاناً من الذاكرة .

مجدداً هذا هو الكود :

كود :
Sub CreateMyDatabase(DB_Name As String)
Dim dbsNew As Database
Set dbsNew = DBEngine.Workspaces(0).CreateDatabase(DB_Name, dbLangGeneral, dbEncrypt)
dbsNew.Close
CreateMyTableS DB_Name

Set dbsNew = Nothing
Set wrkDefault = Nothing
End Sub
المهمة الأخيرة في هذا الدرس ، هي انشاء الجداول داخل قاعدة البيانات ، وسوف تمر بالخطوات التالية .

* تعريف TableDef لانشاء جدول من خلاله . وكذلك متغير من نوع ملف قاعدة بيانات .
* فتح قاعدة البيانات التي انشأناها للتو .
* تعريف TableDef على أنه منشأ للجداول داخل قاعدة البيانات ( ربطه بقاعدة البيانات ) .
* البدء في اضافة الحقول .
* اتمام عملية اضافة الجدول .

وهذا هو الكود :

كود :
Sub CreateMyTableS(DBName)
Dim dbsMyData As Database
Dim tdfNew1 As TableDef
Set dbsMyData = OpenDatabase(DBName)
With dbsMyData
Set tdfNew1 = dbsMyData.CreateTableDef("TB")
With tdfNew1
.Fields.Append .CreateField("nu", dbInteger)
.Fields.Append .CreateField("fn", dbText)
.Fields.Append .CreateField("te", dbDouble)
End With
dbsMyData.TableDefs.Append tdfNew1
End With
End Sub
خاتمة :
في هذا الدرس تعرفنا سوية على كيفية عمل كائن Dao ، وكيفية انشاء قاعدة بيانات من خلاله وقت التنفيذ .
في الدرس القادم سوف نبدأ في التعامل مع قاعدة البيانات بإذن الله .

* في الدرس الأخير سوف يكون ملف مرفق على جميع العمليات خلال الدروس بإذن الله .

والسلام عليكم ورحمة الله وبركاته .
}}}
تم الشكر بواسطة:


الردود في هذا الموضوع
فيجوال بيسك - التعامل مع قاعدة بيانات أكسيس من خلال Dao - الجزء الأول والثاني - بواسطة Raggi Tech - 14-10-12, 02:05 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Video قاعدة بيانات بالفيجوال جبران جابر 1 294 15-07-24, 03:50 PM
آخر رد: جبران جابر
  برنامج فيجوال 6 لايفتح قاعدة بيانات بالاكسس جبران جابر 3 433 15-07-24, 03:49 PM
آخر رد: جبران جابر
  طريقة لمعرفة عدد السجلات في قاعدة البيانات princeofislam 2 3,318 18-01-24, 11:34 AM
آخر رد: علي جابر
  برنامج لمتابعة محل بيع الجوالات اكثر من رائع بقاعدة بيانات جيدة derbaliammar 14 12,801 04-03-23, 02:24 AM
آخر رد: tighrmte
  طريقة تشغيل فيجوال بيسك6 على وندوز7 ahmed3d 6 6,114 05-12-22, 06:49 AM
آخر رد: Ergheegh2022
  تعلم كيفية حفظ و أسترجاع الصورة فى قاعدة بيانات أكسس باستخدام الكائن Stream object أحمد مناع 12 18,429 06-11-21, 02:16 PM
آخر رد: Sawsaw
  كيفية التعامل مع دوال الوقت و التاريخ و كيفية تنسيقهما فى الفجوال بيسك 6 the viper 9 12,240 22-11-18, 01:13 PM
آخر رد: next
  استفسار ربط قاعدة بيانات بالفيجوال 6 محمود عمار2 0 2,643 13-10-18, 06:39 PM
آخر رد: محمود عمار2
  مساعدة في طباعة صوره من قاعدة بيانات basma123 0 2,776 26-09-14, 03:00 PM
آخر رد: basma123
  طلب شرح اخذ نسخة احتياطية من قاعدة البيانات DIGTAL 2 4,780 31-07-13, 03:14 AM
آخر رد: طارق بيتا

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


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