MS Access:使用完整日志 table 审核 table 以跟踪 table 更改

MS Access: Audit a table with a full log table to track table changes

我在这个网站上发现了一些与可能问题相关的帖子,但没有一个对我有帮助。所以这不是重复的


问题:

一开始我觉得这是一件很容易做的事情,但它变得复杂且非常具有挑战性。我是 MS Access 的新手,所以 - 经过多日的努力 - 我希望在这里找到解决方案。

假设我们有一个像这样的简单 table:

现在,我需要在记录级别跟踪此 table 的更改,并在另一个 table 中记录更改(比如日志 table),如下所示:

其中 track_type:

  1. 用于添加(插入)
  2. 用于编辑(更新)
  3. 删除

更改学生表格上的记录时应记录更改(add/edit/delete)。

我的问题是我无法正确生成更改。

我的表单 必须刷新 很多,这使得日志中的条目过多 table 像这样:

如您所见,插入一条记录需要两个日志,而不是一个日志。

我在网上找遍了,没有找到这种日志记录。我找到了有关在字段级别登录的信息,但这不是我想要的。我知道在大多数情况下它可能更好,但不适合我。

所以,我将不胜感激任何指导 information/code。

发布了一个专注于问题的最小化数据库Here,您可以下载它,看看我尝试了什么以及我卡在哪里。

备注:

  1. 只有当用户: - 从表单上的当前记录移动。 - 退出表单
  2. 在同一条记录上不应发生更改,即使这些更改已提交给学生 table。
  3. 刷新在所难免
  4. 如果在现场级别,审计跟踪没有帮助。
  5. 数据宏没有帮助,因为可以多次提交更改。
  6. Before/After 由于 Refresh 方法,插入或更新事件有问题。
  7. 非常感谢使用附加数据库展示您的解决方案。
  8. 自定义导航按钮不是一个选项。

经过多次尝试,我想到了这个解决方案:

创建与要跟踪的记录具有相同结构的自定义用户数据类型。

类似于:

Private Type Student_Record
   s-id
   s_Name
   s_age
End Type

Dim SR as Student_Record

然后在此 SR 记录而不是实际记录上进行所有验证。

如果一切顺利,你就走。

如果有什么不对的地方,请返回记录并要求用户更正。

需要更多编码,但它有效。

感谢用户自定义类型。