Đánh giá chủ đề:
  • 1 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Help] Xin giúp về QL Bán hàng - làm sao cho số lượng tồn không bị âm
#1
Hiện mình đang làm 1 chương trình quản lý bán hàng.
Tuy còn nhiều lỗi nhưng lỗi này bị giảng viên bắt và yêu cầu khắc phục.
1, mình tạo bảng có phiếu nhập, phiếu xuất, chi tiết nhập, chi tiết xuất.
2, tạo query kiểm tra số lượng tồn dựa vào phiếu nhập và phiếu xuất. cụ thể sltồn= tổng số lượng nhập - tổng số lượng xuất
3, có vấn đề là khi xuất, mình xuất bao nhiêu cũng được.
ví dụ:
nhập vào kho là 100
khi xuất 50 thì số lượng tồn còn 50. cái này OK
nhưng vấn đề xuất hiện là khi mình xuất tiếp 200 nó vẫn ok
và số lượng tồn sẽ thành -150

p/s: Mình thao tác trên Form nhé ( dữ liệu 4 form phiếu nhập, phiếu xuất, chi tiết nhập, chi tiết xuất được lấy ở 4 bảng tương ứng)
Help: làm sao để khắc phục lỗi này. cụ thể là khi mình nhập số lượng xuất trên sub form chi tiết xuất, nó sẽ so sánh với số lượng tồn hiện tại. Nếu không đủ sẽ báo lỗi để nhập lại.

File : http://www.mediafire.com/?h3648ad94lub7rr
Chữ ký của aichangbiet Gà mờ sad
Reply
Những người đã cảm ơn
#2
Không ai giúp được mình sao o.0
Mình chỉ có 2 vấn đề, vấn đề này là 1 trong 2 vấn đề đó sad
Chữ ký của aichangbiet Gà mờ sad
Reply
Những người đã cảm ơn
#3
(01-01-13, 10:10 PM)aichangbiet Đã viết: Không ai giúp được mình sao o.0
Mình chỉ có 2 vấn đề, vấn đề này là 1 trong 2 vấn đề đó sad

Cái này có rất nhiều cách làm,bạn up file lên đi sẽ có người giúp! Ví dụ như: Bạn phải tạo thêm cột tồn cuối, khi bạn xuất hàng thì cho tồn cuối = Tồn Đầu + SL nhập - SL xuất. Trong lúc xuất hàng, bạn dùng dlookup tìm tồn cuối cho cho mã hàng bạn đang cần xuất, sao đó nếu tồn cuối mà <= SL xuất thì ko cho, và thông báo!Vậy thôi...014
Chữ ký của trungn077 Xin chào, mình là trungn077, Tham gia http://thuthuataccess.com/forum từ ngày 09-07 -12.
ღღღღღTài sản của trungn077 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#4
(01-01-13, 10:10 PM)aichangbiet Đã viết: Không ai giúp được mình sao o.0
Mình chỉ có 2 vấn đề, vấn đề này là 1 trong 2 vấn đề đó sad

Bạn nên tính lượng tồn tại thời điểm xuất (tạo ra một Form chứa kết quả tồn tại thởi điểm ví dụ Form tên là Ton) form Ton được mở ra khi bạn update vào cột tên hàng hóa và được ẩn đi. Khi bạn đánh đến số lượng thì nó đem số lượng bạn đánh so sánh với kết quả Form Ton. Bạn đặt ở thủ tục Update là nếu kết quả so sánh <0 thì ra thông báo "Số lượng hiện tại ...." và trở lại kết quả của số lượng = 0 -> Như vậy bạn sẽ không xuất được số lượng lớn hơn lượng tồn.
Chúc bạn thành công
Chữ ký của ledangvan Xin chào, mình là ledangvan, Tham gia http://thuthuataccess.com/forum từ ngày 22-08 -11.
ღღღღღTài sản của ledangvan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn aichangbiet
#5
cách của ledangvan thì mình hiểu
Nhưng mình ko rõ lắm.
Có nhiều mặt hàng mà, nếu so sánh thì phải thêm điều kiện MatHang.MaHang=SoLuongTon.MaHang ha?

Cách của bạn trung mình k hiểu o.0
tạo thêm 1 trường nữa ở trong table à? hay xài query update lên? cách này mỗi lần làm phải ấn update 1 lần - k đc
để m up file lên nhé.
http://www.mediafire.com/?h3648ad94lub7rr
Chữ ký của aichangbiet Gà mờ sad
Reply
Những người đã cảm ơn
#6
(03-01-13, 07:38 PM)aichangbiet Đã viết: cách của ledangvan thì mình hiểu
Nhưng mình ko rõ lắm.
Có nhiều mặt hàng mà, nếu so sánh thì phải thêm điều kiện MatHang.MaHang=SoLuongTon.MaHang ha?

Cách của bạn trung mình k hiểu o.0
tạo thêm 1 trường nữa ở trong table à? hay xài query update lên? cách này mỗi lần làm phải ấn update 1 lần - k đc
để m up file lên nhé.
http://www.mediafire.com/?h3648ad94lub7rr

Cos nhiều mặt hàng nên mình mới bảo bạn là cho code vào mục update của mã hàng mình ví dụ nhá : Giả sử bạn đánh đến mục xuất hàng sẽ nổi lên 1 Form xuất trong đó có các dòng : Kho hàng, Mã hàng, Số lượng, Đơn giá, Thành tiền -> Khi bạn gõ đến dòng : Mã hàng thì thêm vào thủ tục update câu lệnh :
Private Sub MaVT_AfterUpdate()
'DoCmd.RunMacro "Tinhgiavon"
DoCmd.SetWarnings False
DoCmd.OpenQuery "XoaSovattu", acViewNormal, acEdit
DoCmd.OpenQuery "TinhgiaVon_SoduNo", acViewNormal, acEdit
DoCmd.OpenQuery "TinhgiaVon_SoduCo", acViewNormal, acEdit
DoCmd.OpenQuery "TinhgiaVon_PSNoDau", acViewNormal, acEdit
DoCmd.OpenQuery "TinhgiaVon_PSCoDau", acViewNormal, acEdit
DoCmd.OpenQuery "TinhgiaVon_DunoDau", acViewNormal, acEdit
DoCmd.OpenQuery "TinhgiaVon_DuCoDau", acViewNormal, acEdit
DoCmd.OpenForm "TinhgiaVon", acNormal, "", "", , acHidden
DongiaXuat.Value = [Forms]![Tinhgiavon].[Form]![Giavon]
TonSL.Value = [Forms]![Tinhgiavon].[Form]![SLDucuoiNo]
TonGT.Value = [Forms]![Tinhgiavon].[Form]![DucuoiNo]
End Sub

Như vậy là lúc bạn ấn vào mã vật tư là bạn đã thực hiện lệnh tính đơn giá xuất và số lượng tồn

Tiếp đó đến dòng số lượng bạn thêm code sau vào Updte :
Private Sub SoluongXuat_AfterUpdate()
If [SoluongXuat] < [TonSL] Then
If MsgBox("Sè l­îng tån hiÖn t¹i lµ : " & [TonSL] & " ", vbYesNo + vbQuestion, "X¸c nhËn") = vbYes Then

DoCmd.GoToControl "DongiaXuat"
Else
DoCmd.GoToControl "MAVT"
End If
End If
End Sub

ở đây dòng số lượng (soluongxuat) mình đem so sánh với TonSL đã tính ở trên và áp dụng nếu : Số lượng xuất < Số lượng tồn thì lên báo cáo : SỐ lượng tồn hiện tại và tiến đến dòng đơn giá xuất còn nếu không thì quay lại dòng mã vật tư
Chữ ký của ledangvan Xin chào, mình là ledangvan, Tham gia http://thuthuataccess.com/forum từ ngày 22-08 -11.
ღღღღღTài sản của ledangvan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn aichangbiet
#7
Bạn ơi mình có gửi file đính kèm rùi, bạn có thể làm lun trong đó để m tìm hiểu ko? nói thế này m cứ ngơ ngơ sao ấy, o.0
Mình k có căn bản, toàn tự mò mẫm thui sad
Phần đơn giá xuất thì nó tự động lấy ở bảng mặt hàng rùi,
Mình chỉ muốn so sánh số lượng xuất ra với số lượng tồn ở query SL_Ton thui.
Chữ ký của aichangbiet Gà mờ sad
Reply
Những người đã cảm ơn
#8
Đang làm cho bạn thì khởi động lại máy, tức chết được.
Đại ý như thế này.
1. Bạn nên xem lại nguồn của subform xuất hang, nếu bạn để như thế thì không thể nào thêm record mới được vì nó có quan hệ 1-n.
2. Sau khi nhập số lượng vào ô số lượng, trước kho forcus chuyển sang ô khác bạn kiểm tra xem tổng số lượng nhập, tổng số lượng xuất như thế nào? nếu tổng số lượng nhập > tổng số lượng xuất, cho phép forcus chuyển sang ô khác, nếu tổng số lượng nhập < tổng số lượng xuất, báo lỗi, chuyển focus về lại ô cũ để sửa.
Tính tổng số lượng nhập, xuất theo công thức Dsum("filed cần tính","bang tính","điều kiện")
Đưa forcus vào 1 textbox nào đó: tên textbox.setfocus


Nếu rảnh mình sẽ sửa trực tiếp trên file của bạn và up lên diễn đàn big green
Chữ ký của cpucloi Tôi chỉ biết mỗi một điều là những điều tôi biết được còn quá ít 021
Gmail: cgiahuy13@gmail.com


ღღღღღTài sản của cpucloi (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#9
(05-01-13, 09:29 PM)cpucloi Đã viết: Đang làm cho bạn thì khởi động lại máy, tức chết được.
Đại ý như thế này.
1. Bạn nên xem lại nguồn của subform xuất hang, nếu bạn để như thế thì không thể nào thêm record mới được vì nó có quan hệ 1-n.
2. Sau khi nhập số lượng vào ô số lượng, trước kho forcus chuyển sang ô khác bạn kiểm tra xem tổng số lượng nhập, tổng số lượng xuất như thế nào? nếu tổng số lượng nhập > tổng số lượng xuất, cho phép forcus chuyển sang ô khác, nếu tổng số lượng nhập < tổng số lượng xuất, báo lỗi, chuyển focus về lại ô cũ để sửa.
Tính tổng số lượng nhập, xuất theo công thức Dsum("filed cần tính","bang tính","điều kiện")
Đưa forcus vào 1 textbox nào đó: tên textbox.setfocus


Nếu rảnh mình sẽ sửa trực tiếp trên file của bạn và up lên diễn đàn big green
Sao lại là tổng nhập > tổng xuất.
Phải là xuất nhỏ hơn tồn chứ? Tổng Xuất nhỏ hơn tổng nhập thì sao mỗi lần kiểm tra thì máy chạy tới bao giờ với số lượng xuất nhập lên tới hàng ngàn o.0
Chữ ký của aichangbiet Gà mờ sad
Reply
Những người đã cảm ơn
#10
(07-01-13, 07:22 PM)aichangbiet Đã viết:
(05-01-13, 09:29 PM)cpucloi Đã viết: Đang làm cho bạn thì khởi động lại máy, tức chết được.
Đại ý như thế này.
1. Bạn nên xem lại nguồn của subform xuất hang, nếu bạn để như thế thì không thể nào thêm record mới được vì nó có quan hệ 1-n.
2. Sau khi nhập số lượng vào ô số lượng, trước kho forcus chuyển sang ô khác bạn kiểm tra xem tổng số lượng nhập, tổng số lượng xuất như thế nào? nếu tổng số lượng nhập > tổng số lượng xuất, cho phép forcus chuyển sang ô khác, nếu tổng số lượng nhập < tổng số lượng xuất, báo lỗi, chuyển focus về lại ô cũ để sửa.
Tính tổng số lượng nhập, xuất theo công thức Dsum("filed cần tính","bang tính","điều kiện")
Đưa forcus vào 1 textbox nào đó: tên textbox.setfocus


Nếu rảnh mình sẽ sửa trực tiếp trên file của bạn và up lên diễn đàn big green
Sao lại là tổng nhập > tổng xuất.
Phải là xuất nhỏ hơn tồn chứ? Tổng Xuất nhỏ hơn tổng nhập thì sao mỗi lần kiểm tra thì máy chạy tới bao giờ với số lượng xuất nhập lên tới hàng ngàn o.0
--------------------------------------------------||||||-------------------------------------------------
Trả lời của Quang Hòa
vấn đề là bạn tên là aichangbiet. nêu bạn không nhận thấy điều người lập trình thôi. Theo cách của tôi thì bạn lên làm một query nháp.. ở đó chứa các thông tin sau:
TT | Tên sản phẩm | mã sản phẩm |T Số lượng nhập | T Số lượng xuất | T Số lượng tồn |
1 | spA | A | 120 | 50 | 70 |

group| group | group| | sum |sum | sum | ' các dieu kien đe query chay cho ra ham tong
sau đó dùng lệnh iif trên form ms access tìm [T số lượng tồn] > 0 thì cho xuất. ngược lại nếu [T số lượng tồn] = 0 thì thông báo " mặt hàng này hết, bạn không xuất kho được" sau đó sử dụng.
theo cách cua minh thi yen tam ban khong phai lo lang ve van de hang ton kho khong the xuat duoc nua.
Do la kinh nghiem va chia se cua minh. chúc các bạn thành công.happy
Chữ ký của quanghoasla Hãy chia sẻ kinh nghiệm cùng mình trênThuThuatAccess nhé! Chúc vui vẻ rose
My site: My site hoặc My site
ღღღღღTài sản của quanghoasla (View All Items) ღღღღღ
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
  Tạo Menu dạng TreeView bằng Query (không dùng ActiveX) ongke0711 4 267 06-12-16, 09:16 PM
Bài mới nhất: toancvp
  [Help] Chỉnh giúp Form thống kê hoanghai902 2 125 28-10-16, 06:15 PM
Bài mới nhất: hoanghai902
  Không cho phép điều chỉnh kích thước của Form ChiMai 1 129 18-09-16, 01:27 PM
Bài mới nhất: ongke0711
  Xin giúp tạo 1 trường trong table đánh số tự động thay cho autonumber trungminh 7 450 16-09-16, 05:17 PM
Bài mới nhất: maidinhdan
  Giúp đỡ về form với trungminh 9 492 10-09-16, 09:17 PM
Bài mới nhất: trungminh

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ơ