منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
مشكلة مع داو - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4)
+--- قسم : قسم لغة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=18)
+---- قسم : قسم أسئلة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=28)
+---- الموضوع : مشكلة مع داو (/showthread.php?tid=1619)



مشكلة مع داو - asto - 19-01-14

السلام عليكم

استخدم داو

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

كود :
Text25.Text = Rs12.RecordCount

MsgBox Text25.Text

يعطي -1 فهل من كود يعطي عدد السجلات في داو


RE: مشكلة مع داو - m-kaylani - 19-01-14

rs12.Recordset.MoveFirst
Text25.Text = ""
For Counter = 1 To rs12.Recordset.RecordCount
Text25.Text = Val(Text25.Text) + rs12.Recordset.Fields(5).Value

rs12.Recordset.MoveNext
Next
rs12.Recordset.MoveLast


RE: مشكلة مع داو - asto - 19-01-14

عفوا مع ادو و ليس مع داو


RE: مشكلة مع داو - hago - 19-01-14

إستخدم هذا الكود افضل .. بحيث يتم تمريره الى جمله SQL
كود :
SQL = "select*from YourTabelname"
    rs.Open SQL, db, adOpenKeyset, adLockPessimistic
    Text1 = rs.RecordCount



RE: مشكلة مع داو - ناجي إبراهيم - 19-01-14

السلام عليكم...

السبب في أن الخاصية 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

نرجو الاستفادة و السلام.