我正在尝试创建一个执行简单数学运算的access窗体。用户输入before和after值,当用户输入after值时,被禁用的net文本框自动计算并显示净值。
之前:___
之后:____
net:(=之前-之后)
我的代码是:
Private Sub after_Change()
net.Value = before.Value - after.Value
End Sub
现在有两个问题是,它会根据最后输入的值进行更改(更改5->6,它将运行带有5的代码)。并且只在第一次更改时运行代码,而不是在每次更改时运行代码。要再次运行它,您必须取消选择该文本框,然后再次选择它。
这里我漏掉了什么?
发布于 2018-11-02 04:01:48
试试这个:
Private Sub after_Change()
net.Value = before.Value - after.Text
End Sub
发布于 2018-11-02 08:05:09
这应该是可行的:
Private Sub Form_Current
net.Value = before.Text - after.Text
End Sub
发布于 2018-11-02 23:00:36
在VB6中:在更新事件之后使用控件
在.net/vb.net中:在更新事件之后使用控件
在asp.net中:在update事件之后使用控件。
使用c#和winforms?-您可以在更新事件后使用控件。
在FoxPro中,使用after update事件。
想要大胆猜测事件在Access中的使用吗?
提示:更新后。
因此,对于这两个控件,在update事件之后,您具有以下内容:
Call MyCalc
然后,你就有了:
Sub MyCalc
Me.net = me.Before – me.After
End sub
如果其中一个控件可以/将为空或“空”,那么我建议:
Me.Net = nz(me.Before,0) – nz(me.After,0)
On change真的只对一个键一个键的处理有用,因为当你在文本框中输入每个字符时,事件就会触发--你真的永远不知道用户什么时候结束。在我能想到的过去25年的桌面开发平台中,标准事件都是在更新之后。
您还注意到,这个问题100%地消除了对".text“的需要。因此,您可以按照上面的示例使用控件名称。
https://stackoverflow.com/questions/53111859
复制相似问题