我正在尝试创建一个执行简单数学运算的访问表单。用户在值之前和之后输入,并且在用户输入值之后,禁用的净文本框会自动计算并显示净值。
之前:___
之后:____
net:(=前后)
我的代码是:
Private Sub after_Change()
net.Value = before.Value - after.Value
End Sub
现在有两个问题,即它根据最后输入的值进行更改(更改5-> 6时,它将以5运行代码)。并且仅在第一个更改上运行代码,而不是在每个更改上运行代码。要再次运行它,必须取消选择文本框,然后再次选择它。
我在这里想念什么?
答案 0 :(得分:0)
尝试一下:
Private Sub after_Change()
net.Value = before.Value - after.Text
End Sub
答案 1 :(得分:0)
这应该有效:
Private Sub Form_Current
net.Value = before.Text - after.Text
End Sub
答案 2 :(得分:0)
在VB6中:您在更新事件后使用控件
在.net / vb.net中:您在更新事件后使用控件
在asp.net中:您可以在更新事件后使用控件。
使用C#和Winforms吗? -您可以在更新事件后使用控件。
在FoxPro中,您使用更新后事件。
是否想在Access中使用该事件?
提示: 更新后。
因此,对于两个控件,您在更新后事件中拥有:
Call MyCalc
然后,您将拥有:
Sub MyCalc
Me.net = me.Before – me.After
End sub
如果其中一个控件可以/将为空白或“空”,那么我建议:
Me.Net = nz(me.Before,0) – nz(me.After,0)
更改时实际上仅对逐个键处理有用,因为在文本框中键入每个字符时会触发该事件–您真的不知道用户何时完成操作。在过去25年的台式机中,我能想到的每个开发平台中的标准事件都是更新之后。
您还注意到,此问题100%消除了对“ .text”的需要。因此,您可以按照上述示例使用控件名称。