منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[vb6.0] طلب تعديل على المرفق لاظهار جدولين في ليست فيو واحد - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4)
+--- قسم : قسم لغة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=18)
+---- قسم : قسم أسئلة vb6.0 (http://vb4arb.com/vb/forumdisplay.php?fid=28)
+---- الموضوع : [vb6.0] طلب تعديل على المرفق لاظهار جدولين في ليست فيو واحد (/showthread.php?tid=22990)



طلب تعديل على المرفق لاظهار جدولين في ليست فيو واحد - w123eg - 19-12-17

السلام عليكم ورحمة الله

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

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


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

مع خالص الشكر


RE: طلب تعديل على المرفق لاظهار جدولين في ليست فيو واحد - eiocm - 20-12-17

قبل تنفيذ الكود يجب تغيير نوع الحقل 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)


RE: طلب تعديل على المرفق لاظهار جدولين في ليست فيو واحد - w123eg - 20-12-17

(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)

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

الف شكر لك


RE: طلب تعديل على المرفق لاظهار جدولين في ليست فيو واحد - eiocm - 20-12-17

قبل أن تكتب تعليقك، لماذا لم تنفذ التعديل الذي ذكرته لك في أول تعليقي؟


RE: طلب تعديل على المرفق لاظهار جدولين في ليست فيو واحد - w123eg - 20-12-17

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

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

شكرا جزيلا

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

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

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

اسف

اعذرني لم انتبه


RE: طلب تعديل على المرفق لاظهار جدولين في ليست فيو واحد - eiocm - 20-12-17

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"


RE: طلب تعديل على المرفق لاظهار جدولين في ليست فيو واحد - w123eg - 20-12-17

(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"

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

شكرا جزيلا