【发布时间】:2014-11-20 14:19:03
【问题描述】:
在一个旧的 VB6 程序中,我有一个与窗体上的文本控件相关联的数据控件。 JET 数据库中的一些表字段是日期时间字段。
日期时间字段没有默认值,因此当第一次显示在表单上时,它们显示为空白。当它们最终被设置时,文本字符串被验证为日期,数据控件会及时更新记录。
如果用户希望删除日期(例如,更正之前的数据输入),他们只需将该字段留空。保存时不会发生错误,但不会更新受影响的日期时间字段。再次查看记录时,可以看到最后输入的日期。
检查文本控件的 DataChanged 属性后,我可以看到日期值已更改为空白 (= cNullString)。
因此,我假设记录的最终保存会忽略 cNullString,因为它认为它对于日期时间字段无效。
当我的用户输入空白时,如何强制 datetime 字段恢复为空,以便下次查看时再次为空白?
【问题讨论】:
-
尝试输入 0。日期通常以自日期以来的单位存储。在 Windows 中,整数是天数,分数是自 (1/1/1601??) 以来一天中的时间。
-
如果我这样做,我实际上会输入一个日期,当用户再次查看记录时,他们会看到第 0 天的日期。我希望他们看到空白。我还试图避免转换,例如检测第 0 天并将该字段设为空白,然后在保存之前恢复 0。