منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : ارجو المساعده في إنشاء BUTTON
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
لدي جدول في قاعدة البيانات اريد ان انشاء 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 هو اسم الحقل الذي تريد عرض بياناته.

سلام.
الصفحات : 1 2