我希望我的用户只选择访问2007中提交的日期时间。我发现有一个内置的日期控件,但找不到时间控件。有谁知道是否有办法让时间选择器控制?
答案 0 :(得分:2)
对于输入时间值,专用控件不会为用户提供比直接将时间值输入到绑定到日期/时间字段IMO的文本框中更多的便利(如果有的话)。
下午1:30,她可以输入1:30p,并且会被适当接受。如果她愿意的话,她也可以在13:30进入。
如果您的担忧是阻止用户输入(非零)日期值以及时间,您可以在更新事件后丢弃文本框中的日期部分。当用户输入的值的日期部分被丢弃时,用户往往会快速捕获。
Private Sub txtTimeOnly_AfterUpdate()
Me.txtTimeOnly = TimeValue(Me.txtTimeOnly)
End Sub
实际上,这会将日期部分转换为VBA的第0天,#1899/12/30#。但这是您希望存储“仅限时间”值的最佳值,因为Date \ Time值始终在VBA和数据库字段类型中都包含日期。
如果您想要更多保证该字段将存储时间值(使用#1899/12/30#作为日期),您可以在表格上设置验证规则:
IsNull([time_only_field]) Or DateValue([time_only_field])=CDate("1899/12/30")
如果您仍然觉得需要时间选择器控件,请在网上搜索是否有人创建了一个。我会避免使用ActiveX控件,因为它们最终会产生版本问题。
或者我想你可以使用组合框创建自己的自定义时间选择器:一个小时;一分钟;并且,如果需要,一秒钟。在更新事件后的组合中,从这些片段构建时间值并将它们存储在绑定到time_only_field的控件中。该控件无需由用户编辑,但使其可见将允许他们查看完成的值。