在其他字段更改时触发文本框上的默认值

时间:2016-07-01 00:44:53

标签: ms-access ms-access-2000

所以我的表单上有一些文本框,在最后一个文本框中,我关闭了enable所以不是要求用户输入,我想让文本框上的值自动计算用户在另一个文本框上的输入,所以我设置默认值,如下所示:

=IIf(IsNull([jmlh]),0,[jmlh]*[harga]*IIf([diskon]>0,[diskon],1))

但问题是当表单加载时表达式才起作用,当“[jmlh]”中的值发生变化时,它仍然不存在。有没有什么方法可以让它成为可能?

1 个答案:

答案 0 :(得分:1)

请勿将表达式放入Default Value,而应放入Control Source属性。

然后,当其中一个使用的字段发生变化时,它将始终自行更新。

如果是绑定字段(但为什么要在表中存储计算字段?),则需要将该公式放入VBA函数中

Private Function UpdateCalcField()
     Me.calcField = IIf(IsNull([jmlh]),0,[jmlh]*[harga]*IIf([diskon]>0,[diskon],1))
End Function

并从所有相关字段的AfterUpdate事件中调用该函数。