14-05-13, 02:48 AM
السلام عليكم...
عدل كود الزر ليصبح كما يلي (التعديل بالأساس على جملة SQL):
* لاحظ أننا استعملنا جداول وهمية: ItemNames و VirtualT و VirtualT1 (مؤقتة في الذاكرة ضمن جملة الـ SQL) لتجميع البيانات بهذا الشكل.
نرجو الاستفادة و السلام.
عدل كود الزر ليصبح كما يلي (التعديل بالأساس على جملة SQL):
كود :
Private Sub Command1_Click()
SQLs = "SELECT ItemNames.ItemName, " _
& "IIf(IsNull(VirtualT.TSum), 0, VirtualT.TSum) AS TSum, " _
& "IIf(IsNull(VirtualT1.T1Sum), 0, VirtualT1.T1Sum) AS T1Sum " _
& "FROM ((SELECT DISTINCT T.ItemName FROM T UNION SELECT DISTINCT T1.ItemName FROM T1) AS ItemNames " _
& "LEFT OUTER JOIN (SELECT T.ItemName, SUM(T.ITVNo) AS TSum FROM T GROUP BY T.ItemName) AS VirtualT " _
& "ON VirtualT.ItemName = ItemNames.ItemName) " _
& "LEFT OUTER JOIN (SELECT T1.ItemName, SUM(T1.ITVNo) AS T1Sum FROM T1 GROUP BY T1.ItemName) AS VirtualT1 " _
& "ON VirtualT1.ItemName = ItemNames.ItemName " _
& "ORDER BY ItemNames.ItemName"
If Con.State = 1 Then Con.Close
Con.Open "Provider=Microsoft.Ace.OLEDB.12.0; Data Source=" & App.Path & "\dbo.accdb"
If RSS.State = 1 Then RSS.Close
RSS.Open SQLs, Con, adOpenKeyset, adLockOptimistic, adCmdText
Set MSHFlexGrid1.DataSource = RSS
End Sub* لاحظ أننا استعملنا جداول وهمية: ItemNames و VirtualT و VirtualT1 (مؤقتة في الذاكرة ضمن جملة الـ SQL) لتجميع البيانات بهذا الشكل.
نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
