الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

البحث بواسطة الاسم الثاني..هام للضرورة

مغلق
بدأه i1982 في 27 أكتوبر 2007 · 11 رد · 1,937 مشاهدة · في قسم قواعد البيانات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتة

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

		Adodc1.RecordSource = "Select * From main Where name LIKE '" & Text3 & "%';"

		Adodc1.Refresh

يعني لو فرضنا ان هذا الاسم في قاعدة البيانات (محمد محمود علي سالم) ولو اردت البحث عن اسم الاب وكتبت محمود علي مثلا اريد ان يظهر كل من اسم الاب لديهم محمود علي

انا استخدم الـAdo للربط مع قاعدة البيانات.

السؤال هل استطيع البحث بواسطة الاسم الثاني يعني بواسطة اسم الاب او الجد او العائلة مثلا؟ على اعتبار ان اسم الجدول هو main وان اسم الحقل للبحث هو name

#2

وعليكم السلام ورحمة الله وبركاته

لنفرض أن اكود التالي هو المسئول عن الاتصال بقاعدة البيانات وفتح جدول :

db.Open "Provider=Microsoft.Jet.OLEDB.4.0; jet OLEDB:Database Password=;Data Source=" & App.Path & "\yourAccessDataBase.mdb;Persist Security Info=true"

If rec.State = adStateOpen Then rec.Close
rec.Open "[TabelName]", db, adOpenStatic, adLockPessimistic

استخدم الكود التالي في عملية البحث وليكن على زر أمر في حدث Click أو TextBox في حدث Change

Dim findingR As String, BookMarkR As Variant
findingR = Text1.Text ' حيث text1 الاسم الثاني الذي تريد البحث عنه
If Trim(findingR) = "" Then
rec.MoveFirst
Exit Sub
End If

BookMarkR = rec.Bookmark

rec.Find "[Name2] LIKE '" & Trim(findingR) & "%'", 0, adSearchForward, 1
If rec.EOF Then
rec.Bookmark = BookMarkR
Exit Sub
End If
text2.text = rec![recordName] ' هذا الكود خاص بعرض قيمة السجل بعد عملية البحث

تحياتي لك

#3

شكرا لك على الرد ولقد حصلت على هذا الخطأ عند التشغيل وكان على هذه الجملة من الكود

If rec.State = adStateOpen Then
#4

السلام عليكماخوي اذا كنا الاسم كلمل في قاعدة البينات في حقل واحد فهذا الكود

Dim x, y As String
x = Text1.TextIf x = "" Then Exit Sub
Adodc1.RecordSource = "select * from PO_Serial_Number_STC where Work like '%" & x & "%'"
Adodc1.CommandType = adCmdText
Adodc1.Refresh

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

تم تعديل هذه المشاركة بواسطة domo3-mjro7 في 1 نوفمبر 2007 في 18:41

#5

طيب ولو كان الاسم بهذا الشكل بدون مسافات (محمدمحمودعلي) اصبح اسم واحد لثلاث اسماء ولن ينفع استخدام Split لاستخراج الاسم الاول او الثاني حسب المسافه الفاصله بين الاسماء ؟؟؟!!!!!!!!!!!!

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#6

جرب هذا الكود :

Dim TxTSearch As String
Dim S1 As String

TxTSearch = "محمود علي"

Adodc1.RecordSource = "Select * From Main"
Adodc1.Refresh

If Adodc1.Recordset.BOF = False And Adodc1.Recordset.EOF = False Then Adodc1.Recordset.MoveFirst

For i = 0 To Adodc1.Recordset.RecordCount - 1


If Left(Mid(Adodc1.Recordset("Name").Value, InStr(1, Adodc1.Recordset("Name").Value, " ") + 1), Len(TxTSearch)) = Trim(TxTSearch) Then

   S1 = Left(Mid(Adodc1.Recordset("Name").Value, InStr(1, Adodc1.Recordset("Name").Value, " ") + 1), Len(TxTSearch))

   If InStr(1, S1, Trim(TxTSearch)) > 0 Then Print Adodc1.Recordset("Name").Value

End If

Adodc1.Recordset.MoveNext
Next i

مع ملاحظة ان العملية هذي تعتمد على الاسم الثاني

تم تعديل هذه المشاركة بواسطة العقده في 1 نوفمبر 2007 في 22:41

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#7

شكرا لكم جميعا على المشاركة واظن ان كود الاخ العقده جيد جدا ولكن لدي طلب بسيط ان تظهر النتائج في الداتا جريد وليس على الفورم...في انتظار تعديل الكود

كما انه لدي سؤال هل من الممكن ان اجعل البحث بواسطة اسم الجد او العائلة ارجو منكم التوضيح ولكم جزيل الشكر

تم تعديل هذه المشاركة بواسطة i1982 في 1 نوفمبر 2007 في 23:13

#8

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

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#9

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

#10

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

#11

هل من مجيب يا اخواني؟؟؟؟؟؟

#12

اخي الكريم للبحث عن اي كلمة داخل الاسم ضعها بين %% وسيبحث عنها اينما كان

هكذا

Adodc1.RecordSource = "Select * From main Where name LIKE '%" & Text3 & "%';"

Adodc1.Refresh

للربط مع الداتا جريد ضعها على الفورم وضع في الخاصية datasource

adodc1

او في الكود بعد البحث Adodc1.Refresh ضع

set DataGrid1.DataSource=adodc1

DataGrid1.ReBind

هذا الموضوع مغلق.

مواضيع مشابهة