Private Sub 计算_Click()
On Error Resume Next
Dim CLCB As Double '材料成本
Dim SCCB As Double '生产成本
Dim XS As Double '销售比率
Dim GL As Double '管理比率
Dim LR As Double '利润比率
CLCB = 0
SCCB = 0
GL = 0
XS = 0
LR = 0
Dim rs As dao.Recordset
Set rs = Form_成本明细.Form.Recordset
'rs.Requery
If DCount("小计", "直接成本", "[编号]=forms![报价单]![报价明细]![编号]") <> 0 Then
DoCmd.OpenQuery "费用项目追加"
rs.Requery
GL = DLookup("单价", "成本明细", "[编号]=forms![报价单]![报价明细]![编号] and [项目]='C管理费用'") / 100
XS = DLookup("单价", "成本明细", "[编号]=forms![报价单]![报价明细]![编号] and [项目]='B销售费用'") / 100
LR = DLookup("单价", "成本明细", "[编号]=forms![报价单]![报价明细]![编号] and [项目]='D利润'") / 100
'Stop
rs.MoveFirst
Do Until rs.EOF
If Form_成本明细.[项目] Like "*" & "料" & "*" Then '材料成本
CLCB = CLCB + Nz(Form_成本明细.[小计])
Dim A, B, C, D, E, F As Double
A = Nz(DLookup("调机工时", "工序成本", "[设备名称]='" & Form_成本明细.明细 & "'")) '调机工时
B = Nz(DLookup("月薪", "人员工资", "[岗位]='" & tjy & "'")) / 22 / 8 '调机员时新
C = Nz(DLookup("月薪", "人员工资", "[岗位]='" & jcy & "'")) / 22 / 8 '检查员时新
D = Nz(DLookup("月薪", "人员工资", "[岗位]='" & zyy & "'")) / 22 / 8 '作业员时新
E = Nz(Forms![报价单]![报价明细]![数量]) / (Form_成本明细.速度_重量 * 60 * 0.85) + Nz(A) '总工时
F = Nz(DLookup("折旧期", "工序成本", "设备名称='" & Form_成本明细.明细 & "'"))
Form_成本明细.工时 = E
Form_成本明细.折旧费 = DLookup("单价", "工序成本", "设备名称='" & Form_成本明细.明细 & "'") / F / 2000 * E
Form_成本明细.电费 = DLookup("功率", "工序成本", "设备名称='" & Form_成本明细.明细 & "'") * 1.2 * E
Form_成本明细.人工费 = B * A + (B + C) * E * 0.1 + D * (E - A) '调机费=B*A,维护费=(B + C) * E * 0.1,手加工费=D * (E - A)
Form_成本明细.单价 = (Nz(Form_成本明细.人工费) + Nz(Form_成本明细.电费) + Nz(Form_成本明细.折旧费)) / E
Form_成本明细.小计 = (Nz(Form_成本明细.人工费) + Nz(Form_成本明细.电费) + Nz(Form_成本明细.折旧费)) / Forms![报价单]![报价明细]![数量]