السلام عليكم و رحمة الله و بركاته
سوف نتناول في هذا الدرس طرق البحث في قواعد البيانات بإستخدام الفيجوال بيسك
طبعاً سوف أقوم بشرح عدّة طرق حتى نتوصل إلى الطريقة المثلى بإذنه تعالى ..
ملاحظة :
إقرأ درس ((كيف تبرمج دليل الهاتف .. )) لأننا سوف نقوم بدراسة عملية عن طريق تطوير البرنامج السابق - دليل الهاتف -
الدرس هنا
http://www.2jm2.com/forums/index.php?act=ST&f=6&t=22
بسم الله الرحمن الرحيم نبدأ :
الطريقة الأولى - الأمر seek :
هذه الطريقة تعد من أبسط الطرق و أسهلها خصوصاً على المبتدئين و تعطي نتائج مبدئياً لا بأس بها
كيفية الاستخدام .. عن طريق الكود التالي
ضع زر أمر بعنوان بحث 1 ضع فيه الكود التالي
Dim sareth
sareth = inputbox("أدخل اسم الشخص المراد البحث عنه",,"مختار سيد صالح")
Data1.Recordset.Index = "name"
Data1.Recordset.Seek ">=", sareth
If Data1.Recordset.NoMatch Then
MsgBox "السجل غير موجود", 16, "مراقب البرنامج"
End Ifملاحظة : البرنامج هنا يبحث في الاسماء .. لجعل البحث في العنوان مثلاً استبدل name ب en و هو اسم حقل العنوان الموجود في قاعدة البيانات
الطريقة الثانية - البداية مع sql :
تعتمد هذه الطريقة على لغة SQL بشكل أساسي و هي لغة تستخدم للتعامل مع قواعد البيانات .. اذا لم تكن تعرف ما هي SQL ولا يهمك و لا تشيل هم .
اضف زر أمر بعنوان بحث 2
ضع فيه الكود التالي
Dim sareth2
sareth2 = inputbox("أدخل اسم الشخص المراد البحث عنه",,"مختار سيد صالح")
data1.RecordSource = "SELECT * FROM mok WHERE name='" & sareth2 & "'"
data1.Refreshملاحظة : هذه الطريقة تظهر النتائج على أنها جدول جديد في قاعدة البيانات لذلك لا تستغرب إذا لم بعرض سوى النتائج في الفورم
ملاحظة 2 : بدون تطبيق المنهج refresh فإن العملية لن تتم لذلك إنتبه فلنا عودة على هذه النقطة
الطريقة الثالثة - تطوير التعامل مع sql :
إذا حاولت البحث في الطريقة الثانية عن اسم مختار مثلاً
و كان عندك سجل شخص أسمه ((مختار سيد صالح)) فإنه لن يظهر لك شيء .. هذا مزعج
طيب افرض أنو بدك تبحث عن كل السجلات التي يحتوي حقل الاسم فيها على كلمة ((مختار))
مثلاً ((أحمد مختار - على مختار محمد - مختار سيد صالح)) يعني بحث ممتاز جداً
إذن فالطريقة السابقة لا تنفع أما الآن سوف أقول لك كيف تتطور الطريقة السابقة و تخليها تنفع ...
استبدل الكود السابق بالكود التالي
Dim sareth2
sareth2 = inputbox("أدخل اسم الشخص المراد البحث عنه",,"مختار سيد صالح")
Data1.RecordSource = "SELECT * FROM mok WHERE name LIKE (""" & "*" & sareth2 & "*" & """)"
data1.Refreshلاحظ أنه لم يتغير شيء من الكود سوى جمله الاستعلام ...
ملاحظة : أنا أفضل الطريقة الأخيرة للبحث عن الاسماء و العناوين و ليس للأرقام لأنها يمكن تسبب إشكالات
الطريقة الرابعة - البحث عن التواريخ :
لو جربت كل الطرق السابقة على حقل للتاريخ فإنك لن تفلح أبداً في البحث و لن تجد نتائج
و قد يعطيك البرنامج أخطاء غير متوقعة ...
لذلك تفضل هذا الكود للبحث عن التواريخ ..
Vardate = "*" & CDate(Date) & "*" segl.Data1.RecordSource = "SELECT * FROM mok WHERE Date like " & "'" & Vardate & "'" & " " segl.Data1.Refresh
ملاحظة : الكود السابق للبحث عن التاريخ لتاريخ اليوم ((تاريخ الجهاز)) يمكنك تطوير المسألة على كيفك
ملاحظات عامة على الدرس :
تعبر الكلمة mok عن إسم الجدول
أما الكلمات name , date , en فهي أسماء الحقول
التطبيق العملي أفضل وسيلة للتعلم الجيد
و أخيراً أرجو منك أخي العزيز أن لا تبخل بالدعاء لي و لوالدي .. و أرجو أن يكون هذا الدس من العلم الذي
ينتفع به ....
و أي سؤال أنا حاضر
أخوكم : مختار سيد صالح
ملاحظة : هذه الدروس التي أقوم بنشرها هنا كلها من تأليفي و هي موجودة في منتدياتي منتديات المختار للبرمجة ... لذلك فمن الطبيعي ان تجد اجدد المواضيع هناك