NguyenDungAnh > 05-09-18, 06:12 PM
ongke0711 > 05-09-18, 08:27 PM
Xuân Thanh > 06-09-18, 01:44 PM
maidinhdan > 06-09-18, 04:02 PM
Dim s, s1, s2 As String
s1 = "SELECT chitiet.mavattu, Sum(IIf([ngay]<#" & Format([Forms]![f2]![t2], "mm/dd/yyyy") & "#,0,IIf([loaiphieu]='X',[soluong],0))) AS xuattrongki, Sum(IIf([ngay]>#" & Format([Forms]![f2]![t2], "mm/dd/yyyy") & "#,0,IIf([loaiphieu]='n',[soluong],-[soluong]))) AS tondauki, Sum(IIf([ngay]<#" & Format([Forms]![f2]![t2], "mm/dd/yyyy") & "#,0,IIf([loaiphieu]='N',[soluong],0))) AS nhaptrongki, Sum(IIf([ngay]<#" & Format([Forms]![f2]![t2], "mm/dd/yyyy") & "#,0,IIf([loaiphieu]='X',[soluong],0))+IIf([ngay]>#" & Format([Forms]![f2]![t2], "mm/dd/yyyy") & "#,0,IIf([loaiphieu]='n',[soluong],-[soluong]))+IIf([ngay]<#" & Format([Forms]![f2]![t2], "mm/dd/yyyy") & "#,0,IIf([loaiphieu]='N',[soluong],0))) AS tong FROM nhapxuat INNER JOIN chitiet ON nhapxuat.Maphieu = chitiet.maphieu "
s2 = "WHERE (((nhapxuat.ngay)<=#" & Format([Forms]![f2]![t3], "mm/dd/yyyy") & "#)) GROUP BY chitiet.mavattu HAVING (((Sum(IIf([ngay]<#" & Format([Forms]![f2]![t2], "mm/dd/yyyy") & "#,0,IIf([loaiphieu]='X',[soluong],0))+IIf([ngay]>#" & Format([Forms]![f2]![t2], "mm/dd/yyyy") & "#,0,IIf([loaiphieu]='n',[soluong],-[soluong]))+IIf([ngay]<#" & Format([Forms]![f2]![t2], "mm/dd/yyyy") & "#,0,IIf([loaiphieu]='N',[soluong],0))))>0)) ORDER BY chitiet.mavattu;"
s = s1 + s2 'ghep chuoi
Dim i As Double
Set rs = CurrentDb.OpenRecordset(s)
If rs.EOF Then Exit Function ' Neu con tro dnag o vi tri cuoi, tuc la kg co mau tin ra lenh thoat
rs.MoveLast ' Di chuyen den mau tin cuoi, de dem
i = rs.RecordCount
Debug.Print i ' Hien thi tong so mau tin
rs.MoveFirst ' Di chuyen ve mau tin dau
For a = 0 To i
arr1(a) = 0
arr1(a) = rs.Fields("mavattu")
Me.Controls("tvt" & a) = DLookup("tenvattu", "dmvattu", "mavattu = " & arr1(a)) ' gan gia tri cho ten vat tu vao tbox
arr1(a) = rs.Fields("tondauki")
Me.Controls("tb" & a) = arr1(a) 'tinh ton dau ki cac loai vat tu
rs.MoveNext 'Di chuyen den mau tin ke tiep
Next a
rs.Close
NguyenDungAnh > 06-09-18, 06:06 PM
NguyenDungAnh > 06-09-18, 06:09 PM
NguyenDungAnh > 06-09-18, 06:12 PM
(06-09-18, 04:02 PM)maidinhdan Đã viết: Bạn sửa lại như sau:Cám ơn bác An đã quan tâm em thử làm ngay, cái mảng arr1(15) là vì em chưa biết chính xác SQL nó lọc ra bao nhiêu loại vật tư để chạy lên report mà report em chỉ hiển thị được 10 loại vật tư lên em để tạm là 15.
Đoạn này giữ nguyên y bài bạn
Mã PHP:Dim s, s1, s2 As String
s1 = "SELECT chitiet.mavattu, Sum(IIf([ngay]<#" & Format([Forms]![f2]![t2], "mm/dd/yyyy") & "#,0,IIf([loaiphieu]='X',[soluong],0))) AS xuattrongki, Sum(IIf([ngay]>#" & Format([Forms]![f2]![t2], "mm/dd/yyyy") & "#,0,IIf([loaiphieu]='n',[soluong],-[soluong]))) AS tondauki, Sum(IIf([ngay]<#" & Format([Forms]![f2]![t2], "mm/dd/yyyy") & "#,0,IIf([loaiphieu]='N',[soluong],0))) AS nhaptrongki, Sum(IIf([ngay]<#" & Format([Forms]![f2]![t2], "mm/dd/yyyy") & "#,0,IIf([loaiphieu]='X',[soluong],0))+IIf([ngay]>#" & Format([Forms]![f2]![t2], "mm/dd/yyyy") & "#,0,IIf([loaiphieu]='n',[soluong],-[soluong]))+IIf([ngay]<#" & Format([Forms]![f2]![t2], "mm/dd/yyyy") & "#,0,IIf([loaiphieu]='N',[soluong],0))) AS tong FROM nhapxuat INNER JOIN chitiet ON nhapxuat.Maphieu = chitiet.maphieu "
s2 = "WHERE (((nhapxuat.ngay)<=#" & Format([Forms]![f2]![t3], "mm/dd/yyyy") & "#)) GROUP BY chitiet.mavattu HAVING (((Sum(IIf([ngay]<#" & Format([Forms]![f2]![t2], "mm/dd/yyyy") & "#,0,IIf([loaiphieu]='X',[soluong],0))+IIf([ngay]>#" & Format([Forms]![f2]![t2], "mm/dd/yyyy") & "#,0,IIf([loaiphieu]='n',[soluong],-[soluong]))+IIf([ngay]<#" & Format([Forms]![f2]![t2], "mm/dd/yyyy") & "#,0,IIf([loaiphieu]='N',[soluong],0))))>0)) ORDER BY chitiet.mavattu;"
s = s1 + s2 'ghep chuoi
Phần cần sửa
Mã PHP:Dim i As Double
Set rs = CurrentDb.OpenRecordset(s)
If rs.EOF Then Exit Function ' Neu con tro dnag o vi tri cuoi, tuc la kg co mau tin ra lenh thoat
rs.MoveLast ' Di chuyen den mau tin cuoi, de dem
i = rs.RecordCount
Debug.Print i ' Hien thi tong so mau tin
rs.MoveFirst ' Di chuyen ve mau tin dau
For a = 0 To i
arr1(a) = 0
arr1(a) = rs.Fields("mavattu")
Me.Controls("tvt" & a) = DLookup("tenvattu", "dmvattu", "mavattu = " & arr1(a)) ' gan gia tri cho ten vat tu vao tbox
arr1(a) = rs.Fields("tondauki")
Me.Controls("tb" & a) = arr1(a) 'tinh ton dau ki cac loai vat tu
rs.MoveNext 'Di chuyen den mau tin ke tiep
Next a
rs.Close
* Bạn cũng cần lưu ý khi khai báo mãng arr1(15) không biết để làm cái gì?
NguyenDungAnh > 06-09-18, 06:19 PM
NguyenDungAnh > 06-09-18, 06:23 PM
ongke0711 > 06-09-18, 09:34 PM