如何解决访问中的后期按键问题

问题描述 投票:1回答:2

我有一个文本框,目的是在访问中有任何按键时更新小计值。现在的问题是,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

为了重申,我试图在击键时立即更新文本框。

database vba ms-access textbox
2个回答
0
投票

[如果要立即计算,我将不会监视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

0
投票

两个问题:

1)要使用的正确事件是On Change,即Private Sub QuantityOrdSub_Change,而不是KeyPress

2)文本框的.Value在离开控件之前不会更新。要在用户键入时获取输入的文本,必须使用.Text,即Me.QuantityOrdSub.Text

© www.soinside.com 2019 - 2024. All rights reserved.