我有一个文本框,目的是在访问中有任何按键时更新小计值。现在的问题是,OnKey按下事件功能会在额外按下1次键后更新小计值。该文本框被命名为QuantityOrdSub,它是接受数量的框,此文本框将其乘以单价(有效的DLOOKUP函数)。输出必须立即进入SubTotalValue文本框,并且此文本框具有控件源=小计
Private Sub QuantityOrdSub_KeyPress(KeyAscii As Integer)
Me.SubTotalValue.Value = (DLookup("UnitPrice", "Stock", "StockID=" & Int(Me.StockSearchID.Value))) *
(Int(Me.QuantityOrdSub.Value))
End Sub
为了重申,我试图在击键时立即更新文本框。
[如果要立即计算,我将不会监视KeyPress()
事件。相反,当值更改时,我将获得控制报告,因此,我将监视Change()
事件。
Private Sub QuantityOrdSub_Change()
With QuantityOrdSub
If Len(.Text) > 0 Then
SubTotalValue.Value = DLookup("UnitPrice", "Stock", "StockID=" & StockSearchID.Value) * Int(.Text)
End If
End With
End Sub
两个问题:
1)要使用的正确事件是On Change
,即Private Sub QuantityOrdSub_Change
,而不是KeyPress
。
2)文本框的.Value
在离开控件之前不会更新。要在用户键入时获取输入的文本,必须使用.Text
,即Me.QuantityOrdSub.Text
。