تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الحفظ والحذف و البحث باستخدام ado
#1
بسم الله الرحمن الرحيم
إخواني الأعزاء .. تحية طيبة .. وبعد

في الدرس السابق " طريقة التعامل مع قاعدة البيانات وربطها بالفيجوال بيسك 6 " تعلمنا كيفية إنشاء وربط قاعدة البيانات بالبرنامج وطريقة عرض البيانات داخل Datagrid مع مجموعة من التكست بوكس ..

وفي هذا الدرس ان شاء الله نتعلم كيفية كتابة اكواد الحفظ والحذف والبحث باستخدام مكتبة ADO اعتماداً على المشروع في الدرس السابق .


اولا : الحفظ :

1- ضع على مساحة العمل لديك - Form - من صندوق الادوات 4 من اداة Command و 1 من اداة TextBox ليصبح عندك إجمالا 4 command و 4 text - اعتمادا على مشروعنا السابق في الدرس السابق - .
2- قم بتغيير عناوينهم من شاشة الخصائص من الخاصية " Caption " إلى إضافة و حفظ و حذف و بحث .
3- اكتب الكود التالي في زر " إضافة " .

كود :
Adodc1.Recordset.AddNew

4- اكتب الكود التالي في زر " حفظ " .


كود :
Adodc1.Recordset.Update

بالنقر على زر " إضافة " فإن جميع الحقول والتكست بوكس الممثِّلة لهذه الحقول في السجل الجديد الذي قمت بإضافته تصبح فارغة بالكامل استعدادا لإدخال بيانات جديدة .
لكن في بعض الأحيان إذا أردنا حفظ بيانات في حقول بعينها مثل الحقل رقم 2 فقط أو 2 و3 فقط أو 1 و3 في الجدول الاساسي في قاعدة البيانات فيجب علينا معرفة رقم الحقل وذلك عن طريق العد علماً بأن العد يبدأ برقم 0 ، فالحقل رقم 2 الذي تراه بعينك هو في الحقيقة رقم 1 بالنسبة للبرنامج . لذلك نعمد للكود التالي لحفظ حقول بعينها :

كود :
Adodc1.Recordset.Fields(1) = Text2

وهكذا ..

ملاحظة :
في بعض الأحيان عند الضغط على زر " إضافة " ثم الخروج مباشرة من البرنامج تظهر لك رسالة خطأ تفيد أنه لا يمكن حفظ سجل فارغ ، لذلك نكتب في حدث " unload " مايفيد بأن الحقول كلها أو أهمها مثل الاسم مثلا إذا كانت فارغة فقم بحذف السجل وذلك على النحو التالي :


كود :
On Error Resume Next

If Text1 = "" Then Adodc1.Recordset.Delete

أو

كود :
If Text1 = "" Then Adodc1.Recordset.CancelUpdate

ثانيا : الحذف :

قم بكتابة الكود التالي في زر " حذف " :

كود :
On Error Resume Next
Adodc1.Recordset.Delete

بإمكانك تطوير الكود السابق بطريقة أفضل على النحو التالي :


كود :
On Error Resume Next
Dim a, b As String
a = MsgBox("هل تريد الحذف بالفعل ؟", vbQuestion + vbYesNo)
If a = 6 Then
GoTo x1
Else
GoTo x2
End If

x1: Adodc1.Recordset.Delete
   If Adodc1.Recordset.RecordCount = 0 Then
   b = MsgBox("لا يوجد سجلات", vbInformation)
   End If

x2:  Exit Sub

ثالثا : البحث :

قم بكتابة الكود التالي في زر " بحث " :
كود :
Me.Adodc1.Recordset.Filter = " [Phone] LIKE '" & Me.Text4 & "*' "
بإمكانك تطوير الكود السابق والاستغناء عن زر البحث نهائيا والاعتماد على التكس بوكس فقط للبحث وذلك على النحو التالي :

اكتب في حدث " Change " للتكست بوكس رقم 4 :

كود :
On Error Resume Next
If Text4 = "" Then
Me.Adodc1.Refresh
Me.Adodc1.Recordset.MoveLast
Else
Me.Adodc1.Recordset.Filter = " [Phone] LIKE '" & Me.Text4 & "*' "
End If

ملاحظة :
كلمة " Phone " هي الحقل الذي تريد البحث فيه على كامل الجدول ، أي بإمكانك حذفها و كتابة " Name " مثلا إذا كنت تريد البحث عن طريق الاسم وهكذا ..
ويجب أن تكون هذه الكلمة مطابقة تماما لعنوان الحقل في الجدول فلو فقد حرف منها لن تستطيع اتمام عملية البحث .


بذلك نكون قد انتهينا من الدرس وبالله التوفيق


ادعوا لي بالشفاء
الرد }}}
تم الشكر بواسطة: sulimanalahdl , awidan76
#2
مجهود رائع اخى ENG.MPROG جزاك الله خير
سبحان الله وبحمده سبحان الله العظيم
آللهم لگ آلحمد حتى ترضى .. ولگ آلحمد إذا رضيِت .. ولگ آلحمد بعد آلرضآ
الرد }}}
تم الشكر بواسطة: awidan76
#3
اشكرك شكرا جزيلا اخي hago وبارك الله فيك

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

شكرا لك مره اخرى اخي hago

تحياتي
الرد }}}
تم الشكر بواسطة: awidan76
#4
[COLOR="#B22222"]بسم الله الرحمن الرحيم
أسأل الله العظيم رب العرش العظيم أن يشفيك
[/COLOR]
الرد }}}
تم الشكر بواسطة: awidan76
#5
مجهود تشكر عليه استاذى

جعله الله فى ميزان حسناتك

تقبل تحياتى
الرد }}}
تم الشكر بواسطة: awidan76
#6
عمل ممتاز اسال الله لك التوفيق
الرد }}}
تم الشكر بواسطة:
#7
جزاء الله خير
الرد }}}
تم الشكر بواسطة: awidan76 , awidan76
#8
(11-12-12, 06:53 AM)ENG.MPROG كتب :
بسم الله الرحمن الرحيم
إخواني الأعزاء .. تحية طيبة .. وبعد

في الدرس السابق " طريقة التعامل مع قاعدة البيانات وربطها بالفيجوال بيسك 6 " تعلمنا كيفية إنشاء وربط قاعدة البيانات بالبرنامج وطريقة عرض البيانات داخل Datagrid مع مجموعة من التكست بوكس ..

وفي هذا الدرس ان شاء الله نتعلم كيفية كتابة اكواد الحفظ والحذف والبحث باستخدام مكتبة ADO اعتماداً على المشروع في الدرس السابق .


اولا : الحفظ :

1- ضع على مساحة العمل لديك - Form - من صندوق الادوات 4 من اداة Command و 1 من اداة TextBox ليصبح عندك إجمالا 4 command و 4 text - اعتمادا على مشروعنا السابق في الدرس السابق - .
2- قم بتغيير عناوينهم من شاشة الخصائص من الخاصية " Caption " إلى إضافة و حفظ و حذف و بحث .
3- اكتب الكود التالي في زر " إضافة " .

كود :
Adodc1.Recordset.AddNew

4- اكتب الكود التالي في زر " حفظ " .


كود :
Adodc1.Recordset.Update

بالنقر على زر " إضافة " فإن جميع الحقول والتكست بوكس الممثِّلة لهذه الحقول في السجل الجديد الذي قمت بإضافته تصبح فارغة بالكامل استعدادا لإدخال بيانات جديدة .
لكن في بعض الأحيان إذا أردنا حفظ بيانات في حقول بعينها مثل الحقل رقم 2 فقط أو 2 و3 فقط أو 1 و3 في الجدول الاساسي في قاعدة البيانات فيجب علينا معرفة رقم الحقل وذلك عن طريق العد علماً بأن العد يبدأ برقم 0 ، فالحقل رقم 2 الذي تراه بعينك هو في الحقيقة رقم 1 بالنسبة للبرنامج . لذلك نعمد للكود التالي لحفظ حقول بعينها :

كود :
Adodc1.Recordset.Fields(1) = Text2

وهكذا ..

ملاحظة :
في بعض الأحيان عند الضغط على زر " إضافة " ثم الخروج مباشرة من البرنامج تظهر لك رسالة خطأ تفيد أنه لا يمكن حفظ سجل فارغ ، لذلك نكتب في حدث " unload " مايفيد بأن الحقول كلها أو أهمها مثل الاسم مثلا إذا كانت فارغة فقم بحذف السجل وذلك على النحو التالي :


كود :
On Error Resume Next

If Text1 = "" Then Adodc1.Recordset.Delete

أو

كود :
If Text1 = "" Then Adodc1.Recordset.CancelUpdate

ثانيا : الحذف :

قم بكتابة الكود التالي في زر " حذف " :

كود :
On Error Resume Next
Adodc1.Recordset.Delete

بإمكانك تطوير الكود السابق بطريقة أفضل على النحو التالي :


كود :
On Error Resume Next
Dim a, b As String
a = MsgBox("هل تريد الحذف بالفعل ؟", vbQuestion + vbYesNo)
If a = 6 Then
GoTo x1
Else
GoTo x2
End If

x1: Adodc1.Recordset.Delete
   If Adodc1.Recordset.RecordCount = 0 Then
   b = MsgBox("لا يوجد سجلات", vbInformation)
   End If

x2:  Exit Sub

ثالثا : البحث :

قم بكتابة الكود التالي في زر " بحث " :
كود :
Me.Adodc1.Recordset.Filter = " [Phone] LIKE '" & Me.Text4 & "*' "
بإمكانك تطوير الكود السابق والاستغناء عن زر البحث نهائيا والاعتماد على التكس بوكس فقط للبحث وذلك على النحو التالي :

اكتب في حدث " Change " للتكست بوكس رقم 4 :

كود :
On Error Resume Next
If Text4 = "" Then
Me.Adodc1.Refresh
Me.Adodc1.Recordset.MoveLast
Else
Me.Adodc1.Recordset.Filter = " [Phone] LIKE '" & Me.Text4 & "*' "
End If

ملاحظة :
كلمة " Phone " هي الحقل الذي تريد البحث فيه على كامل الجدول ، أي بإمكانك حذفها و كتابة " Name " مثلا إذا كنت تريد البحث عن طريق الاسم وهكذا ..
ويجب أن تكون هذه الكلمة مطابقة تماما لعنوان الحقل في الجدول فلو فقد حرف منها لن تستطيع اتمام عملية البحث .


بذلك نكون قد انتهينا من الدرس وبالله التوفيق


ادعوا لي بالشفاء






نشكرك جزيل الشكر أخي الكريم على هذه التوضيحات الرائعة
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  طلب مساعدة " البحث بأكثر من معامل " (صاحب البرنامج الأصلي Raggi Tech ) AEDC 7 2,419 18-06-23, 12:23 PM
آخر رد: Taha Okla
  كيف استخدم خاصيه (thread) في امر زر البحث من قاعده بيانات مثلا (mdb) او (mysql) scsi7000 0 751 29-07-22, 10:53 AM
آخر رد: scsi7000
  تعلم كيف تربط برنامجك بالاكسس باستخدام مكتية Ado مع العمليات الاساسية hago 30 44,112 12-06-20, 05:41 PM
آخر رد: ahmed250
  مشكلة في البحث والتعديل في البرنامج thams 1 2,220 29-01-17, 10:04 PM
آخر رد: عبد العزيز البسكري
Lightbulb أريد كود البحث لبرنامج ترجمة (قاموس) Emad Nashaat 1 2,239 03-07-16, 12:27 PM
آخر رد: amer2000
  كود البحث فى جدولين اسلام الكبابى 7 5,279 13-06-15, 03:50 AM
آخر رد: اسلام الكبابى
  اضافة سجل باستخدام الكود اسلام الكبابى 1 2,772 25-03-15, 09:05 PM
آخر رد: اسلام الكبابى
Question [سؤال] سؤال في البحث بإستخدام Combo allayl 2 3,523 14-06-14, 01:23 AM
آخر رد: allayl
Sad [كود] محتاج كود البحث الداتا قريد ماجد الحربي2008 0 2,386 15-05-14, 05:50 AM
آخر رد: ماجد الحربي2008
Wink [كود] المساعد في كود البحث عن سنة معينة allayl 10 5,891 30-03-14, 12:43 PM
آخر رد: تركي الحلواني

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


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