الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برمجة Dao من خلال فيجوال بيسك (1/4)

مغلق
بدأه Black Man في 4 مايو 2007 · 5 رد · 728 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اليوم باعطيكم حاجة للمحترفي شوي

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

نبذة بسيطة عن Dao ......

هناك العديد من طرق التعامل مع قواعد البيانات ، ففيما تتربع التقنية الحديثة 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

#2

يا ترى مين كاتب الموضوع الأصلى ؟

http://www.c4arab.com/showlesson.php?lesid=2332

http://www.gulfson.com/vb/showthread.php?t=11073

http://www.cg-cg.net/cg/kb.cg?mode=article...d62a5174d3ac693

http://www.bramjnet.com/vb3/showthread.php?t=160290

http://www.google.com/search?q=%D8%A8%D8%B...GL_enEG212EG212

:blink:

لماذا لا نحفظ حقوق الناس بمنتدياتنا ؟

تم تعديل هذه المشاركة بواسطة msayed2004 في 4 مايو 2007 في 23:25

#3

السلام عليكم ورحمة الله وبركاته

النقل جميل وكل حاجه مادام في استفاده ويقدم شئ جدبد

ولكن مع ذكر المصدر فهذا افضل لأن الطريقه المتبعه لن تدل على النق ولا كن تدل على ........ ( أكيد انت عارف ) .

بالتوفيق ,,,,

A7med_prof

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

أخي ربما سؤالك اجابته في أحدى هذه المواضيع فإن لم تجد قم بالبحث وان لم تجد اطرح سؤالك مع وضع عنوان مناسب بحيث ان يكون هذا العنوان دال على محتوى الموضوع فغير ذلك من أكبر الكبائر في المنتدى وسيؤدي الى غلق او حذف موضوعك .

.

</
#4

اخي هل انت استفدت من هذا الموضوع؟

إذا المهم ان الشخص يفهم ويتعلم ليس المهم ان يكون منقولا

وشكراً مع تحياتي

اخوكم

#5

تشكر اخ Black Man ولكن ليكتمل جمال ما تقدم عليك ان تذكر المصدر في النهاية فلن يضرك ذلك

تم تعديل هذه المشاركة بواسطة mbc في 5 مايو 2007 في 19:47

#6

يعني حضرتك هتقارن نفسك بواحد تعبان ... وتيجي تقوللي إن الموضوع "بلاستفادة" ؟؟

يا سيد هيثم ... ربنا بيقول في كتابه الكريم : (( ولا تبخسوا الناس أشياءهم )) الأعراف

انت كل اللي عملته ... قص , لصق ........ خلاص

لو أنا قلتلك أنشأ لي مشروعاً كاملاً عن كل ما ذكرته ...... تقدر

بعدين ...... كلمة "منقول" ذكرها من القوانين الأساسية في جمييييييييييييييييييييع المنتديات

يا ريت تذكر أنه منقول بعد كده أخي

شكراً

علاء VB

اقتباس
If A is success in life, then A equals x plus y plus z. Work is x; y is play; and z is keeping your mouth shut

Albert Einstein

مدخل إلى برمجة وتصميم الألعاب : كيف أبدأ ؟

هذا الموضوع مغلق.

مواضيع مشابهة