19-01-14, 04:44 PM
السلام عليكم...
تعديل على كود الأخ VB_Coder:
عند اختبار الخاصية RecordCount لـ Recordset بعد فتحها مباشرة غالباً ما تعطي -1 (لأنها تحتاج إلى MoveLast لمعرفة عدد السجلات).
لهذا نحتاج إلى اختبار ما إذا كانت الـ Recordset فارغة أم لا دون اختبار قيمة RecordCount.
الحل:
1. في الـ Module أضف الدالة التالية التي تتأكد مما إذا كانت الـ Recordset فارغة أم لا:
2. قم بتعديل كود الحدث Form_Load ليكون كالتالي:
نرجو الاستفادة و السلام.
تعديل على كود الأخ VB_Coder:
عند اختبار الخاصية RecordCount لـ Recordset بعد فتحها مباشرة غالباً ما تعطي -1 (لأنها تحتاج إلى MoveLast لمعرفة عدد السجلات).
لهذا نحتاج إلى اختبار ما إذا كانت الـ Recordset فارغة أم لا دون اختبار قيمة RecordCount.
الحل:
1. في الـ Module أضف الدالة التالية التي تتأكد مما إذا كانت الـ 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 Function2. قم بتعديل كود الحدث Form_Load ليكون كالتالي:
كود :
Private Sub Form_Load()
Dim I As Long
ConnectDB
rs.Open "Select * From A", DB, adOpenDynamic, adLockPessimistic
I = 0
If Not IsEmptyRecordSet(rs) Then
Do While Not rs.EOF
I = I + 1
Load Command1(I)
Command1(I).Caption = I
Command1(I).Left = 240
If I = 1 Then
Command1(I).Top = 120
Else
Command1(I).Top = Command1(I - 1).Top + Command1(I - 1).Height + 120
End If
Command1(I).Visible = True
rs.MoveNext
Loop
End If
End Subنرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
