在MS-Access 2010中,我有一个带有文本字段的表格形式,我想将其用作所显示数据的过滤器。当用户在此字段中输入值时,在其事件处理程序中,我设置了表单的过滤器和过滤器属性。一切都很好,除了一个用户输入(她离开过滤器控件的klick或按键)丢失 - 也就是说,她必须选项卡或单击两次才能离开该字段。她觉得这最烦人。
我在文本框中对所有事件进行了实验 - 要么它能够正常工作,要么只能用一个用户输入。
请参阅附件example database - 在过滤器框中输入过滤器值(例如字符' c')后,单击下方框(其他一些控件)。在该单击上,正确应用了过滤器,但光标仍保留在过滤器框中。它仅在第二次单击后移动到另一个控件。
如何避免丢失该用户输入?
答案 0 :(得分:1)
我以前见过这种行为,但不记得我是否找到了一个好的解决方案(可能不是,或者我记得)。
一个不错的解决方法是分开两件事:
使用Form_Timer
事件程序。
Me.TimerInterval = 1
激活计时器,Me.TimerInterval = 0
将其停用。
Private Sub SetFilter()
Me.Filter = "tText >= '" + Nz(Me.FilterMin) + "'"
Me.FilterOn = True
End Sub
Private Sub FilterMin_AfterUpdate()
' Separate control navigation and filtering by using the Form.OnTimer event
Me.TimerInterval = 1
End Sub
Private Sub Form_Timer()
' Deactivate timer (important!)
Me.TimerInterval = 0
Call SetFilter
End Sub