我有一个奇怪的现象,我无法解释或重现,我希望你知道用户输入无效值的可能性。
我有一个Access-MDB,其中包含一个包含编辑字段的表单,该表单只接受没有任何日期信息的时间值。
该编辑字段的相关属性如下:
(我使用德语版的Access,所以属性名称可能会略有不同,但你会看到模式)
现在我发现用户能够在该字段中输入日期值。我几乎100%确定它是一个意外而且没有“聪明的黑客”,直接打开表格并编辑相应的日期/时间字段。由于参赛作品于2009年制作(没有人发现错误),我没有机会询问用户是如何完成的。
我发现两个日期为“01.06.2000”和“01.07.2000”的错误条目,我想用户想要输入时间“06:00”和“07:00”。
我尝试了所有我能想象的输入(例如“6.0”,“6; 0”,“6,0”,复制和粘贴),但我无法访问并输入除数字和冒号之外的任何内容。
您是否知道发生了什么以及用户如何能够意外地进入这些日期?
答案 0 :(得分:1)
Jet / ACE日期/时间值永远不会存储“没有任何日期信息”。如果您尝试仅存储时间组件,它实际上将在第0天(1899年12月30日)的相同时间存储。
我们只能推测2009年如何添加不正确的数据。如果您希望数据库引擎要求将日期/时间值与第0天一起存储为日期组件,则可以添加表级验证规则。从表属性表中,尝试使用验证规则:
DateValue([your_date_field])=CDate("1899/12/30")
如果您想为your_date_field允许Null,请尝试以下版本:
IsNull([your_date_field]) Or DateValue([your_date_field])=CDate("1899/12/30")
答案 1 :(得分:0)
几种可能性:
最后,如果你放了90个小时,它会溢出到4天之内吗?那可能会这样做。