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

كيف استمر بعرض السجلات بنتائج البحث ؟

مغلق
بدأه Amorous في 27 مارس 2006 · 12 رد · 877 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

مثلا انا عندي قاعدة بيانات وفيها عدد من السجلات ، سويت بحث على اسم خالد واللي موجود بالداتا بيس ثلاثين اسم لخالد ..( خالد 1 - خالد 2 - خالد 3 - خالد 4 .. الخ ) ابغى اذا سويت البحث اقدر اتنقل بالسجل التالي يعني من خالد 1 الى خالد 2 بس .. ما ابغاه يعرض لي البقية .. مع العلم اني استخدمت الكود التالي ، ما ادري هل هو بيفيدني ولا لا ..

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

مع خالص الشكر والتقدير لجميع اخوة الاعزاء :)

#2

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

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

بدون استخدام BookMark

بل باستخدام Findfirst و Findnext

Dim gFind As String, gBookMark As Variant
     gFind = InputBox("Find What : ", "Search")
If Trim(gFind) = "" Then Exit Sub
rs.Findfirst "[st_name1] LIKE '" & Trim(gFind) & "%'"

do while not (rs.eof)
          rs.Findnext "[st_name1] LIKE '" & Trim(gFind) & "%'"
Loop

تم تعديل هذه المشاركة بواسطة eng2002 في 27 مارس 2006 في 21:34

استغفر الله العظيم من كل ذنب وأتوب إليه

#3

يطلع لي خطأ في rs.Findfirst !

هل استدعي مكتبه معينه او ماذا ؟!

#4

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

اخي eng2002

يبدو ان حضرتك لم تلاحظ أن الاخ Amorous يستخدم تقنية الأدو وليس الداو

وايضا هو لم ينتبه للكود الذي وضعته ولذلك ظهر عنده خطأ

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

RS.Find "[st_name1] LIKE '" & Trim(gFind) & "'"
Text2 = RS("st_name1")
RS.MoveNext

وشرح الكود ببساطة انك بعد انتهاء عملية البحث هتخلي الـ RS ينتقل للسجل التالي

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

جرب واخبرنا بالنتيجة وان شاء الله يشتغل معاك تمام

===========

الى اللقاء

JusT LeT YouR MinD WorK

#5

سلم اخوي مستر كينج على الرد ..

الحين يظهر لي خطأ عند :

Text2 = RS("st_name1")

ولا اعلم مالسبب .. وياليت اخوي شرح وافي شوي للكود :)

تم تعديل هذه المشاركة بواسطة Amorous في 28 مارس 2006 في 15:43

#6

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

اخي الكريم أنا استخدمت في المثال مربع نص اسمه Text2 وهو المفروض انه بيستخدم لعرض الاسم

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

يعني مثلا انت بتعرض اسم الموظف في حقل اسمه Sname.text يبقى هتستبدل الـ Text2 وتحط مكانها Sname وهكذا

جرب وان شاء الله تنجح معاك

واذا وجدت مشكلة اكتب مرة تانية وان شاء الله يكون الرد جاهز

=================

الى اللقاء

JusT LeT YouR MinD WorK

#7

يعطيك العافيه اخوي مستر كنج .. ويبدو انك مافهمتني :)

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

لما اسوي بحث على خالد1 يعرض لي خالد1 صح لكن لما اطلب السجل التالي مايعرض لي خالد2 او السجل اللي بعده ويحمل الاسم خالد2 او غيره .. لا

يعرض لي اسامي غير .. اتمنى انك فهمتني :)

ويعطكيم الف عافيه يا اخوان (وردة)

#8

السلام عليكم جميعاً

اخوي Amorous

آمل منك وضع المثال حقك حتى يتسنا لنا التعديل عليه

وان شاء الله راح اجيب لك الحل بس ضع المثال حقك مع قاعدة البيانات

وشكراً

#9

هذا هو المثال لك اخوي واقعي ولبقية الاخوة *-)

Sample.rar

#10

للرفع !

#11

لو سمحتم انا عندي بحث عن طريق الارقام

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

ليكن الزبون 1 له ارصده او ديون بتاريخ 11-11-1111 وتاريخ 22-11-1232

اريد ان اختار رقم 1 ويظهر لي نتيجه البحث في LIST وتظهر لي جميع التواريخ للزبون 1

ساااعدوني

#12

اعتذر من الاخت لأني كتبت بموضوعها

وياليت تسااعدوني

x = InputBox("search", "enter number")

Data1.Recordset.Index = "ÑÞã ÇáÒÈæä"

Data1.Recordset.Seek "=", x

With Data1.Recordset

If Data1.Recordset.NoMatch Then

Data1.Recordset.MoveFirst

MsgBox "sorry", vbOKOnly, "buy"

End If

Data1.Recordset.MoveNext

List1.AddItem Val(Text3.Text)

End With

هذا الكود اللي انا استخدمه للبحث

ممكن تسااعدوني انا والاخت

#13

السلام عليكم

اسف اخي على التأخير في الرد

ولكن لوجود بعد الاختبارات العملية لدي وضيق الوقت

لقد حملت البرنامج الخاص بك ولكن واجهتني بعض الاخطاء في ا لكود لديك ولم يعمل البرنامج بشكل المطلوب لدي ينقص بعض الملفات

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

:)

والسلام عليكم ورحمة الله وبركاته قبل ان انسى لا تنسانا في دعائك ;)

SS.rar

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

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