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

نسخة كاملة : طلب تعديل على المرفق لاظهار جدولين في ليست فيو واحد
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله

برجاء التعديل على المرفق بحيث يظهر الجدول unit في اول 3 اعمدة في الليست فيو

والعمود الرابع في الليس فيو يظهر مجموع كل صنف في الجدول الثاني kind


بحيث يتم الجمع على حسب رقم العمود الاول في الليست (ID)

مع خالص الشكر
قبل تنفيذ الكود يجب تغيير نوع الحقل ID في الجدول kind من مذكرة إلى نص

Private Sub Form_Load()
   Call Connect_DB
   Call SHOW_LIST
End Sub
Private Sub SHOW_LIST()
   If RUNIT.State = adStateOpen Then RUNIT.Close
       Dim sql As String
       sql = "SELECT Unit.rid,Unit.id,Unit.name,Sum(kind.NUM) AS Expr1 FROM Unit INNER JOIN kind ON Unit.ID=kind.ID GROUP BY Unit.rid,Unit.id,Unit.name"
       RUNIT.Open sql, DB, adOpenStatic, adLockPessimistic
     
    ListView1.ListItems.Clear
    If RUNIT.EOF = False Then
       Do While Not RUNIT.EOF
           With ListView1.ListItems.Add(, , RUNIT("rid"), 2, 2)
               .ListSubItems.Add , , RUNIT("id")
               .ListSubItems.Add , , RUNIT("name")
               .ListSubItems.Add , , RUNIT("Expr1")
           End With
           RUNIT.MoveNext
       Loop
       RUNIT.Close
       Set RUNIT = Nothing
    End If

End Sub

وإذا تقصد بالجمع عدد الاسطر وليس جمع قيم الحقل num فغير السطر التالي
sql = "SELECT Unit.rid,Unit.id,Unit.name,COUNT(kind.ID) AS Expr1 FROM Unit INNER JOIN kind ON Unit.ID=kind.ID GROUP BY  Unit.rid,Unit.id,Unit.name"

الاختلاف فقط COUNT(kind.ID) بدلا من Sum(kind.NUM)
(20-12-17, 01:06 AM)eiocm كتب : [ -> ]قبل تنفيذ الكود يجب تغيير نوع الحقل ID في الجدول kind من مذكرة إلى نص

Private Sub Form_Load()
   Call Connect_DB
   Call SHOW_LIST
End Sub
Private Sub SHOW_LIST()
   If RUNIT.State = adStateOpen Then RUNIT.Close
       Dim sql As String
       sql = "SELECT Unit.rid,Unit.id,Unit.name,Sum(kind.NUM) AS Expr1 FROM Unit INNER JOIN kind ON Unit.ID=kind.ID GROUP BY Unit.rid,Unit.id,Unit.name"
       RUNIT.Open sql, DB, adOpenStatic, adLockPessimistic
     
    ListView1.ListItems.Clear
    If RUNIT.EOF = False Then
       Do While Not RUNIT.EOF
           With ListView1.ListItems.Add(, , RUNIT("rid"), 2, 2)
               .ListSubItems.Add , , RUNIT("id")
               .ListSubItems.Add , , RUNIT("name")
               .ListSubItems.Add , , RUNIT("Expr1")
           End With
           RUNIT.MoveNext
       Loop
       RUNIT.Close
       Set RUNIT = Nothing
    End If

End Sub

وإذا تقصد بالجمع عدد الاسطر وليس جمع قيم الحقل num فغير السطر التالي
sql = "SELECT Unit.rid,Unit.id,Unit.name,COUNT(kind.ID) AS Expr1 FROM Unit INNER JOIN kind ON Unit.ID=kind.ID GROUP BY  Unit.rid,Unit.id,Unit.name"

الاختلاف فقط COUNT(kind.ID) بدلا من Sum(kind.NUM)

جزاك الله كل خير اخي الكريم

الف شكر لك
قبل أن تكتب تعليقك، لماذا لم تنفذ التعديل الذي ذكرته لك في أول تعليقي؟
(20-12-17, 02:40 AM)eiocm كتب : [ -> ]هل نفذت التعديل الذي ذكرته لك في أول تعليقي؟

نعم تم التعديل

شكرا جزيلا

وجزاك الله كل خير

بس هل يجوز اظهار كافة الاصناف وجمع الاصناف المتكررة وبالنسبة للاصناف الغير متكررة يظهر رصيدها صفر ؟

(20-12-17, 02:40 AM)eiocm كتب : [ -> ]قبل أن تكتب تعليقك، لماذا لم تنفذ التعديل الذي ذكرته لك في أول تعليقي؟

اسف

اعذرني لم انتبه
sql = "SELECT Unit.rid,Unit.id,Unit.name, Sum(IIF(kind.NUM IS null,0,kind.NUM)) AS Expr1 FROM Unit LEFT JOIN kind ON Unit.ID=kind.ID GROUP BY  Unit.rid,Unit.id,Unit.name"

وإذا تقصد بالجمع عدد الاسطر وليس جمع قيم الحقل num فغير السطر التالي
sql = "SELECT Unit.rid,Unit.id,Unit.name, COUNT(kind.ID) AS Expr1 FROM Unit LEFT JOIN kind ON Unit.ID=kind.ID GROUP BY  Unit.rid,Unit.id,Unit.name"
(20-12-17, 02:54 AM)eiocm كتب : [ -> ]sql = "SELECT Unit.rid,Unit.id,Unit.name, Sum(IIF(kind.NUM IS null,0,kind.NUM)) AS Expr1 FROM Unit LEFT JOIN kind ON Unit.ID=kind.ID GROUP BY  Unit.rid,Unit.id,Unit.name"

وإذا تقصد بالجمع عدد الاسطر وليس جمع قيم الحقل num فغير السطر التالي
sql = "SELECT Unit.rid,Unit.id,Unit.name, COUNT(kind.ID) AS Expr1 FROM Unit LEFT JOIN kind ON Unit.ID=kind.ID GROUP BY  Unit.rid,Unit.id,Unit.name"

جزاك الله ووالديك الجنة وجعله في ميزان حسناتك 

شكرا جزيلا