14-10-12, 02:11 PM
بسم الله الرحمن الرحيم .
المقدمة :
في الدروس السابقة تعلمنا كيفية فتح قاعدة البيانات والتعامل معها ، العرض في الجدول MSFlexGrid ، والآن سوف نقوم بالبحث من خلال احدى جمل الاستعلام وهي جملة Select ، وقريباً سيكون هناك شرح مفصل لجمل الاستعلام .
الدرس :
تذكير سريع بجملة Select .
من أشهر جمل الاستعلامات هي الجملة التي تستخدم الكلمة المفتاحية Select . وصيغتها القياسية هي :
أما Tables فهي اسماء الجداول ، والشروط فهي مثل name='ahmed' و age>5 ، مع استخدام معاملات اخرى مثل between و Like ، وبارميترات Parmeters مختلفة مثل ? و - وغيرها .
وأخيراً اذكرك بأنه عند التعامل مع النصوص فإنه لا بد من وضع '' حول الاسم ، ومع التواريخ يتم وضع ## حول التاريخ وهما النوعان الأكثر استخداماً ، أما الارقام فلا تحتاج إلى اي شيء ...
والآن إلى بداية الدرس ...
سوف نضيف أولاً الجزء الخاص بشاشة البحث ، سوف يكون بالشكل التالي :
البحث عن الأشخاص الذين لديهم ( ComboBox1 ) ( ComboBox2 ) ( searchText )
حيث سيحتوي ComboBox1 على ( الرقم - الاسم - الهاتف ) أما الثاني فيحتوي على ( = - > - < ) ، وتوضع كلمة البحث في ال searchText .
ومن ثم يوضع زر أمر بعرض نتائج البحث في الجدول .
في حدث Form_Load سوف نضيف العناصر المطلوبة للقائمتين :
ولا بد من التحكم في القائمة الثانية ، حيث لا يمكن التحكم بها إلا عند اختيار الرقم ، أما الاسم والهاتف فلا يمكن البحث ب < أو > في مثالنا هذا - يمكن استخدامها ولكن ليس في مثل هذا المثال - . ويتم ذلك من خلال الحدث Click للاداة Combo1 :
في بداية زر الامر سوف نتأكد من أنه ادخل كلمة للبحث عنها :
لاحقاً سوف نشكل جملة الاستعلام ، وذلك بالشكل التالي :
حيث نخزن في fldname الحقل الذي نبحث عنه ، op معامل البحث ، واخيراً lst تحدد إذا ما كنا سوف نضيف ' من أجل النصوص .
والآن جاء دور تنفيذ جملة الاستعلام على قاعدة البيانات D1 ومن خلال الجدول الاضافي T2 :
وأخيراً سوف نقوم بملء الجدول من خلال استدعاء Fill_Table .
خاتمة :
في هذا السلسلة البسيطة من الدروس تعرفنا على اساسيات التعامل مع Dao من خلال فيجوال بيسك Visual Basic مع قواعد بيانات Access .
وملف العمل موجود في المرفقات ...
أسأل الله أن أكون قد وفقت في هذا الشرح البسيط ، فما كان فيه من صواب فمن الله ، وما كان من خطأ فمن نفسي والشيطان ، والله الهادي إلى سواء السبيل .
والسلام عليكم ورحمة الله وبركاته .
المقدمة :
في الدروس السابقة تعلمنا كيفية فتح قاعدة البيانات والتعامل معها ، العرض في الجدول MSFlexGrid ، والآن سوف نقوم بالبحث من خلال احدى جمل الاستعلام وهي جملة 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في هذا السلسلة البسيطة من الدروس تعرفنا على اساسيات التعامل مع Dao من خلال فيجوال بيسك Visual Basic مع قواعد بيانات Access .
وملف العمل موجود في المرفقات ...
أسأل الله أن أكون قد وفقت في هذا الشرح البسيط ، فما كان فيه من صواب فمن الله ، وما كان من خطأ فمن نفسي والشيطان ، والله الهادي إلى سواء السبيل .
والسلام عليكم ورحمة الله وبركاته .
