Hàm làm tròn với giá trị cuối bao chót

  • Thread starter hoangre
  • Ngày gửi
H

hoangre

Thành viên sơ cấp
16/5/06
2
0
0
hue
#1
Chào các bạn! Mình gặp 1 trở ngại mong các bạn giúp đỡ. Khi tính giá thành cho từng sản phẩm mình dùng hàm Round(HeSo/TongHeSo*TongChiPhi;0) thì khi cộng tổng giá thành các sản phẩm lại thường bị lệch so với Tổng chi phí 1 đến 2 đồng (do làm tròn). Mình đã viết 1 code để cho sản phẩm cuối cùng = Tổng chi phí - Tổng giá thành các sản phẩm còn lại như sau:

Function LamTron(Heso, TongHeSo, TongChiPhi)
DoCmd.SetWarnings False
DoCmd.RunSQL "SELECT 0 AS TIEN INTO T_LamTron"
Dim CSDL As Database, TQ As Recordset
Set CSDL = CurrentDb
Set TQ = CSDL.OpenRecordset("T_LamTron", dbOpenTable)
If Abs(TongChiPhi - Round(Heso / TongHeSo * TongChiPhi, 0) - TQ!TIEN) < 3 Then
LamTron = Val(TongChiPhi - TQ!TIEN)
TQ.MoveFirst: TQ.Edit
TQ!TIEN = 0
Else
LamTron = Val(Round(Heso / TongHeSo * TongChiPhi, 0))
TQ.MoveFirst: TQ.Edit
TQ!TIEN = LamTron + TQ!TIEN
End If
TQ.Update: TQ.Close
DoCmd.DeleteObject acTable, "T_LamTron"
DoCmd.SetWarnings True
End Function

Hàm đã sử dụng được. Nhưng khi áp dụng để tính giá thành cho nhiều phân xưởng (mỗi phân xưởng có Tổng chi phí riêng) thì hàm không sử dụng được (vẫn bị chênh lệch Tổng giá thành với Tổng chi phí). Nó chỉ sử dụng được khi Sort theo phân xưởng (tức là hết sản phẩm của phân xưởng này thì đến sản phẩm của phân xưởng khác). Vậy có cách nào khắc phục xin các bạn giúp đỡ. Hoặc có hàm nào hay hơn mong các cao thủ chỉ giáo.
 
Sửa lần cuối:
H

hoangthihanhmy

Thành viên sơ cấp
20/10/07
2
0
0
tth
#2
Em thấy công thức của bác có vấn đề. Cái công thức Abs(TongChiPhi - Round(Heso / TongHeSo * TongChiPhi, 0) - TQ!TIEN) < 3 nên xem lại. Giả sử có chi phí nhỏ hơn 3 thì công thức của bác không thể sử dụng được. Theo ý kiến của em thì bác nên sử dụng hàm đếm tổng các loại chi phí. Sau đó Hàm của chi phí cuối sẽ bằng Tổng chi phí - Tổng các chi phí còn lại.
Không biết em nói vậy có đúng không. Chỉ xin mạo muội. Mong bác thông cảm.
 
H

hoangre

Thành viên sơ cấp
16/5/06
2
0
0
hue
#3
Mình cũng thấy được nhược điểm như vậy, nhưng không lập trình được. Bạn có thể nói rõ cách lập trình được không? Cảm ơn bạn nhiều!
 

Thành viên trực tuyến

  • thegioinongnghiep
  • tuyet0504
  • thuongdan
  • daongocnam0603
  • Huongtb205
  • ducha8484
  • luluso
  • Thảo Pham 16
  • Minh.vm
  • Châu.pt
  • congtyequip
  • ASIMVN
  • huonghvtc89
  • xediengiatot
  • ND Hien
  • ktkthh
  • Huyền Mia

Xem nhiều