daominh80 > 18-05-13, 03:33 PM
Xuân Thanh > 19-05-13, 01:06 PM
daominh80 > 25-05-13, 03:02 AM
(19-05-13, 01:06 PM)Xuân Thanh Đã viết: Trong SQL là không thể. Thông thường tôi hay sử dụng VBA để tính lũy kế phát sinh đưa kết quả ra table tạm rồi sử dụng table tạm hoặc đưa ra report mà dùng. Hoặc cũng có thể dùng query làm nguồn cho report rồi xử lý tích lũy ngay trên report.
Thân mến
Xuân Thanh > 25-05-13, 12:27 PM
Function TinhTichLuy(strHangMuc As String, DenNgay As Date) As Double
Dim rs As Recordset, rsT As Recordset
Set rs = CurrentDb.OpenRecordset("Select * from tblKhoiLuong Where HangMuc = '" & strHangMuc & "'")
Set rsT = CurrentDb.OpenRecordset("tblKhoiLuongTichLuy", dbOpenTable)
If rs.RecordCount > 0 Then
rs.MoveFirst
Dim KL As Double
KL = 0
Do Until rs.EOF
If rs!Ngay > DenNgay Then Exit Do
rsT.AddNew
rsT!HangMuc = strHangMuc
rsT!Ngay = rs!Ngay
rsT!KhoiLuong = rs!KhoiLuong
rsT!KhoiLuongTichLuy = KL + rs!KhoiLuong
rsT.Update
KL = KL + rs!KhoiLuong
rs.MoveNext
Loop
End If
rs.Close: rsT.Close
End Function
daominh80 > 06-06-13, 08:16 AM