我正在MS-Access中建立一个主表单,从中可以执行查询和所有内容。作为其中的一部分,我希望有一个搜索栏,可以从您可以选择的本地表中搜索商品(供应商),并以最终结果为依据。 因此,在我的表格上,我有以下项目:
我让Button可以显示一些搜索结果
Private Sub bt_vendor_search_Click()
Dim strSearchSQL As String
strSearchSQL = "SELECT Vendor, [Vendor Name] FROM vend_data WHERE " & _
"Len(vend_data.Vendor) = 6 And ([Vendor Name] LIKE '*" & Me.txt_Vendor_Search & _
"*' OR Vendor LIKE ""*" & Me.txt_Vendor_Search & "*"")"
'Update the Row Source of the ListBox
Me.ltVendorSearchResults.RowSource = strSearchSQL
Me.ltVendorSearchResults.Requery
End Sub
所以现在要实现实时搜索,我选择了TextBox的KeyPress事件:
Private Sub txt_Vendor_Search_KeyPress(KeyAscii As Integer)
bt_vendor_search_Click
End Sub
不幸的是,它似乎不起作用。 使用调试器,我发现每次输入内容时都会触发KeyPress事件。我还尝试了TextBox的AfterUpdate事件来执行Button的Procedure,这也很好。
这不是超级重要,因为我可以按一下按钮或Enter键,但这对我的表单来说是很不错的补充,因此,如果有人可以帮助我解决此问题,我将不胜感激。
答案 0 :(得分:2)
两件事:
使用On Change
事件(txt_Vendor_Search_Change()
)代替KeyPress
事件。
使用Text
属性(Me.txt_Vendor_Search.Text
)代替Value
属性(Me.txt_Vendor_Search
使用默认属性,即Value
)。
然后它应该工作。