Xuân Thanh > 19-04-12, 12:22 PM
Greenlov3 > 19-04-12, 09:03 PM
(18-04-12, 07:13 PM)Noname Đã viết:(18-04-12, 05:45 PM)Greenlov3 Đã viết: cái query 1 ma anh nói : em lap len co van de` 1 chut anh ah`
đó la` ngày lap của tlbHangXuat Và tlnHangNhap nó cứ dan chéo nhau với SoLuong
anh có thể làm thử file mẫu acc dc ko ạ
em làm theo mà không ra
Vậy file của bạn đâu? Hình chụp của bạn cho rõ một chút!
Noname > 19-04-12, 09:08 PM
(19-04-12, 12:10 PM)Greenlov3 Đã viết: cái query 1 ma anh nói : em lap len co van de` 1 chut anh ah`
đó la` ngày lap của tlbHangXuat Và tlnHangNhap nó cứ dan chéo nhau với SoLuong
anh có thể làm thử file mẫu acc dc ko ạ
em làm theo mà không ra
Greenlov3 > 22-04-12, 10:58 AM
Noname > 22-04-12, 11:23 AM
(22-04-12, 10:58 AM)Greenlov3 Đã viết: Sau khi làm được tồn như anh thanh Xuân chi?
nhưng em vẫn không làm dc the? kho anh thanh xuân ah`
vd ma hàng: 01
Tồn đầu Tồn trong ngày Tồn cuối ngày
ngày 20/11/2012 0 2 2
ngày 21/11/2012 2 -1 1
pro thanh xuan oi jup em voi hi`
lieu co' dung` đến query update kho^ng anh
em nghi~ mai ma` không ra
uronmapu > 15-08-12, 10:49 AM
tuliemhanoi > 30-10-12, 10:48 AM
(17-04-12, 10:44 PM)Xuân Thanh Đã viết: Với cách tính này, có thể có một số mặt hàng không có dữ liệu(Đầu kỳ = 0, Tổng Nhập = 0, Tổng Xuất = 0, Tồn cuối = 0). Nếu muốn xóa những dòng này cho đỡ rối mắt, các bạn chuyển cái qryTonCuoi thành Make-Table Query (chuyển sang một table mới, ví dụ tblTonKho) rồi dùng một query xóa nữa là ổn
Mã:DELETE tblTonKho.TonDauKy, tblTonKho.TongNhap, tblTonKho.TongXuat FROM tblTonKho WHERE (((tblTonKho.TonDauKy)=0) AND ((tblTonKho.TongNhap)=0) AND ((tblTonKho.TongXuat)=0));
Khi viết bằng VBA thì không có hiện tượng này, Chỉ có những mặt hàng nào có dữ liệu thì mới hiển thị
Thân mến
tuliemhanoi > 30-10-12, 12:42 PM
(17-04-12, 02:00 PM)Xuân Thanh Đã viết: Để có báo cáo Tồn Kho, ta chỉ cần sử dụng 5 query sau đây
1/ qryNhapXuat : Tính số lượng nhập xuất hàng hóa
Mã:SELECT tblNhapHang.NgayLap, tblNhapHangChiTiet.MaHang, tblNhapHangChiTiet.SoLuong AS SoLuongNhap, 0 AS SoLuongXuat FROM tblNhapHang INNER JOIN tblNhapHangChiTiet ON tblNhapHang.MaSoNhap = tblNhapHangChiTiet.MaSoNhap;
UNION SELECT tblXuatHang.NgayLap, tblXuatHangChiTiet.MaHang, 0 AS SoLuongNhap, tblXuatHangChiTiet.SoLuong AS SoLuongXuat FROM tblXuatHang INNER JOIN tblXuatHangChiTiet ON tblXuatHang.MaSoXuat = tblXuatHangChiTiet.MaSoXuat;
2/ qryTruoc : tính số lượng hàng trước ngày chỉ định bất kỳ
Mã:SELECT qryNhapXuat.MaHang, qryNhapXuat.SoLuongNhap AS Nhap, qryNhapXuat.SoLuongXuat AS Xuat FROM qryNhapXuat WHERE (((qryNhapXuat.NgayLap)<[TuNgay]));
3/ qryTonDau : Tính tổng số lượng tồn của các mạt hàng trước ngày chỉ định bất kỳ
Mã:SELECT qryTruoc.MaHang, Sum(qryTruoc.Nhap) AS SoLuongNhap, Sum(qryTruoc.Xuat) AS SoLuongXuat, [SoLuongNhap]-[SoLuongXuat] AS TonDau FROM qryTruoc GROUP BY qryTruoc.MaHang;
4/ qryTrong : Tính tổng lượng nhập xuất của các mặt hàng theo thời điểm cho trước(từ ngay đến ngày)
Mã:SELECT qryNhapXuat.MaHang, qryNhapXuat.SoLuongNhap AS Nhap, qryNhapXuat.SoLuongXuat AS Xuat, qryNhapXuat.NgayLap FROM qryNhapXuat WHERE (((qryNhapXuat.NgayLap) Between [TuNgay] And [DenNgay]));
5/ qryTonCuoi : Xác định tồn kho của tất cả các mạt hàng
Mã:SELECT tblHangHoa.MaHang, tblHangHoa.TenHang, IIf([TonDau]>0,[TonDau],0) AS TonDauKy, Sum(NZ([Nhap])) AS TongNhap, Sum(NZ([Xuat])) AS TongXuat, [TonDauKy]+[TongNhap]-[TongXuat] AS TonCuoi FROM (tblHangHoa LEFT JOIN qryTrong ON tblHangHoa.MaHang = qryTrong.MaHang) LEFT JOIN qryTonDau ON tblHangHoa.MaHang = qryTonDau.MaHang GROUP BY tblHangHoa.MaHang, tblHangHoa.TenHang, IIf([TonDau]>0,[TonDau],0);
Như vậy là ta đã tính được tồn kho của tất cả các mặt hàng chỉ thông qua 5 query đơn giản. Lưu ý query thứ nhất, qryNhapXuat là một Union query, qry thứ 5 cách JOIN các tabble, query trong lưới query. Các bạn tự nghiên cứu nhé
Thân mến
Xuân Thanh > 30-10-12, 02:17 PM
tuliemhanoi > 30-10-12, 02:53 PM
(30-10-12, 02:17 PM)Xuân Thanh Đã viết: Trường trùng là sao hả bạn? Xem kỹ lại cách thiết kế các table nhé
Thân