Đánh giá chủ đề:
  • 1 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hướng dẫn] Demo Tính tồn kho ( rất chi tiết)
#1
Rãnh rỗi làm một bài Demo từ những lúc nhiều bạn thắc mắc về tính tồn kho, tồn mặt hàng, tồn...Thực ra trên diễn đàn mình cũng nói đến vấn đề này rồi, nhưng nhiều bạn vẫn hỏi mãi vấn đề này. Minh chứng là bài viết của Anh Xuân Thanh ( Nhấn vào đây). Và mình xin mạn phép anh Xuân thanh làm một Demo na ná như code anh hướng dẫn bằng hình ảnh cụ thể:

Chúng ta sẽ cần 5 cái Query để có được 1 cái tồn kho thực sự.

Bước 1: Tạo table và Quan hệ của table nào ( xem hình)

[Hình: b1.jpg]

Bước 2: Tạo 5 cái Query
Hình đầu tiên chỉ nói về Code SQL của 5 cái Query thôi.
[Hình: b2.jpg]

Tạo Query thứ 1 Chọn table [Thuoc]
[Hình: b3.jpg]

Tạo Query thứ 2 Chọn table [DMNHAPKHO]
[Hình: b4.jpg]

Tạo Query thứ 3 Chọn table [DMXUATKHO]
[Hình: b5.jpg]

Tạo Query thứ 4 ( Nạp 03 cái Query đầu vào Query này)
[Hình: b6.jpg]
Bổ sung lại code thêm hàm Sum(NZ([]) theo góp ý anh Xuân Thanh để né giá trị Null
Mã PHP:
SELECT QryTonDau.MaThuocQryTonDau.TenThuocQryTonDau.HamLuongQryTonDau.DVTQryTonDau.DonGia
Sum(NZ([TonCu])) AS CuSum(NZ([TongNhap])) AS NhapSum(NZ([TongXuat])) AS Xuat
FROM 
(QryTonDau LEFT JOIN QryTongNhap ON QryTonDau.MaThuoc QryTongNhap.MaThuocLEFT JOIN QryTongXuat ON 
QryTonDau
.MaThuoc QryTongXuat.MaThuoc
GROUP BY QryTonDau
.MaThuocQryTonDau.TenThuocQryTonDau.HamLuongQryTonDau.DVTQryTonDau.DonGia

Demo đã post lại:

Tạo Query thứ 5 ( Nạp Query 4 vào Query này)
[Hình: b7.jpg]

Bạn có thể sử dụng để ứng dụng cho chương trình nào liên quan đến Nhập-Xuất-Tồn là được.
Chúc các bạn thành công!

Đã bổ sung theo góp ý anh Xuân Thanh phía dưới và đã làm lại Demo


File đính kèm
.zip   DemoTinh ton kho2002-2003(Bosung-SumNZ).zip (Kích cỡ: 14.51 KB / Tải về: 83)
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn dinhnhieu , bvchauthanh , Xuân Thanh
#2
Hôm nay mới xem bài viết của maidinhdan. Trước hết rất cám ơn bạn đã có bài hướng dẫn tỷ mỉ bằng hình vẽ sinh động. Xin có đôi lời góp ý thêm

1/ Cách tính của bạn nó không linh động cho người dùng
2/ Do bạn không sử dụng hàm NZ và hàm Sum để khử giá trị Null nên trong qryNhapXuat bị lỗi các giá trị Null này. Bạn sửa lại đôi chút là OK
3/ Có thể không cần dùng đến 5 qry như bạn đã trình bày đâu. Bạn thử nghiên cứu xem sao nhé

Thân mến
Xuân Thanh
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 maidinhdan
#3
(11-03-15, 05:18 PM)Xuân Thanh Đã viết: Hôm nay mới xem bài viết của maidinhdan. Trước hết rất cám ơn bạn đã có bài hướng dẫn tỷ mỉ bằng hình vẽ sinh động. Xin có đôi lời góp ý thêm

1/ Cách tính của bạn nó không linh động cho người dùng
2/ Do bạn không sử dụng hàm NZ và hàm Sum để khử giá trị Null nên trong qryNhapXuat bị lỗi các giá trị Null này. Bạn sửa lại đôi chút là OK
3/ Có thể không cần dùng đến 5 qry như bạn đã trình bày đâu. Bạn thử nghiên cứu xem sao nhé

Thân mến
Xuân Thanh

Cảm ơn anh, em sẽ làm Demo thứ 2 theo hướng dẫn của anh.
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn dinhnhieu
#4
bài của bạn thì quản lý trên 1 của hàng hay 1 kho. bạn có thể giúp mình xử lý trên nhiều kho VD như:
- Mình có 3 kho (Kho A, Kho B, Kho C) chứa nhìu mặt hàng với số lương khác nhau
- Khi mình vào phiếu xuất thì chọn Kho A là nới xuất, Kho B là nơi nhập, rồi mình chọn sản phẩm cần xuất với số lượng cần xuất ( phần này là Sub Form rồi, con Main Form là phiếu xuất)
-Ván đề của mình là:, sau khi nhập như trên thì hệ thống sẽ tự Cộng số lượng sản phẩm vào Kho B, và trừ số lượng sản phẩm đó vào Kho A
viết bằng VBA hay macro hay Query gì cũng được
Chữ ký của morzer Xin chào, mình là morzer, Tham gia http://thuthuataccess.com/forum từ ngày 13-03 -15.
Reply
Những người đã cảm ơn
#5
(26-03-15, 06:24 PM)morzer Đã viết: bài của bạn thì quản lý trên 1 của hàng hay 1 kho. bạn có thể giúp mình xử lý trên nhiều kho VD như:
- Mình có 3 kho (Kho A, Kho B, Kho C) chứa nhìu mặt hàng với số lương khác nhau
- Khi mình vào phiếu xuất thì chọn Kho A là nới xuất, Kho B là nơi nhập, rồi mình chọn sản phẩm cần xuất với số lượng cần xuất ( phần này là Sub Form rồi, con Main Form là phiếu xuất)
-Ván đề của mình là:, sau khi nhập như trên thì hệ thống sẽ tự Cộng số lượng sản phẩm vào Kho B, và trừ số lượng sản phẩm đó vào Kho A
viết bằng VBA hay macro hay Query gì cũng được

Bạn morzer thân mến ! Đối với câu hỏi trên mình xin trả lời một số điểm như sau:

* Dù bạn có hơn 3 kho hay 10, 20 kho bạn vẫn sử dụng demo trên chỉ với 2 table xuất - nhập. Xin giải trình cụ thể như sau:

- Bước 1: Bạn tạo thêm table Mã kho gồm các trường: [Makho(Khóa chính)],[TenKho] ( ở đây bạn nạp 100 kho hàng cũng được)
- Bước 2: tại table Xuất và table nhập tạo thêm trường: [Makho]
- Bước 3: Nối quan hệ giữa bước 1 và 2
- Cuối cùng khi bạn xuất mặt hàng + số lượng: chỉ việc chọn thêm từ kho xuất-nhập là ok.

Bạn nhớ rằng mục đích cuối cùng của ta là tính tổng Xuất, Tổng nhập, Tổng Tồn. Vì thế bạn đừng làm phát sinh nhiều table làm cho Data của mình phình to rất kho quản lý và rất nhọc nhằng phải nhập liệu rất nhiều nơi. ( Mình cũng từng chia sẽ một bài về kinh nghiệm thiết kế table: có đoạn, càng ít table càng tốt...)

**Nếu bạn có ý định tính Tổng tồn, Tổng nhập, Tổng xuất theo từng kho A, Kho B, Kho C thì làm tiếp với phần hướng dẫn trên tạm bắt đầu là bước 4 nhé.
Bước 4: Xem Demo đầu tiên của mình bắt đầu từ: Tạo Query thứ 2 Chọn table [DMNHAPKHO]
- Ở đây bạn chọn thêm Mã kho: và đặt điều kiện lấy từ Textbox trên form cho dể mình cho tên nó là txtMK
Bước 5: Tạo Query thứ 3 Chọn table [DMXUATKHO]:
- Cũng chọn thêm Mã kho: và đặt điều kiện lấy từ txtMK

Lúc này bạn làm tiếp hướng dẫn: y như demo Tạo Query thứ 4, thứ 5
Đến đây là đã thành công.

Khi bạn muốn kiểm tra kho A: bạn nhập vào txtMK là A rồi cho mở Query thứ 5 là sẽ có Tổng tồn, Tổng nhập, Tổng xuất của kho A.
Khi bạn muốn kiểm tra kho B: bạn nhập vào txtMK là B rồi cho mở Query thứ 5 là sẽ có Tổng tồn, Tổng nhập, Tổng xuất của kho B.
.......

*** Nếu bạn muốn lấy Kho A là xuất, Kho B lập nhập trừ nhau: Chỉ việc thay đổi điều kiện tại bước 4 và bước 5
Bước 4: chọn txtMk="KhoB"
Bước 5: chọn txtMk="khoA"

**** Kết luận: muốn lấy kho nào trừ nhau chỉ việc căn cứ bước 4, bước 5 mà tính

Đó là những gì mình muốn chia sẽ. Bạn làm theo ý kiến này ứng dụng bạn sẽ linh hoạt hơn.

Nếu còn trở ngại. xin được thảo luận tiếp cùng bạn.

Thân ái.
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn morzer , dinhnhieu
#6
(11-03-15, 05:18 PM)Xuân Thanh Đã viết: Hôm nay mới xem bài viết của maidinhdan. Trước hết rất cám ơn bạn đã có bài hướng dẫn tỷ mỉ bằng hình vẽ sinh động. Xin có đôi lời góp ý thêm

1/ Cách tính của bạn nó không linh động cho người dùng
2/ Do bạn không sử dụng hàm NZ và hàm Sum để khử giá trị Null nên trong qryNhapXuat bị lỗi các giá trị Null này. Bạn sửa lại đôi chút là OK
3/ Có thể không cần dùng đến 5 qry như bạn đã trình bày đâu. Bạn thử nghiên cứu xem sao nhé

Thân mến
Xuân Thanh

- Đã bổ sung Demo lại phía để khử giá trị Null theo Góp ý của anh.
- Vì không muốn sử dụng Union Query để làm nên có 5 query. Em sợ làm bằng Union viết code dài quá mấy bạn mới quen với Access nhìn vào sợ chạy mất dép ( vì khi xưa em cũng thế: nhìn thấy code là Chóng mặt, đỏ tai, chảy mồ hôi...020) hihi014

Trân trọng chào anh!
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn dinhnhieu , Xuân Thanh
#7
(26-03-15, 10:44 PM)maidinhdan Đã viết:
(26-03-15, 06:24 PM)morzer Đã viết: bài của bạn thì quản lý trên 1 của hàng hay 1 kho. bạn có thể giúp mình xử lý trên nhiều kho VD như:
- Mình có 3 kho (Kho A, Kho B, Kho C) chứa nhìu mặt hàng với số lương khác nhau
- Khi mình vào phiếu xuất thì chọn Kho A là nới xuất, Kho B là nơi nhập, rồi mình chọn sản phẩm cần xuất với số lượng cần xuất ( phần này là Sub Form rồi, con Main Form là phiếu xuất)
-Ván đề của mình là:, sau khi nhập như trên thì hệ thống sẽ tự Cộng số lượng sản phẩm vào Kho B, và trừ số lượng sản phẩm đó vào Kho A
viết bằng VBA hay macro hay Query gì cũng được

Bạn morzer thân mến ! Đối với câu hỏi trên mình xin trả lời một số điểm như sau:

* Dù bạn có hơn 3 kho hay 10, 20 kho bạn vẫn sử dụng demo trên chỉ với 2 table xuất - nhập. Xin giải trình cụ thể như sau:

- Bước 1: Bạn tạo thêm table Mã kho gồm các trường: [Makho(Khóa chính)],[TenKho] ( ở đây bạn nạp 100 kho hàng cũng được)
- Bước 2: tại table Xuất và table nhập tạo thêm trường: [Makho]
- Bước 3: Nối quan hệ giữa bước 1 và 2
- Cuối cùng khi bạn xuất mặt hàng + số lượng: chỉ việc chọn thêm từ kho xuất-nhập là ok.

Bạn nhớ rằng mục đích cuối cùng của ta là tính tổng Xuất, Tổng nhập, Tổng Tồn. Vì thế bạn đừng làm phát sinh nhiều table làm cho Data của mình phình to rất kho quản lý và rất nhọc nhằng phải nhập liệu rất nhiều nơi. ( Mình cũng từng chia sẽ một bài về kinh nghiệm thiết kế table: có đoạn, càng ít table càng tốt...)

**Nếu bạn có ý định tính Tổng tồn, Tổng nhập, Tổng xuất theo từng kho A, Kho B, Kho C thì làm tiếp với phần hướng dẫn trên tạm bắt đầu là bước 4 nhé.
Bước 4: Xem Demo đầu tiên của mình bắt đầu từ: Tạo Query thứ 2 Chọn table [DMNHAPKHO]
- Ở đây bạn chọn thêm Mã kho: và đặt điều kiện lấy từ Textbox trên form cho dể mình cho tên nó là txtMK
Bước 5: Tạo Query thứ 3 Chọn table [DMXUATKHO]:
- Cũng chọn thêm Mã kho: và đặt điều kiện lấy từ txtMK

Lúc này bạn làm tiếp hướng dẫn: y như demo Tạo Query thứ 4, thứ 5
Đến đây là đã thành công.

Khi bạn muốn kiểm tra kho A: bạn nhập vào txtMK là A rồi cho mở Query thứ 5 là sẽ có Tổng tồn, Tổng nhập, Tổng xuất của kho A.
Khi bạn muốn kiểm tra kho B: bạn nhập vào txtMK là B rồi cho mở Query thứ 5 là sẽ có Tổng tồn, Tổng nhập, Tổng xuất của kho B.
.......

*** Nếu bạn muốn lấy Kho A là xuất, Kho B lập nhập trừ nhau: Chỉ việc thay đổi điều kiện tại bước 4 và bước 5
Bước 4: chọn txtMk="KhoB"
Bước 5: chọn txtMk="khoA"

**** Kết luận: muốn lấy kho nào trừ nhau chỉ việc căn cứ bước 4, bước 5 mà tính

Đó là những gì mình muốn chia sẽ. Bạn làm theo ý kiến này ứng dụng bạn sẽ linh hoạt hơn.

Nếu còn trở ngại. xin được thảo luận tiếp cùng bạn.

Thân ái.

tạm thời mình lấy demo của bạn làm thử cái add kho nhé, mình đã add vào mà tính thì k hiện ra, mình thêm điều kiện rồi, ma khi nhập mã kho thì k ra
Chữ ký của morzer Xin chào, mình là morzer, Tham gia http://thuthuataccess.com/forum từ ngày 13-03 -15.
Reply
Những người đã cảm ơn
#8
(26-03-15, 11:52 PM)morzer Đã viết: tạm thời mình lấy demo của bạn làm thử cái add kho nhé, mình đã add vào mà tính thì k hiện ra, mình thêm điều kiện rồi, ma khi nhập mã kho thì k ra

Làm cho xong đi, rồi gặp lỗi thì post file lên chứ đến giờ mớ nhớ là từng hướng dẫn cho ông rồi đấy.
Hihi...014014014
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn morzer
#9
(26-03-15, 11:57 PM)maidinhdan Đã viết:
(26-03-15, 11:52 PM)morzer Đã viết: tạm thời mình lấy demo của bạn làm thử cái add kho nhé, mình đã add vào mà tính thì k hiện ra, mình thêm điều kiện rồi, ma khi nhập mã kho thì k ra

Làm cho xong đi, rồi gặp lỗi thì post file lên chứ đến giờ mớ nhớ là từng hướng dẫn cho ông rồi đấy.
Hihi...014014014

mình hiểu ý bạn rồi, nhưng mình làm tới Qry4-Qry5 nó k add makho vào được, và khi chay Qry2 và Qry3 thì khi nhập mã kho nó hiện k chính xác,
mình mượn tạm cái demo của bạn để chạy thử,
http://www.mediafire.com/download/rdy3x4...2-2003.mdb
Chữ ký của morzer Xin chào, mình là morzer, Tham gia http://thuthuataccess.com/forum từ ngày 13-03 -15.
Reply
Những người đã cảm ơn
#10
(27-03-15, 12:31 AM)morzer Đã viết: mình hiểu ý bạn rồi, nhưng mình làm tới Qry4-Qry5 nó k add makho vào được, và khi chay Qry2 và Qry3 thì khi nhập mã kho nó hiện k chính xác,
mình mượn tạm cái demo của bạn để chạy thử,
http://www.mediafire.com/download/rdy3x4...2-2003.mdb

Lỗi trên là do có giá trị Null, Bạn đã tải nhầm Demo củ của mình. Vì thế

Thứ 1, Bạn chịu khó tải lại Demo mới phía trên đó, demo đó mình có bổ sung hàm Sum và NZ để loại giá trị Null
( Chỉ cần Import Query Demo mới này qua bài bạn làm là ok)

Thứ 2, Query 4,5 không cần đưa Ma kho vào ( vì điều kiện đã đặt tại Query 2,3 là đủ). Giải thích thêm, đây là Query mắc xích chỉ cần thêm điều kiện vào Query 2,3 là đủ. TUyệt đối không thêm điều kiện Makho vào Query 4,5.

Ghi chú:
- Đã test chạy rất ok và rất chính xác theo link bài bạn gửi lên.
- Chỉ đặt điều kiện tại Query 2 và 3.
- Cuối cùng chỉ cần nhấn Query 5 là nó sẽ hỏi bạn KhoXuat va KhoaNhap để bạn nhập tên kho vào


Link file Đính kèm phía dưới nè.


File đính kèm
.zip   DemoTinh ton kho2002-2003(theobaiban).zip (Kích cỡ: 19.18 KB / Tải về: 44)
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn morzer


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
Question [Help] Cần giúp đỡ tạo query lấy giá trị của dòng liền trước để tính giá trị trung bình luonguct 4 89 23-11-16, 12:33 AM
Bài mới nhất: luonguct
  [Hỏi] Tính số ngày công tác trangdv.pchg 25 588 13-11-16, 01:20 PM
Bài mới nhất: ongke0711
  Điền Mr hoặc Ms theo giới tính huuduy.duy 8 489 04-11-16, 05:58 PM
Bài mới nhất: huuduy.duy
  [Help] Tìm ngày tính lương ducanh.ktnb 18 553 15-10-16, 06:45 PM
Bài mới nhất: ongke0711
  [Help] Tính tổng theo điều kiện các trường trong nhiều table,đưa ra kết quả bignosevinatex 6 760 06-09-16, 10:56 PM
Bài mới nhất: maidinhdan

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ơ