18-01-14, 04:13 PM (آخر تعديل لهذه المشاركة : 18-01-14, 04:15 PM {2} بواسطة VB.NET.)
لدي جدول في قاعدة البيانات اريد ان انشاء BUTTON لكل سجل اي تلقائي مثال :
جدول بأسم A
يحتوي على خمسة سجلات اريد ان انشاء BUTTON لكل سجل تلقائي
ارفقت مثال ليتم التعديل عليه
عند اختبار الخاصية 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 Function
2. قم بتعديل كود الحدث 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
- نفس طريقة الأزرار بالضبط فقط بدل الأزرار بالتكست بوكس ، أدرج Text1 وضع خاصية الـ Index تساوي صفر وأجعله مخفي ، ثم إستخدم نفس الكود الخاص بالأزرار ولكن غير إسم الزر بإسم التكست بوكس ، ولفترض أن إسم الحقل الذي تريد عرض محتواه هو Name , فسيكون الكود بهذا الشكل :-
كود :
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 Text1(I)
Text1(I).Text = rs![Name]
Text1(I).Left = 240
If I = 1 Then
Text1(I).Top = 120
Else
Text1(I).Top = Text1(I - 1).Top + Text1(I - 1).Height + 120
End If
Text1(I).Visible = True
rs.MoveNext
Loop
End If
End Sub
- تحياتي .
كود :
For each Breathe in MyLife
Breathe.Say " سبحان الله والحمد لله ولا إله إلا الله والله أكبر أستغر الله العظيم وأتوب إليه"
Next