Ms access 验证前的MSAccess更改日期值

Ms access 验证前的MSAccess更改日期值,ms-access,Ms Access,在网格中,我有一个日期/时间字段,我希望用户能够在其中键入日期和时间的速记格式。例如,如果他们键入435p,然后将焦点从单元格上移开,他们会收到一条消息,即您输入的值对此字段无效。。相反,我希望捕获一个预验证事件,并将其更改为下午4:35 我可以使用什么事件 我试过: LostFocus&BeforeUpdate:在事件发生之前激发验证太晚 Dirty&OnChange:他们还没有离开牢房,太早了 或者有没有办法关闭检查日期格式的本机验证规则?您可以使用一个附加的文本字段而不设置格式或使用自己的

在网格中,我有一个日期/时间字段,我希望用户能够在其中键入日期和时间的速记格式。例如,如果他们键入435p,然后将焦点从单元格上移开,他们会收到一条消息,即您输入的值对此字段无效。。相反,我希望捕获一个预验证事件,并将其更改为下午4:35

我可以使用什么事件

我试过:

LostFocus&BeforeUpdate:在事件发生之前激发验证太晚

Dirty&OnChange:他们还没有离开牢房,太早了


或者有没有办法关闭检查日期格式的本机验证规则?

您可以使用一个附加的文本字段而不设置格式或使用自己的格式。然后显示此字段而不是datetime字段,并用代码更新date time字段。
不是很漂亮,但是如果你总是在更新之前将输入格式化为一个适当的时间字符串,并且从不访问这个字段,而是访问实时日期时间字段,你应该可以。您甚至可以命名字段Helper_DateTime或类似的名称,这样您就不会试图从其他任何地方访问该字段

我想你必须想一想,有一个未绑定的文本框,你可以验证,进行转换,然后更新实际的日期/时间字段。@Horaciux假设我没有做错什么。。。我在更新前尝试过,当输入完全无效时,字段或记录级验证将触发,并防止更新前触发,如本例所示。@JeremyCook-问题是我需要在网格中查看该字段。如果它是未绑定的,你知道我该如何将它连接起来以供查看和排序吗?我想这会有点乱,你想怎么做就怎么做。您最好提供一个友好的验证消息,并提供一些有效时间的示例……Access对于它将接受的内容非常灵活。如果您不想这样做,您可以设置一个连续的表单,并在大多数时间显示绑定日期/时间字段,但当用户单击时除外,在这种情况下,将显示未绑定的文本字段并获得焦点。用户输入该字段,您的代码将处理验证和更新实际日期/时间字段。感谢@Johanness的想法。然而,挑战不只是在编辑场景中——如何才能在网格中显示所有现有数据的字段?它需要可过滤、可排序等。。就像其他领域一样。有什么想法吗?您仍然可以使用原始字段进行此操作,尽管您必须在UI中同时使用这两个字段这不是一个好主意,或者您必须有一个自定义排序和筛选视图。一开始看起来比实际情况更糟:access中的autofilter只提供了一个特定字段中所有值的列表——这几乎没有意义。