السلام عليكم ورحمة الله
برجاء التعديل على المرفق بحيث يظهر الجدول
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"
جزاك الله ووالديك الجنة وجعله في ميزان حسناتك
شكرا جزيلا