2009-05-29 115 views
0

有谁知道检测何时上次更改Microsoft Access表(已插入或更新)的方法?我们通过ADO COM使用OLEDB以编程方式与访问数据库进行通信,并正在寻找检测特定表的更改的方法。我们不需要知道这些变化是什么,只是发生了变化。检测Microsoft Access数据库表上最后一次更改的时间

回答

2

检测表中的数据是否已更改的唯一方法是对表执行查询。

您必须在表格中添加一列DATETIME,例如表示每行最后更新日期/时间的名称为LastUpdatedDate。将其设置为NOT NULL,以便您必须为每个INSERTUPDATE将更新后的DATETIME值写入该列。此外,将列设置为当前日期戳为DATE()或当前日期/时间戳为NOW()。然后添加验证规则或CHECK约束条件,例如, CHECK (LastUpdatedDate = NOW())以确保该列在每个UPDATEINSERT上实际更新。

最后,运行MAX(LastUpdatedDate)查询,您将得到您所需的信息。

0

每次访问表格时没有“手动”写入列的方法。

0

正如其他人已经表示,没有办法跟踪变化,而无需自己编码。

有在 ACC2000一个简单的例子:如何在窗体创建记录更改的审计线索 http://support.microsoft.com/default.aspx?scid=kb;en-us;Q197592

审计线索 - 在以创纪录的水平更改日志: http://allenbrowne.com/AppAudit.html 文章地址编辑,插入,并删除一个表单和子表单。

模块:维护历史表仪器是用来编写跟踪到一个或多个表的字段的更改历史记录变化 http://www.mvps.org/access/modules/mdl0021.htm 的历史。

+0

我不认为任何这些将工作,如果他们通过ADO COM使用OLEDB以编程方式与访问数据库进行通信。 – onedaywhen 2009-07-17 07:52:34

0

您需要在表中实现时间戳列,并在数据更改期间更新该值。

相关问题