لدي جدول في قاعدة البيانات اريد ان انشاء BUTTON لكل سجل اي تلقائي مثال :
جدول بأسم A
يحتوي على خمسة سجلات اريد ان انشاء BUTTON لكل سجل تلقائي
ارفقت مثال ليتم التعديل عليه
السلام عليكم
- في المرفقات .
- تحياتي .
اخوي vb_coder عند تشغيل المثال لايوجد اي button
السلام عليكم...
تعديل على كود الأخ 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 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
نرجو الاستفادة و السلام.
السلام عليكم
- أنا حطيت الجدول إسمه A فما أدري هل هو موجود في قاعدة البيانات أم لا وإذا كان موجود هل فيه سجلات أم لا إذا كان فارغ فلن تظهر الأزرار .
- تحياتي .
مشكورين اخواني
لدي استفسار بسيط كيف اجعل كل تكست يحمل نص سجل في قاعدة البيانات بدل الترقيم
السلام عليكم
- نفس طريقة الأزرار بالضبط فقط بدل الأزرار بالتكست بوكس ، أدرج 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
- تحياتي .
اسف اخوي ولاكن اقصد ان اجعل كل زر يحمل اسم كل سجل في قاعدة البيانات
السلام عليكم...
في داخل الحلقة:
1. إذا كنت تستعمل أزراراً فالكود هو:
كود :
Command1(I).Caption = rs("field_name")
2. إذا كنت تستعمل مربعات نص فالكود هو:
كود :
Text1(I).Text = rs("field_name")
حيث field_name هو اسم الحقل الذي تريد عرض بياناته.
سلام.