有没有人知道检测Microsoft Access表的最后一次更改(插入或更新)的方法?我们通过ADO COM使用OLEDB以编程方式与访问数据库进行通信,并且正在寻找一种检测特定表的更改的方法。我们不需要知道这些变化是什么,只需要做出改变。
答案 0 :(得分:2)
检测表中数据是否已更改的唯一方法是对表执行查询。
您必须向表中添加DATETIME
类型的列,例如名为LastUpdatedDate
,表示每行的最后更新日期/时间。设为NOT NULL
,这样您就必须为每个DATETIME
或INSERT
的列添加更新的UPDATE
值。此外,将列设置为当前日期戳的默认值DATE()
或当前日期/时间戳的NOW()
。然后添加验证规则或CHECK
约束,例如CHECK (LastUpdatedDate = NOW())
确保列在每个UPDATE
和INSERT
上实际更新。
最后,运行MAX(LastUpdatedDate)
查询,您将获得所需内容。
答案 1 :(得分:0)
每次访问表时都没有“手动”写入列的方法。
答案 2 :(得分: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 历史记录表例程旨在编写跟踪对一个或多个表中的字段所做更改的历史记录。
答案 3 :(得分:0)
您需要在表格中实施时间戳列,并在数据更改期间更新值。