MS Access:审核具有完整日志表的表以跟踪表更改

时间:2017-11-21 09:43:05

标签: database forms logging tracking ms-access-2016

我在这个网站上发现了某些与之有关的帖子可能会发布,但是他们没有帮助我。所以这不是重复的

问题:

这对我来说在开始时似乎很容易做,但它变得复杂且非常具有挑战性。我是MS Access的新手,所以 - 经过多天努力 - 我希望能在这里找到解决方案。

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

enter image description here

现在,我需要在记录级别跟踪此表上的更改,并将更改记录在另一个表(Say Log表)中,如下所示:

enter image description here

track_type:

  1. 用于添加(插入)
  2. 用于编辑(更新)
  3. for delete
  4. 当学生表格上的记录发生变化时,应记录更改(添加/编辑/删除)。

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

    我的表单必须刷新,这会在日志表中产生过多的条目,如下所示:

    enter image description here

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

    我彻底搜查了网,但我找不到这种记录。我找到了有关在字段级别登录的信息,但这不是我想要的。我知道在大多数情况下可能会更好,但不适合我的情况。

    因此,我将非常感谢任何指导性信息/代码。

    专注于问题的最小化数据库已发布 Here ,您可以下载并查看我尝试过的内容以及我遇到的问题。

    注意:

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

1 个答案:

答案 0 :(得分:0)

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

创建一个自定义用户数据类型,其结构与要跟踪的记录的结构相同。

类似的东西:

Private Type Student_Record
   s-id
   s_Name
   s_age
End Type

Dim SR as Student_Record

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

如果事情没问题,你就去吧。

如果出现问题,请返回记录并要求用户更正。

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

感谢用户自定义类型。