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

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

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

وهذا تكمله ايضا

المقدمة :

في الدروس السابقة تعلمنا كيفية فتح قاعدة البيانات والتعامل معها ، العرض في الجدول MSFlexGrid ، والآن سوف نقوم بالبحث من خلال احدى جمل الاستعلام ، من المفضل مراجعة دروس TSQL في الموسوعة إذا لم تكن قد تعرفت على جملة Select من جمل الاستعلام قبل البدء بقراءة هذا الدرس .

الدرس :

تذكير سريع بجملة Select .

من أشهر جمل الاستعلامات هي الجملة التي تستخدم الكلمة المفتاحية Select . وصيغتها القياسية هي :

select field(s) form table(s) where conditon

حيث أن Fields تعني الحقول التي تظهر نتيجتها في البحث ، وقد تكون اسماء حقول مثل name,tele أو قد تكون * لعرض الكل ، وقد تكون نواتج عملية حسابية مثل Max(number) أو Count(*) .

أما Tables فهي اسماء الجداول ، والشروط فهي مثل name='ahmed' و age>5 ، مع استخدام معاملات اخرى مثل between و Like ، وبارميترات Parmeters مختلفة مثل ? و - وغيرها .

وأخيراً اذكرك بأنه عند التعامل مع النصوص فإنه لا بد من وضع '' حول الاسم ، ومع التواريخ يتم وضع ## حول التاريخ وهما النوعان الأكثر استخداماً ، أما الارقام فلا تحتاج إلى اي شيء .

والآن إلى بداية الدرس .

سوف نضيف أولاً الجزء الخاص بشاشة البحث ، سوف يكون بالشكل التالي :

البحث عن الأشخاص الذين لديهم ( ComboBox1 ) ( ComboBox2 ) ( searchText )

* إذا لم تظهر الجملة السابقة مرتبة فهذا راجع إلى اتجاه الكتابة .

حيث سيحتوي ComboBox1 على ( الرقم - الاسم - الهاتف ) أما الثاني فيحتوي على ( = - > - < ) ، وتوضع كلمة البحث في ال searchText .

ومن ثم يوضع زر أمر بعرض نتائج البحث في الجدول .

في حدث Form_Load سوف نضيف العناصر المطلوبة للقائمتين :

Combo1.AddItem "الرقم"

Combo1.AddItem "الاسم"

Combo1.AddItem "الهاتف"

Combo1.ListIndex = 0

Combo2.AddItem "="

Combo2.AddItem ">"

Combo2.AddItem "<"

Combo2.ListIndex = 0

ولا بد من التحكم في القائمة الثانية ، حيث لا يمكن التحكم بها إلا عند اختيار الرقم ، أما الاسم والهاتف فلا يمكن البحث ب < أو > في مثالنا هذا - يمكن استخدامها ولكن ليس في مثل هذا المثال - . ويتم ذلك من خلال الحدث Click للاداة Combo1 :

Private Sub Combo1_Click()

If Combo1.ListIndex <> 0 Then

Combo2.Enabled = False

Else

Combo2.Enabled = True

End If

End Sub

في بداية زر الامر سوف نتأكد من أنه ادخل كلمة للبحث عنها :

If searchText.Text = "" Then

MsgBox "نص البحث فارغ"

Exit Sub

End If

لاحقاً سوف نشكل جملة الاستعلام ، وذلك بالشكل التالي :

Dim fldname As String

Dim op As String

Dim lst As String

If Combo1.ListIndex = 0 Then

fldname = "nu"

op = Combo2.Text

lst = ""

ElseIf Combo1.ListIndex = 1 Then

fldname = "fn"

op = "='"

lst = "'"

Else

fldname = "te"

op = "="

lst = ""

End If

Dim sql As String

sql = "select * from tb where " & fldname & op & searchText.Text & lst

حيث نخزن في fldname الحقل الذي نبحث عنه ، op معامل البحث ، واخيراً lst تحدد إذا ما كنا سوف نضيف ' من أجل النصوص .

والآن جاء دور تنفيذ جملة الاستعلام على قاعدة البيانات D1 ومن خلال الجدول الاضافي T2 :

Set T2 = D1.OpenRecordset(sql, dbOpenDynaset)

وأخيراً سوف نقوم بملء الجدول من خلال استدعاء Fill_Table .

fill_Table

اخوكم

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…