المشاركات : 491
المواضيع 63
الإنتساب : Sep 2013
السمعة :
2
الشكر: 33
تم شكره 272 مرات في 75 مشاركات
السلام عليكم
ما هو الكود المستعمل لعمل findfirst , findnext على ado
المشاركات : 372
المواضيع 15
الإنتساب : Sep 2013
السمعة :
28
الشكر: 487
تم شكره 1677 مرات في 187 مشاركات
السلام عليكم...
بفرض أن النص الذي سنبحث عنه مكتوب في 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 في أي مكان تجدها فيه.
نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
المشاركات : 491
المواضيع 63
الإنتساب : Sep 2013
السمعة :
2
الشكر: 33
تم شكره 272 مرات في 75 مشاركات
هل يمكن استعمال
If Not Data1.Recordset.NoMatch Then
الكود عند الايجاد
endif
بعد هذا الكود
If Adodc1.Recordset.EOF Then
MsgBox "السجل المطلوب غير موجود"
' العودة إلى السجل الذي كان واقفاً عنده
Adodc1.Recordset.Bookmark = BkMrk
End If
او ان الكود عند الاجاد يكون تحت Adodc1.Recordset.Bookmark = BkMrk
المشاركات : 372
المواضيع 15
الإنتساب : Sep 2013
السمعة :
28
الشكر: 487
تم شكره 1677 مرات في 187 مشاركات
و عليكم السلام...
سؤالك كان عن ADO (اختصار من ActiveX Data Objects):
إقتباس :ما هو الكود المستعمل لعمل findfirst , findnext على ado
أما الـ Data Control الموجود أصلاً مع VB6 فإنه يستعمل تقنية DAO (اختصار من Data Access Objects) و الخاصية NoMatch موجودة في الـ Recordset التابعة لـ DAO و ليست التابعة لـ ADO.
سلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ