تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
find first مع داو
#1
السلام عليكم

ما هو الكود المستعمل لعمل findfirst , findnext على ado
الرد }}}
تم الشكر بواسطة:
#2
السلام عليكم...

بفرض أن النص الذي سنبحث عنه مكتوب في Text1.

1. من أجل FindFirst:

كود :
Dim BkMrk

    ' الاحتفاظ بالموقع الحالي
    BkMrk = Adodc1.Recordset.Bookmark
    ' الذهاب لأول سجل
    Adodc1.Recordset.MoveFirst
    ' تنفيذ عملية البحث
    Adodc1.Recordset.Find "EmpName = '" & Text1.Text & "'"
    ' في حالة عدم وجود تطابق سيصل إلى نهاية السجلات
    If Adodc1.Recordset.EOF Then
        MsgBox "السجل المطلوب غير موجود"
        ' العودة إلى السجل الذي كان واقفاً عنده
        Adodc1.Recordset.Bookmark = BkMrk
    End If

2. من أجل FindNext:

كود :
Dim BkMrk

    ' الاحتفاظ بالموقع الحالي
    BkMrk = Adodc1.Recordset.Bookmark
    ' تنفيذ عملية البحث
    Adodc1.Recordset.Find "EmpName = '" & Text1.Text & "'"
    ' في حالة عدم وجود تطابق سيصل إلى نهاية السجلات
    If Adodc1.Recordset.EOF Then
        MsgBox "السجل المطلوب غير موجود"
        ' العودة إلى السجل الذي كان واقفاً عنده
        Adodc1.Recordset.Bookmark = BkMrk
    End If

* لاحظ أن الفرق الوحيد بينهما (أي بين First و Next) أننا في حالة First نعيد مؤشر السجلات إلى أول سجل ليبدأ البحث من البداية، أما في حالة Next فإننا لا نعيد مؤشر السجلات إلى البداية و إنما نبدأ البحث من الموقع الحالي لمؤشر السجلات.

* الكود يفترض أن الحقل EmpName هو حقل نصي و لهذا استعملنا علامات الاقتباس الفردية حول نص البحث (قبل و بعد Text1.Text). إذا كان الحقل عددياً فإننا لا نستعمل علامات الاقتباس الفردية، و إذا كان الحقل تاريخ-وقت فيجب أن نحيط نص البحث بعلامتي # (مع Access).

* إذا كنت تتعامل مع ADO ككائنات (مثلاً Dim RS As ADODB.Recordset) بدلاً من المكون ADO Control فضع المتغير RS (أو أياً كان الاسم الذي لديك) بدل Adodc1.Recordset في أي مكان تجدها فيه.

نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}
تم الشكر بواسطة:
#3
هل يمكن استعمال
If Not Data1.Recordset.NoMatch Then
الكود عند الايجاد
endif

بعد هذا الكود

If Adodc1.Recordset.EOF Then
MsgBox "السجل المطلوب غير موجود"
' العودة إلى السجل الذي كان واقفاً عنده
Adodc1.Recordset.Bookmark = BkMrk
End If

او ان الكود عند الاجاد يكون تحت Adodc1.Recordset.Bookmark = BkMrk
الرد }}}
تم الشكر بواسطة:
#4
و عليكم السلام...

سؤالك كان عن ADO (اختصار من ActiveX Data Objects):

إقتباس :ما هو الكود المستعمل لعمل findfirst , findnext على ado

أما الـ Data Control الموجود أصلاً مع VB6 فإنه يستعمل تقنية DAO (اختصار من Data Access Objects) و الخاصية NoMatch موجودة في الـ Recordset التابعة لـ DAO و ليست التابعة لـ ADO.

سلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  Adodc1.Recordset.Find اسلام الكبابى 2 2,805 01-06-14, 03:51 PM
آخر رد: اسلام الكبابى

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


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