【发布时间】:2013-08-16 04:14:54
【问题描述】:
对于自动日期\时间,我们在 SQL 中使用 TIMESTAMP 数据类型。什么相当于 MS Access 2007 中的该数据类型...
【问题讨论】:
标签: sql ms-access ms-access-2007
对于自动日期\时间,我们在 SQL 中使用 TIMESTAMP 数据类型。什么相当于 MS Access 2007 中的该数据类型...
【问题讨论】:
标签: sql ms-access ms-access-2007
Access 中没有完全相同的等价物。
澄清一下,SQL 中的 TIMESTAMP 并不总是一个可用的日期/时间,例如在SQL Server it is deprecated 中,等价于ROWVERSION,它总是返回一个唯一的值并且它不用于跟踪日期和时间,即使它的值是松散的从当前时间派生。
但假设您要跟踪记录的更改。
在 Access 中,您可以通过以下方式自动将字段设置为 DateTime:
首先,您可以将=Now 指定为表中日期时间字段的默认值。这将分配创建记录的当前时间(但不会在记录更改时自动更新)。
为了在您进行更改时记录当前日期时间,您必须在 VBA 中或通过宏对其进行编程:
查看记录集时,只要对记录进行更改,只需更新您的 !ModifiedDateTime 或(无论您如何称呼您的字段)。
当您的表/查询绑定到表单时,您可以通过处理表单的BeforeUpdate 事件让表单更新您的ModifiedDateTime 字段:
Private Sub Form_BeforeUpdate(Cancel As Integer)
ModifiedDateTime = Now
End Sub
如果您使用查询而不是表来绑定到表单,请确保该字段存在于查询中。
在 Access 2010 及更高版本中,您还可以使用新的数据宏(与 Access 等效的触发器)来记录记录更改时的当前日期和时间。
这不太便携,但可能比使用 VBA 更可靠,因为您不必记住在修改记录时对其进行编码(数据宏在 ACE 数据库驱动程序级别处理)。
tons of articles 介绍了如何在 Access 中创建审计跟踪(如果您正在寻找)。
【讨论】:
DateTime 是 Access 中唯一基于日期的数据类型。然后,您可以将该字段格式化为“通用日期”或“长时间”以捕获到秒。我不认为 Access 比这更准确。
【讨论】: