访问表单:在文本框中捕获日期更改

Posted

技术标签:

【中文标题】访问表单:在文本框中捕获日期更改【英文标题】:Access form: trapping date changes in textbox 【发布时间】:2014-03-19 09:17:38 【问题描述】:

在普通文本框上,我通常使用AfterUpdate 事件来执行一些操作。这意味着用户必须在键入后按 EnterTab,或者单击另一个控件,我一直对这种行为感到满意。 现在我在 Access 2010 的连续表单的标题中设置了一个日期过滤器,我意识到通过自动出现的小日历更改日期不会触发 AfterUpdate 事件,在选择正确的日期,有点沉重。 使用OnChange 会在输入的每个字符处触发,这也不好。 有什么建议吗?

【问题讨论】:

如果你使用小日历,On Change 事件只会触发一次,那么人们会怎么做呢? @Remou:对,但我想让他们选择输入日期。我尝试使用 OnChange + 检查字符数和 IsDate(),但这会产生混乱的结果……我不想花半天时间。理想的情况是让“小日历”触发一个事件。 我看不到小日历会给你一个事件的任何方式,但是,按键事件只会在用户输入控件时发生,因此使用模块级变量、按键和改变事件,你可能会接近。 很好的提示,我会试试的。谢谢 【参考方案1】:

回复有点晚,但我希望它会帮助其他人。 当使用文本框作为 DatePicker 时,您应该使用带有过滤器的更改事件。

但是,当您检查 Form_name.TextboxName 之类的文本框时,它将显示最后选择的日期。为避免这种情况并使用当前选定的日期,您需要提供当前日期,例如Form_name.TextboxName.Text。这里要小心,因为.Text 属性对焦点很敏感。

...简而言之:

Form_name.TextboxName - 将显示最后选择的日期Form_name.TextboxName.Text - 将显示当前选择的日期

【讨论】:

【参考方案2】:

好吧,从日期选择器中选择日期后,TextBox 控件会发生 Change 事件。然后,调用子或函数或将焦点设置到另一个控件...为了避免每个按下的键触发事件,请输入以下内容: 如果 Len(me.activecontrol)

希望对你有帮助

【讨论】:

【参考方案3】:

我在文本框中使用 LostFocus 事件。它允许使用日历工具并更改内容。用户迟早必须离开文本框,不是吗?

【讨论】:

【参考方案4】:

我就是这样用的

Private Sub txt_FirstDate_Change()
    txt_FirstDate = txt_FirstDate.Text
    myfilter
End Sub

【讨论】:

以上是关于访问表单:在文本框中捕获日期更改的主要内容,如果未能解决你的问题,请参考以下文章

在访问中更改组合框值时,可以更改/重新计算计算的文本框值

VBA验证文本框中是不是存在文本,然后检查日期是不是格式正确

访问表单 VBA ComboBox 点击事件

C#Visual Studio 2017.单词在文本框和标签中更改了顺序

在页面加载时修复文本框中的日期格式

访问报告文本框中显示的“本月”日期计数