输入日期时如何在输入字符串中允许日期名称?

Posted

技术标签:

【中文标题】输入日期时如何在输入字符串中允许日期名称?【英文标题】:How to allow dayname in input string when inputting a date? 【发布时间】:2014-05-16 13:22:17 【问题描述】:

在 Access 的连续表单中,我们希望提供一个组合框,该组合框将显示 7 天,并将日期名称作为下拉列表的一部分。

组合框绑定到日期字段。我们可以轻松地在 Form Load 事件中填充组合框,以 ddd dd/MM/yy 格式显示日期,并且现有日期很高兴地显示在表单上,​​如下所示:

但是,如果您尝试从下拉列表中进行选择,则会收到错误消息:您输入的值对此字段无效。

涉及未绑定组合框的解决方案将不起作用,因为这是一个连续的形式。

这是一个细节,因为日名不是绝对必要的,而且没有日名的组合也能正常工作。然而,这是一个繁重的数据输入表单,因此针对最终用户进行优化很重要,并且拥有日期名称将对他/她有所帮助。

【问题讨论】:

你考虑过日历表吗?它们不占用太多空间,而且非常有用。 @Remou 我们想强制用户从这 7 天中选择,所以选择列表似乎比日历更适合我 您已将日期转换为字符串,因此存在数据类型不匹配,请考虑两列,一列带有日期(因此是日历建议),另一列带有格式化字符串。 @Remou 两栏就是答案,谢谢 【参考方案1】:

我重新创建了这个问题,我想出的解决方案是有一个组合框,其中行源有两列,您使用 ColumnWidths 隐藏第一列,第二列是格式化的日期值。因此,当您在组合框中选择某些内容时,该值是一个未制定的日期值,不会产生任何问题。

像这样填充组合:

Dim i As Integer
For i = 0 To 6
    Dim item As Date
    item = DateAdd("d", i, weekCommencingDate)
    cboTimeDate.AddItem item & ";" & Format(item, "ddd dd/MM/yy")
Next i

【讨论】:

感谢@ashareef,我已经编辑了代码以帮助未来的访问者

以上是关于输入日期时如何在输入字符串中允许日期名称?的主要内容,如果未能解决你的问题,请参考以下文章

在 DateTime.parse() 中允许空字符串

限制表单输入文本字段中允许的字符数

原生 chrome 日期选择器。年份字段中的六个字符

DateTimePicker - 如何将时间间隔设置为 20 分钟、一周中允许的特定日期和一天中的时间?

如何限制文本框中允许的字符数?

如何在 CodeIgniter URL 中允许 URI 编码字符?