【发布时间】:2017-06-15 21:46:16
【问题描述】:
通常当用户在组合框下拉菜单中看到搜索字符串结果时,自然的反应是向下箭头指向他们确定的结果。
但是,如果我的用户单击向下箭头,它将更新组合框,从而不会按预期跳转到记录。我想限制组合框仅在用户点击“Tab”、“Enter”或鼠标点击时才感知更新。
我编写的组合框搜索可以正常工作。
这是我在 On Key Up 事件中的代码
Private Sub cboGCPC_Search_KeyUp(KeyCode As Integer, Shift As Integer)
Dim strSQL As String
strSQL = "SELECT * " _
& "FROM qryGCPC_Search " _
& "WHERE [DocumentNumber] Like '*" & Me.cboGCPC_Search.text & "*' OR [Description] Like '*" & Me.cboGCPC_Search.text & "*' OR [Vendor] Like '*" & Me.cboGCPC_Search.text & "*' OR [Receiver] Like '*" & Me.cboGCPC_Search.text & "*';"
Debug.Print strSQL
Me.cboGCPC_Search.RowSource = strSQL
Me.cboGCPC_Search.Dropdown
End Sub
【问题讨论】:
-
我想我知道你在说什么,但有点不清楚你所说的“更新”是什么意思。 “如果我的用户单击向下箭头,它将更新组合框,”“限制组合框以仅感知更新......”。 cbo 每次击键都会更新,不是吗? “Tab”、“Enter”或鼠标点击会发生什么?
-
为了澄清,我指的是会导致组合框“失去焦点”的击键。一旦失去焦点,组合框就被认为已更新。这反过来会触发 AfterUpdate 事件。当用户在“按键事件”中键入时,组合框还没有确定。但是当用户单击向下箭头(或输入或制表符,或单击鼠标)时,组合框 IS 被认为已更新,因为它失去了组合框的焦点。当用户使用向上或向下键进行扫描时,必须有一种方法来阻止向下箭头键或向上箭头键导致 AfterUpdate 事件触发。