在普通文本框中,我通常使用AfterUpdate
事件来执行某些操作。这意味着用户在键入后必须按 Enter 或 Tab ,或者单击另一个控件,我一直对此行为感到满意。
现在我在Access 2010中的连续表单的标题中设置了一个日期过滤器,我意识到通过自动出现的小日历更改日期,不会触发AfterUpdate
事件,强制按Enter后选择正确的日期,这有点重
使用OnChange
会在输入的每个字符处触发,这也不好
有什么建议吗?
答案 0 :(得分:1)
好吧,从日期选择器中选择日期后,TextBox控件会发生Change事件。然后,调用子或函数或将焦点设置到另一个控件...以避免每个按下的键触发事件,如下所示: 如果Len(me.activecontrol)< 10然后退出sub
我希望这会有所帮助
答案 1 :(得分:1)
这是一个迟到的回复,但我希望它会帮助其他人。 使用文本框作为DatePicker时,您应该使用过滤器更改事件。
但是,当您检查Form_name.TextboxName
之类的文本框时,它会显示上次选择的日期。要避免这种情况并使用当前选定的日期,您需要提供当前日期,例如Form_name.TextboxName.Text
。这里要小心,因为.Text
属性对焦点很敏感。
...简而言之:
Form_name.TextboxName
- 将显示上次选择的日期
Form_name.TextboxName.Text
- 将显示当前选择的日期
答案 2 :(得分:0)
我在文本框中使用LostFocus事件。它允许使用日历工具并更改内容。用户迟早要离开文本框,不是吗?
答案 3 :(得分:0)
我以这种方式使用
Private Sub txt_FirstDate_Change()
txt_FirstDate = txt_FirstDate.Text
myfilter
End Sub