1

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

4

4 回答 4

2

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

您必须在表中添加一个类型列,DATETIME例如命名LastUpdatedDate的,表示每行的最后更新日期/时间。这样做,NOT NULL以便您必须DATETIME为每个INSERT或写入该列的更新值UPDATE。此外,将该列设置DATE()为当前日期戳或NOW()当前日期/时间戳的默认值。然后添加一个验证规则或CHECK约束,例如CHECK (LastUpdatedDate = NOW())确保列在每个UPDATEand上实际更新INSERT

最后,运行一个MAX(LastUpdatedDate)查询,你会得到你需要的。

于 2009-05-29T16:30:46.957 回答
0

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

于 2009-05-29T16:27:23.100 回答
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 History Table 例程旨在编写跟踪对一个或多个表中的字段所做的更改的历史记录。

于 2009-05-29T21:57:05.183 回答
0

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

于 2009-05-29T21:59:14.803 回答