如何实现数据库表单中计算字段的实时显示?
实现Access表单实时计算字段的方法
你的现有代码用了AfterUpdate事件,这个事件要等字段失去焦点才会触发,所以没法做到输入过程中实时计算。要实现真正的实时响应,得换成Change事件——这个事件会在用户每输入一个字符时就触发。
另外,单价(Product Price)变化时总价也应该跟着更新,所以两个字段都要处理:
- 给表单里的
Product_Count和Product Price文本框都添加Change事件 - 把计算逻辑抽成通用过程,避免重复写代码
- 加个数值判断,防止输入过程中出现空值或非数字导致的错误
具体代码如下:
Private Sub Product_Count_Change() UpdateTotalPrice End Sub Private Sub Product_Price_Change() UpdateTotalPrice End Sub Private Sub UpdateTotalPrice() Dim price As Variant, count As Variant price = Me.[Product Price] count = Me.Product_Count ' 先判断输入是否为有效数值,避免报错 If IsNumeric(price) And IsNumeric(count) Then Me.[Total_Price] = CDbl(price) * CDbl(count) Else Me.[Total_Price] = "" ' 如果希望空值时显示0,就改成0 End If End Sub
如果你的Product Price是下拉选择控件(比如组合框),那它的Change事件可能不生效,这时候换成AfterUpdate事件就行,毕竟选择是一次性完成的,不需要实时响应输入过程。
内容的提问来源于stack exchange,提问作者MrWeazel
相关产品推荐
相关产品推荐

