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

السبب في أن الخاصية RecordCount تعطي -1 هو أن محرك قواعد البيانات لا يستطيع أحياناً معرفة عدد السجلات إلا بعد الوصول إلى نهاية مجموعة السجلات (EOF).

لمعرفة عدد السجلات انتقل إلى السجل الأخير بعد فتح الـ Recordset:

كود :
Rs12.MoveLast
MsgBox CStr(Rs12.RecordCount)

لكن هذا الأمر قد يكون مكلفاً إذا كان عدد السجلات كبيراً جداً. بدلاً من ذلك يمكنك استعمال الدالة التالية لمعرفة ما إذا كانت مجموعة السجلات (Recordset) فارغة أم لا:

كود :
Public Function IsEmptyRecordSet(ARecordSet As ADODB.Recordset) As Boolean
    If ARecordSet Is Nothing Then
        IsEmptyRecordSet = True
    ElseIf ARecordSet.State <> adStateOpen Then
        IsEmptyRecordSet = True
    ElseIf ARecordSet.BOF And ARecordSet.EOF Then
        IsEmptyRecordSet = True
    Else
        IsEmptyRecordSet = False
    End If
End Function

و إذا أردت المرور على السجلات في حلقة فاستخدم حلقة Do While مع EOF بدلاً من حلقة For. مثلاً:

كود :
' استخدم الدالة السابقة لمعرفة ما إذا كانت مجموعة السجلات فارغة أم لا
If Not IsEmptyRecordSet(Rs12) Then
    Do While Not Rs12.EOF
        ' ...
        ' اعمل هنا ما تريد عمله
        ' ...
        Rs12.MoveNext    ' مهمة جداً
    Loop
End If

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


الردود في هذا الموضوع
مشكلة مع داو - بواسطة asto - 19-01-14, 03:18 PM
RE: مشكلة مع داو - بواسطة m-kaylani - 19-01-14, 03:35 PM
RE: مشكلة مع داو - بواسطة asto - 19-01-14, 03:40 PM
RE: مشكلة مع داو - بواسطة hago - 19-01-14, 03:58 PM
RE: مشكلة مع داو - بواسطة ناجي إبراهيم - 19-01-14, 04:58 PM


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


يقوم بقرائة الموضوع: