• 0
فنكشن

كيفيه البحث المتطور في قاعدة البيانات

سؤال

بسم الله الرحمن الرحيم

اخواني اعضاء هذا المنتدى الكرام

ارجو من اي احد ان يشرح لي طريقة البحث في قاعدة البيانات بتقنية ADO وذلك لآنه الأمر الوحيد المتبقي لدي من الأساسيات لكي اعرفه ،،

البجث الذي أوده اريد ان يكون به الميزات التالية :

1- بحث حسب الحقل المحدد

2- تحديد مدى تطابق النص الذي يتم البحث عنه ، مثلا مطابق له تماما ، يبدأ بـ ، ينتهي ، يحتوي على ، ،،، بهذه الطريقة ..

3- البحث عن التالي ،،، أي اذا نقرت على زر البحث وعرض لي البرنامج نتيجه للبحث ، واريد ان يبحث لي عن نتائج اخرى لها نفس الشروط ( أسلوب البحث عن التالي كلنا نعرفه كيف نكتب أكواده ؟؟ )

بإنتظار مشاركاتكم الطيبه :rolleyes:

مع خالص التحيه : فنكشن

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

20 إجابة على هذا السؤال .

  • 0

هذا هو الكود للبحث بجزء من الاسم

  Dim gFind As String, gBookMark As Variant
     gFind = InputBox("Find What : ", "Search")
'
If Trim(gFind) = "" Then Exit Sub
'
   gBookMark = rs.Bookmark
'
   rs.Find "[CategoryName] LIKE '" & Trim(gFind) & "%'", 0, adSearchForward, 1
'
If rs.EOF Then
   rs.Bookmark = gBookMark
 Exit Sub
End If
'

ويمكنك الرجوع إلى هذا الرابط ففيه شرح وافي عن هذه الاداة

http://www.arabdevelopers.com/vbb/showthre...=&threadid=4486

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مشكور أخي العزيز على المرور ولكني ل ما حصل على مرادي من الوصلات التي طرحتها ،

الطريقه بها تعقيد نوعا ما وعندما انسخ الاكواد نسخا تظهر لي اخطاء طويله عريضه !!!

الرجاء المساعده من الاخوة

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

1- بحث حسب الحقل المحدد

dim Sql as String
Sql = "SELECT " & col & "From table_name WHERE name like '%" & Text1.Text  & " & "' or '" & Text1.Text & "%' or   '%" & Text1.Text  & "'%"

حيث col متغير يحدد اسم الحقل الي تريد ان تبحث فيه

table_name اسم الجدول

عشان تنفذ هذا الإستعلام إعمل التالي

Dim dbc as new AdoCdb.Connection
dim re as RecordSet,conProvider  as String

'هنا يجب ان تقوم بتحديد محرك الإتصال لقاعدة البيانات  الي هو
conProvider = "provider=microsoft........................."

Set rs = dbc.open (Sql ,conProvider)

الحين الإستعلام الناتج موجود في rs ضع التعريفات في قسم التصريحات العامة (في بداية الصفحة )

زر البحث عن التالي :

If rs.EOF = False then

text1.text = rs.field(0)

rs.MovNext

else

end if

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

1- بحث حسب الحقل المحدد

dim Sql as String
Sql = "SELECT " & col & "From table_name WHERE name like '%" & Text1.Text  & "' or '" & Text1.Text & "%' or '%" & Text1.Text  "%'"

حيث col متغير يحدد اسم الحقل الي تريد ان تبحث فيه

table_name اسم الجدول

وضيفة الإستعلام يبحث عن الكلمة في الحقل بالكامل

عشان تنفذ هذا الإستعلام إعمل التالي

Dim dbc as new AdoCdb.Connection
dim re as RecordSet,conProvider  as String

'هنا يجب ان تقوم بتحديد محرك الإتصال لقاعدة البيانات  الي هو
conProvider = "provider=microsoft........................."

Set rs = dbc.open (Sql ,conProvider)

الحين الإستعلام الناتج موجود في rs ضع التعريفات في قسم التصريحات العامة (في بداية الصفحة )

زر البحث عن التالي :

If rs.EOF = False then
  text2.text = rs.field(0)
 rs.MovNext
else
     msgbox "نهاية السجل"
end if

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

تم تعديل بواسطه فواز الشمري
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا لك اخي العزيز وسأطبق الأكواد وأحاول ان اصحح اي خطأ قد يوجد . ..

تقبل تحياتي الخالصه لك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اود منكم المساعده ... كيف ابحث من خلال الحرف الاخير او الجزء الاخير من الكلمه ؟؟؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي فنكشن

الحلقة الأخيرة بها كل ما تسال عنه

ارجع لها وإن شاء الله تجد الإجابة والمثال المرفق به جميع الأكواد

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا لك اخي العزيز وفقك الله على مساعدتنا الدائمه

ومبروك على الترقيه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخي العزيز ناصر ، لم اجد مبتغاي في الحلقه الاخيره حتى الان ( الحاديه عشرة ) .. الحلقه تختص بجمل SQL وعرض البيانات من خلالها وطريقة مغايره لطريقة البحث .. ولكني اود ان افعل ذلك من خلال rs.Find فهل تساعدني ؟؟؟ فهي الوحيده التي استعصت علي الى الان

تحياتي لك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أعتقد أن هذا الرابط سيفديك ..

تعلــــــــــــم ADO معنا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

Private Sub Command4_Click()

Dim sName As String

sName = InputBox("أدخل إسم الطالب")

If sName <> "" Then

Data1.Recordset.MoveFirst

Data1.Recordset.Find "st_name like '%" & sName & "%'"

If Data1.Recordset.EOF Then MsgBox "غير موجود"

End If

بجزء من الأسم او الأسم كامل

End Sub

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
Private Sub Command4_Click()

Dim sName  As String

sName = InputBox("أدخل إسم الطالب")

If sName <> "" Then

  Data1.Recordset.MoveFirst

                  "'%"& Data1.Recordset.Find "st_name like '%" & sName

                "غير موجود"  If Data1.Recordset.EOF Then MsgBox

End If

                                                                                                                           

End Sub

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

سؤال إذا كنت تستخدم Ado فلا يوجد به خاصية البحث عن التالي findnext

ولكن يمكنك تنفيذ البحث مرة ثانية باستخدام الكائن DAO أو الأداة DATA لنهم يدعمون find,findnext وهكذا

فماذا تطلب بالضبط

إذا كان للكائن dao فانا شارحة في حلقة DAO بالتفصيل ارجع اليه وستجد مثال على ذلك

وبالنسبة للكائن ADO جملة find تحصل على جميع السجلات المتوافقة مع الشرط من الجدول ولا تحتاج مع الى FindNext وإن أردت مع أكثر من جدول يمكنك استخدام الأمر Filter وهي مدعومة مع ADO ايضا

لك تحياتي

اخوك ناصر

تم تعديل بواسطه nasser50001
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي HnHn ( نفسي اعرف معنى هذا الإسم !! ) :

لقد اطلعت على الدرس السابق مرارا وتكرارا من مصدره الاصلي في منتدى الابداع الاسلامي ... ولكنه لا يحتوي على ما اردت ..

أخي Devloper :

شكرا على المحاوله ولكن للأسف طريقتك لم تنجح معي وهي تعتمد على الاداة DataControl بينما انا اعمل على مكتبة ADO

أخي nasser50001 :

لا اعرف من اين الخطأ لدي ولكني قد طبقت ما حوته الحلقه واتبعت الكود التالي ( حسبما فهمت من الدرس ) :

Rs.Find "Name Like '%" & txtSerch.Text & "'"

ولكن بلا فائده :( ،،، حتى لو استبدلت العلامة % بالنجمه " * " فعند تنفيذ الكود السابق تظهر لي رساله الخطأ ( التي كرهتها كثيرا فهي تظهر في وجهي منذ مده ) بأن هناك خطأ في بناء الجمله ؟! اي خطا هذا ؟؟ لم اعرفه ولم افهمه ابدا ,،،

انتظر انتهاء هذا الامر الغريب على خير :wacko:

تم تعديل بواسطه فنكشن
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يمكن الخطا في علامات التنصيص

s = "st_name='" + txtSerch.Text  + "'"
rs.Find s

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي العزيز ...

لقد حاولت وحاولت ولكن لا اعلم ما الامر الغريب الموجود :wacko: وما هي المشكله في الكود مع انه صحيح 100 % !!!!!!

ارفق لكم الكود ليتكرم اي احد منكم برؤيته واكتشاف موضوع الخطأ وتعديله واخباري بالتعديل وماهيته واكون له من الشاكرين ....... :unsure:

Data_Base.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

عذرا عن التأخير

لا اعرف من اين الخطأ لدي ولكني قد طبقت ما حوته الحلقه واتبعت الكود التالي ( حسبما فهمت من الدرس ) :

Rs.Find "Name Like '%" & txtSerch.Text & "'"

جرب هذا

Rs.Find "[Name] Like '" & Trim(Text1.Text) & "%', 0, adSearchForward, 1

حيث أن

0, adSearchForward, 1 يقوم بالبدء بعملية البحث من أول السجلات

وأتمنى ان ترجع للرابط السابق المخصص عن تعلم اADO معنا فهو مشروح بطريقة جميلة .. وقمت بأنزال المرفق السابق .. وسرى الموضوع وأعاود تنزيله ان شالله :rolleyes: تحياتي

تم تعديل بواسطه HnHn
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخي الحبيب HnHn

اولا اشكرك على الرد

ثانيا ،

لقد اطلعت على الكود الذي ارفقته ولكن هو الآخر اخفق !!!! اتمنى معرفه المشكله التي حلت على عملية البحث بالحرف الاخير لدي !!!

الكود الذي ارفقته للأخ هيثم القلاف يبحث بالحرف الأول وعندما عدلته للحرف الاخير ايضا لم يعمل ! ..........

اعتقد ان المشكله : بلا تعليق !

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .