Office中国论坛/Access中国论坛

标题: 如何在判断后选择不同计算公式计算? [打印本页]

作者: markatcn    时间: 2006-4-24 03:23
标题: 如何在判断后选择不同计算公式计算?
有一个表,表中有字段如下:

编号     单位    成本    卖价    数量    利润
1           A         1         2        100     100
2           A         1         2        150     150
3           B         1         2        200     160

当单位为A时,利润计算方法是:(卖价-成本)*数量

当单位为B时,利润计算方法是:(卖价-成本)*数量*0.8

利润这个控件在窗体上是自动计算的,在数量的AfterUpdata后,我写了个计算公式:利润.value=(卖价-成本)*数量,这样,单位是A的时候,利润自动计算出来是正确的,单位是B的时候,自动计算出来的利润就不正确了(因为计算方法不同)。

现在请问,我该怎么写一个VBA代码,使得能自动判断单位里面是A或者B,然后自动选择该使用什么计算方法来计算,并自动计算把结果填入利润框内。

另外,这段VBA代码放在什么位置。

谢谢。
作者: 一点通    时间: 2006-4-24 03:30
直接用查询就行了,不一定要存到利润字段,

可用IIF来判断计算
作者: markatcn    时间: 2006-4-24 03:37
我想存到表里面的,我也知道这是个笨办法。呵呵。

IIF怎么写呢?能否写个例子给我呢?谢谢
作者: 一点通    时间: 2006-4-24 03:38
传你的库上来修改吧
作者: markatcn    时间: 2006-4-24 03:48
楼上的大大,还是我,请看附件。

附件中有两个自动计算的,一个是本次运费,这个不需要判断,只有一个计算方法。

另外一个是利润,要求根据运输单位来判断,如果是运输单位是通达,那么计算方法为:利润.Value = (运价 - 运价 * 税率 - 成本) * 实收重量

如果运输单位不是通达,那么计算方法为:利润.Value = (运价 - 成本) * (1 - 税率) * 实收重量

谢谢啦。[attach]17359[/attach]

作者: markatcn    时间: 2006-4-24 05:07
大大,在线急等。谢谢。
作者: 一点通    时间: 2006-4-24 06:31
在税率文本框的失去焦点事件中写入如下代码

Private Sub 税率_LostFocus()
    Me.利润 = IIf(Me.运输单位 = "通达", (Nz(运价) - Nz(运价) * Nz(税率) - Nz(成本)) * Nz(实收重量), (Nz(运价) - Nz(成本)) * (1 - Nz(税率)) * Nz(实收重量))
End Sub


其它有关连的文本框的更新事件中写入如下代码,以便更改时都能及时更改利润

Call 税率_LostFocus
作者: markatcn    时间: 2006-4-24 07:03
搞定了,谢谢谢谢。。。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3