كود البحث بأستخدام مكتبة ado وعرض النتائج فى نموذج أخر

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

ok كود البحث بأستخدام مكتبة ado وعرض النتائج فى نموذج أخر

مُساهمة من طرف ???? في الأربعاء فبراير 01, 2012 3:53 pm

و بالنسبة للذي يريد عرض نتائج البحث في form2 باستعمال كود شامل لقاعدة البيانات ؟؟  مع اعطاء الكود المناسب للبحث  مع جزيل الشكر

????
زائر


الرجوع الى أعلى الصفحة اذهب الى الأسفل

ok رد: كود البحث بأستخدام مكتبة ado وعرض النتائج فى نموذج أخر

مُساهمة من طرف أحمد مناع في السبت فبراير 04, 2012 12:18 pm

khasd كتب:و بالنسبة للذي يريد عرض نتائج البحث في form2 باستعمال كود شامل لقاعدة البيانات ؟؟ مع اعطاء الكود المناسب للبحث مع جزيل الشكر



أهلا وسهلا الاخت الفاضلة khasd



فمهت من سؤالك أن برنامجك مكون من عدد 2 نموذج ...النموذج الاول خاص بالعمليات الرئسية على قاعدة البيانات مثل الاضافة و الحذف و التعديل و الحفظ و أيضا أوامر التنقل بين السجلات .......و النموذج الاخر 2 خاص بنتائج البحث .....مثل الصورة التالية :







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











مع العلم بأن تقنية الاتصال بقاعدة البيانات هى مكتبة ado وليس أداة ado الذى سألتى عنها فى مشاركة سابقا ...فأن كنتى تقصدين هذا فاليكى الحل :



الخطوة الاولى : هى أضافة وحدة برمجية للمشروع Module وذلك عن طريق القائمة Project ثم نختار add Module كما فى الشكل التالى :



و الهدف من ذلك كلة هو كتابة كود الاتصال بقاعدة البيانات فى تلك الوحدة البرمجية طالما أننا سنتخدمة فى أكثر من نموذج ....فبدلا من كتابة كود الاتصال فى النموذج الاول ...ثم نكتبة فى النموذج الثانى أو الثالث ....الخ

ثم بعد ذلك نفتح الموديل ثم تعريف متغيرين للاتصال بقاعدة البيانات و الجدول وذلك عن طريق الكود التالى :

الكود:
Public B As New ADODB.Connection
Public R As New ADODB.Recordset

ويرجى ملاحظة أننا قمنا بتعريف المتغرين بأستخدام الامر Public و ليس عن طريق الامر Dim لاننا الامر الاول يتم أستخدامة على مستوى المشروع ككل أما الامر الثانى Dim يكون على مستوى النموذج أو الحدث فقط

ثم نقوم بأنشاء أجراء على مستوى المشروع و ليكن أسمة egy لنضع فية نص الاتصال بقاعدة البيانات ثم نستخدمه فيما بعد و ذلك بأستخدام الكود التالى :



الكود:
Sub egy()
If B.State = adStateOpen Then B.Close
B.Provider = "Microsoft.JET.OLEDB.4.0;"
B.Open App.Path & "\project1.mdb"
End Sub


ويرجى ملاحظة أننا أنشأنا الاجراء بأستخدام الامر Sub ثم اسم الاجراء  egy ..كما يجب ملاحظة أننا عندما نقوم بأنشاء أجراء على مستوى المشروع ككل لم نستخدم الامر Private قبل sub كما فعلنا فى مشاركة سابقة _كود أظهار البيانات التى سألتى عنه سابقا_

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

وهكذا سيكون الكود بالكامل فى الموديل كما فى الشكل التالى :


بهذا نكون قد أنتهينا من برمجة الوحدة البرمجية موديل ....

الخطوة الثانية : برمجة النموذج الاول _نموذج العمليات الرئيسية على قاعدة البيانات :


-بداية سنقوم بعمل أجراء لاظهار بيانات قاعدة البيانات فى مربعات النصوص الاربعة _رقم العميل-أسم العميل-التليفون-العنوان _وذلك عن طريق الكود التالى :


الكود:
Private Sub datashwo()
If R.RecordCount < 1 Then Exit Sub
Text1.Text = R!ID
Text2.Text = R!Name
Text3.Text = R!TEL
Text4.Text = R!ADRS]

End Sub


يرجى ملاحظة أننا هنا أستخدمنا الامر Private قبل الامر Sub ثم أسم الاجراء  datashwo ثم كتبنا كود أظهار البيانات و أعتقد أنك تفهميه جيدا ..

- أما فى حدث تحميل الفورم الاول نضع الكود التالى :

الكود:
Call egy
R.Open "[table1]", B, adOpenStatic, adLockPessimistic
Call datashwo

شرح الكود :

فى السطر الاول تم أستدعاء الاجراء egy وطبعا هذا الاجراء يحمل نص الاتصال بقاعدة البيانات ...
فى السطر الثانى كود فتح الجدول
فى السطر الثالث تم أستدعاء الاجراء datashwo وهو الخاص بأظهار البيانات فى مربعات النصوص

وهكذا نكون قد أتصالنا وفتحنا قاعدة البيانات كما أننا فتحتنا الجدول table1 ...وما عليك الان الا برمجة زر الاضافة و التعديل و الحفظ كما تعلمنا عادى خالص ...

الخطوة الثالثة :برمجة نموذج البحث



_ بداية سنقوم بتعريف متغريين من نوع String وليكن sField و sFull ولذلك لحفظ القيم المدخلة من المستخدم عن طريق الكمبو1 و الكمبو2 الخاص بكل من الحقل المراد البحث فية و مدى تطابق البحث بنص البحث ...وطبعا هذا الكود سوف يتم كتابته فى قسم تصريحات الفورم 2 :

الكود:
Dim sField As String
Dim sFull As String

_ سنقوم بعمل أجراء وليكن أسمه SelectField....وذلك لنجعل المتغير sfield يساوى الحق المراد البحث فية وذلك عن طريق الكود التالى :

الكود:
Private Sub SelectField()
    Select Case Combo1.ListIndex
        Case 0
            sField = "ID"
        Case 1
            sField = "Name"
        Case 2
            sField = "tel"
        Case 3
            sField = "adrs"
     
    End Select
End Sub

سنقوم أيضا بعمل أجراء أخر وليكن Full   ...وذلك لجعل المتغير sFull يساوى مدى التطابق الذى سيختارة المستخدم من الكمبو 2 وذلك بأستخدام الكود التالى :

الكود:
Private Sub Full()
    Select Case Combo2.ListIndex
        Case 0
            sFull = "Full"
        Case 1
            sFull = "StartWith"
        Case 2
            sFull = "Contain"
        Case 3
            sFull = "EndWith"
    End Select
End Sub

- نأتى الى زر " أبحث ":

أول كود لهذا الزر هو أستدعاء الاجراء egy وذلك للاتصال بقاعدة البيانات و ذلك عن طريق الكود التالى :

الكود:
egy

ثم نكتب كود للتأكد من أن مربع النص به قيم و الا أظهار رسالة للمستخدم تخبرة أن نص البحث فارغ عن طريق الكود التالى :

الكود:
If Text1.Text = "" Then
MsgBox "عفوا نص البحث فارغ", vbInformation, "البحث"
Text1.SetFocus
Exit Sub
End If

ثم نكتب أستدعاء كلا من الاجراء SelectField وFull وذلك بأستخدام الكود التالى :

الكود:
Call Full
Call SelectField

ثم نكتب الكود التالى للتأكد أذا كان الجدول مفتوح يتم أغلاقة بأستخدام الكود التالى :


الكود:
If R.State = adStateOpen Then R.Close

ثم بعد ذلك نكتب الكود التالى وهو الخاص بالبحث :

الكود:

Select Case sFull
 
Case "Full"

   sql = "select * from Table1 where " & sField & " = '" & (Text1.Text) & "'"
          R.CursorType = adOpenStatic
          R.CursorLocation = adUseClient
          R.LockType = adLockOptimistic


      R.Open sql, B, , , adCmdText

      If R.RecordCount > 0 Then
          Set DataGrid1.DataSource = R
       Else
          MsgBox "لايوجد نتائج للبحث"
          R.Close
        End If


Case "StartWith"

        sql = "select * from Table1 where " & sField & " like '" & (Text1.Text) & "%'"
           R.CursorType = adOpenStatic
           R.CursorLocation = adUseClient
           R.LockType = adLockOptimistic

    R.Open sql, B, , , adCmdText

       If R.RecordCount > 0 Then
           Set DataGrid1.DataSource = R
        Else
           MsgBox "لايوجد نتائج للبحث"
           R.Close
           End If
          
Case "Contain"


          sql = "select * from Table1 where " & sField & " like '%" & (Text1.Text) & "%'"
            R.CursorType = adOpenStatic
            R.CursorLocation = adUseClient
            R.LockType = adLockOptimistic

      
   R.Open sql, B, , , adCmdText

     If R.RecordCount > 0 Then
           Set DataGrid1.DataSource = R
        Else
           MsgBox "لايوجد نتائج للبحث"
           R.Close
           End If
End Select

شرح الكود فى المشاركة القادمة أن شاء الله تعالى Very Happy:D

و بالتالى فأن الكود النهائى تحت زر "ابحث " فى نموذج البحث سيكون كما فى الشكل التالى :



عدل سابقا من قبل أحمد مناع في الأربعاء ديسمبر 25, 2013 4:59 am عدل 1 مرات

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة
avatar
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 815
النقاط : 1484
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

ok رد: كود البحث بأستخدام مكتبة ado وعرض النتائج فى نموذج أخر

مُساهمة من طرف أحمد مناع في السبت فبراير 04, 2012 12:22 pm


ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة
avatar
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 815
النقاط : 1484
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

ok رد: كود البحث بأستخدام مكتبة ado وعرض النتائج فى نموذج أخر

مُساهمة من طرف ???? في الإثنين فبراير 06, 2012 4:30 pm

حفظك ربي ورعاك شكرا على الشرح اقدر لك مجهوداتك وشكرا لك

????
زائر


الرجوع الى أعلى الصفحة اذهب الى الأسفل

ok رد: كود البحث بأستخدام مكتبة ado وعرض النتائج فى نموذج أخر

مُساهمة من طرف sam_mom11 في الأحد أكتوبر 14, 2012 6:39 pm

الربط لا يعمل
avatar
sam_mom11
.
.

تاريخ التسجيل : 14/10/2012
المساهمات : 1
النقاط : 1
التقيم : 0
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

ok رد: كود البحث بأستخدام مكتبة ado وعرض النتائج فى نموذج أخر

مُساهمة من طرف ahmedismayl في الأحد يناير 19, 2014 2:01 pm

روعة روعة روعة 
ولكن الرابط لا يعمل
avatar
ahmedismayl
..
..

تاريخ التسجيل : 15/01/2014
المساهمات : 24
النقاط : 30
التقيم : 0
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

ok رد: كود البحث بأستخدام مكتبة ado وعرض النتائج فى نموذج أخر

مُساهمة من طرف gadr في الجمعة أكتوبر 30, 2015 10:55 pm

الرابط لا يعمل ياريت ترفع المثال مره اخري
avatar
gadr
...
...

تاريخ التسجيل : 16/11/2014
المساهمات : 44
النقاط : 56
التقيم : 0
الدولة : ليبيا
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى