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

Thảo luận trong 'Ứng dụng Access' bắt đầu bởi hoangre, 29 Tháng chín 2007.

2,099 lượt xem

  1. hoangre

    hoangre Thành viên sơ cấp

    Bài viết:
    2
    Đã được thích:
    0
    Nơi ở:
    hue
    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.
     
    Last edited: 29 Tháng chín 2007
    #1
  2. hoangthihanhmy

    hoangthihanhmy Thành viên sơ cấp

    Bài viết:
    2
    Đã được thích:
    0
    Nơi ở:
    tth
    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.
     
    #2
  3. hoangre

    hoangre Thành viên sơ cấp

    Bài viết:
    2
    Đã được thích:
    0
    Nơi ở:
    hue
    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!
     
    #3

Chia sẻ trang này