Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Quản lý kho phân biệt theo nguồn - có kho chính và nhiều kho lẻ
#1
Thân chào các anh em chiến hữu trên thuthuataccess!
Mình vừa học hỏi bác Xuân Thanh để biên soạn cơ bản về việc lập báo cáo tồn kho và in thẻ kho bằng query.
Về cơ bản đã làm được rồi! Nhưng mình muốn có thêm một chút sáng kiến nữa, nhưng không biết cách thực hiện, mong nhận được sự chỉ giúp của anh em gần xa!
Mình có 2 kho chính là A (sử dụng tiền được cấp để mua hàng) và B (sử dụng tiền của mình tự mua hàng).
Yêu cầu như sau:
1/ Nhập vào kho chính A và khi kho chính A xuất cho kho lẻ A1,A2... thì số lượng kho lẻ A1,A2... sẽ được tự động thêm vào tồn kho (như vậy ở kho A1,A2... đã có hàng để xuất mà không phải nhập một lần nữa từ phiếu xuất của kho A. Mình đã tìm hiểu về Appen Query nhưng do trình độ có hạn nên không biết cách tạo điều kiện để Appen cho đúng). Tương tự như vậy cho kho B và kho B1,B2... (vì mình không muốn nhập A và B thành 02 chương trình quản lý để theo dõi riêng)
2/ Nếu yêu cầu 1 thỏa, khi đó kho A1,A2... hay B1,B2..sẽ có số nhập (bằng số xuất từ kho A cho kho A1,A2..hay B1,B2...tùy điều kiện), vậy muốn đưa số tồn đầu hiện có của các kho A1,A2 hay B1,B2 này vào như thế nào?
3/ 5 Query hướng dẫn của bác Xuân Thanh mình rất tâm đắc, nhưng giờ khi muốn chạy riêng cho kho chẳn và lẻ mình phải làm điều kiện gì? Với Query thẻ kho lại thiếu cột tồn cuối nhìn thấy đơn điệu làm sao, nhìn giống nhật ký nhập xuất hơn là thẻ kho. (VD: lọc từ ngày 23/09/12 đến 06/12/12, mặt hàng Alpha... xuất hiện đến 4 lần nhưng vẫn không biết tồn cuối cùng là bao nhiêu?)


TRÍCH DẪN CỦA BÁC XUÂN THANH!
"Hướng dẫn cơ bản về việc lập báo cáo tồn kho và in thẻ kho bằng query
Vừa qua trên diễn đàn có một số bạn thắc mắc về việc tính tồn kho và thẻ kho. Bản thân tôi thích dùng VBA hơn vì nó bảo mật tốt hơn. Để giúp các bạn tham khảo, tôi lập chủ đề này, hướng dẫn các bạn làm tồn kho và thẻ kho hoàn toàn bằng query. Nói thêm, với Access, có đến hơn 90% kết quả có được ta có thể dùng hoàn toàn bằng query truy vấn.
Để làm được, các bạn tạo một CSDL TonKho với các bảng sau

1/ tblHangHoa
- Mahang Text 20 PrimariKey
- Tenhang Text 50

2/ tblNhapHang
- MaSoNhap text 20 PrimaryKey
- NgayLap Date

3/ tblNhapHangChiTiet
- MaSoNhap Text 20
- MaHang Text 20
- SoLuong Number

4/ tblXuatHang
- MaSoXuat Text 20 PrimaryKey
- NgayLap Date

3/ tblXuatHangChiTiet
- MaSoXuat Text 20
- MaHang Text 20
- SoLuong Number

Sau khi lập xong các table, các bạn tạo mối quan hệ cho các table (cái này đơn giản khỏi cần hướng dẫn nhé)
MaHang - MaHang, MaSoNhap - MaSoNhap, MaSoXuat - MaSoXuat

Để 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êm một query nữa là ta có báo cáo thẻ kho rồi : qryTheKho
Mã:
SELECT tblHangHoa.MaHang, tblHangHoa.TenHang, NZ([TonDau]) AS Ton, qryTrong.NgayLap, IIf([Nhap]>0,[Nhap],0) AS NhapTK, IIf([Xuat]>0,[Xuat],0) AS XuatTK FROM (tblHangHoa LEFT JOIN qryTonDau ON tblHangHoa.MaHang = qryTonDau.MaHang) LEFT JOIN qryTrong ON tblHangHoa.MaHang = qryTrong.MaHang WHERE (((tblHangHoa.MaHang)=[HangNao])) ORDER BY qryTrong.NgayLap;


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"
Chữ ký của duyennguyen2008 Xin chào, mình là duyennguyen2008, Tham gia http://thuthuataccess.com/forum từ ngày 19-11 -12.
Reply
Những người đã cảm ơn
#2
1/ Cách của bạn chính là phương pháp chuyển kho nội bộ. Khi xuất hàng từ kho chính cho kho lẻ thì số hàng của kho chính giảm, kho lẻ tăng
2/ Muốn thưc hiện được như bạn thì còn cần nhiều thứ : form, query, code...Không thể nói ngay một lúc được.
Thân mến
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn duyennguyen2008
#3
(07-12-12, 10:03 AM)Xuân Thanh Đã viết: 1/ Cách của bạn chính là phương pháp chuyển kho nội bộ. Khi xuất hàng từ kho chính cho kho lẻ thì số hàng của kho chính giảm, kho lẻ tăng
2/ Muốn thưc hiện được như bạn thì còn cần nhiều thứ : form, query, code...Không thể nói ngay một lúc được.
Thân mến

Cảm ơn bác Xuân Thanh đã đọc, đúng là vấn đề này cần có thời gian, mong là sớm được bác hướng dẫn giúp cho! 034
Chữ ký của duyennguyen2008 Xin chào, mình là duyennguyen2008, Tham gia http://thuthuataccess.com/forum từ ngày 19-11 -12.
Reply
Những người đã cảm ơn
#4
1/ Các table : tblKho, tblVatTu, tblChuyenKho, tblTonKho ====>Với các bạn rành về Ac
2/ các table : tblKho, tblVatTuK1, tblVatTuK2...,tblChuyenKho =====>Nếu chưa rành Ac
Trong tblChuyenKho có trường Kho Xuất vả Kho Nhận
Tạo form lấy dữ liệu từ tblChuyenKho. Viết code để chuyển kho nội bộ
Theo hương này để giải quyết nhé
Thân

P/S : Tham khảo thêm ở đây : http://thuthuataccess.com/forum/thread-5813.html
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn duyennguyen2008
#5
(10-12-12, 11:53 AM)Xuân Thanh Đã viết: 1/ Các table : tblKho, tblVatTu, tblChuyenKho, tblTonKho ====>Với các bạn rành về Ac
2/ các table : tblKho, tblVatTuK1, tblVatTuK2...,tblChuyenKho =====>Nếu chưa rành Ac
Trong tblChuyenKho có trường Kho Xuất vả Kho Nhận
Tạo form lấy dữ liệu từ tblChuyenKho. Viết code để chuyển kho nội bộ
Theo hương này để giải quyết nhé
Thân

P/S : Tham khảo thêm ở đây : http://thuthuataccess.com/forum/thread-5813.html

Cảm ơn Bác Xuân Thanh nhé!
Nói về code thì mình bó tay rồi. Mình mới học access căn bản thô nên code đối với mình là 1 thứ xa xỉ quá! Nhân tiện, Bác có tài liệu về code cho e xin luôn nhé! 014
Chữ ký của duyennguyen2008 Xin chào, mình là duyennguyen2008, Tham gia http://thuthuataccess.com/forum từ ngày 19-11 -12.
Reply
Những người đã cảm ơn
#6
(17-12-12, 02:34 PM)duyennguyen2008 Đã viết: Cảm ơn Bác Xuân Thanh nhé!
Nói về code thì mình bó tay rồi. Mình mới học access căn bản thô nên code đối với mình là 1 thứ xa xỉ quá! Nhân tiện, Bác có tài liệu về code cho e xin luôn nhé! 014

Vào trong mục Thư viện giáo trình mà tham khảo. Nhiều lắm đó
Thân
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn duyennguyen2008
#7
(21-12-12, 04:22 PM)Xuân Thanh Đã viết:
(17-12-12, 02:34 PM)duyennguyen2008 Đã viết: Cảm ơn Bác Xuân Thanh nhé!
Nói về code thì mình bó tay rồi. Mình mới học access căn bản thô nên code đối với mình là 1 thứ xa xỉ quá! Nhân tiện, Bác có tài liệu về code cho e xin luôn nhé! 014

Vào trong mục Thư viện giáo trình mà tham khảo. Nhiều lắm đó
Thân

Cảm ơn Bác Xuân Thanh nhé!
Cuối năm bận quá nhưng vẫn mong bác Xuân Thanh hôm nào rảnh, dành chút thởi gian làm bài mẫu về hàm chuyển kho nội bộ để anh em học hỏi nha! 034
Chữ ký của duyennguyen2008 Xin chào, mình là duyennguyen2008, Tham gia http://thuthuataccess.com/forum từ ngày 19-11 -12.
Reply
Những người đã cảm ơn
#8
(10-12-12, 11:53 AM)Xuân Thanh Đã viết: 1/ Các table : tblKho, tblVatTu, tblChuyenKho, tblTonKho ====>Với các bạn rành về Ac
2/ các table : tblKho, tblVatTuK1, tblVatTuK2...,tblChuyenKho =====>Nếu chưa rành Ac
Trong tblChuyenKho có trường Kho Xuất vả Kho Nhận
Tạo form lấy dữ liệu từ tblChuyenKho. Viết code để chuyển kho nội bộ
Theo hương này để giải quyết nhé
Thân

P/S : Tham khảo thêm ở đây : http://thuthuataccess.com/forum/thread-5813.html

Rất mong bạn Xuân Thanh có thể chỉ dẫn cụ thể hơn vấn đề chuyển kho này, mình cũng đang loay hoay mà chưa giải quyết được.
Chữ ký của hoahd Xin chào, mình là hoahd, Tham gia http://thuthuataccess.com/forum từ ngày 08-06 -13.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  (Update v.1.0.35 - 14/11/2016) Share Phần Mềm Quản Lý Công Văn Miễn Phí nguyenvantien87 251 18,410 30-11-16, 05:34 PM
Bài mới nhất: nguyenvantien87
  Nhờ A/c Diễn đàn giúp phần mềm báo lịch làm việc tienpq 2 144 23-07-16, 05:58 PM
Bài mới nhất: zinzin8x
Sad [Help] Tạo phần mềm từ file excel duynguyenkk 16 586 22-07-16, 03:43 PM
Bài mới nhất: duynguyenkk
  [Help] cộng giá trị nhiều textbox và update csdl amasahara 6 308 01-05-16, 01:42 AM
Bài mới nhất: maidinhdan
Lightbulb [Help] Có 1 project không biết xữ lí làm sao? xin các pro giúp 1 tay aspnetit007 1 215 11-11-15, 07:22 PM
Bài mới nhất: quan_pc

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ