【问题标题】:Record audit log from subform从子表单记录审计日志
【发布时间】:2015-01-24 10:44:21
【问题描述】:

我有一个带有子表单的表单。每当有人更改子表单中的值时,旧记录和新记录都会记录到审计表中。我在子表单上有一个是/否数据类型的附加字段。它存在的唯一目的是用于过滤另一种形式。除了是/否字段之外,有没有办法将所有字段写入审计日志?现在它记录了整个记录,因为子表单已绑定到表。但我不希望是/否字段与其他字段一起记录。如果您需要查看我所拥有的任何部分,请告诉我。

【问题讨论】:

    标签: forms ms-access


    【解决方案1】:

    只需在类型或名称或任何您拥有的编写代码中添加一个限定符;

    If ctl.Type <> acCheckBox then
    <Write to log>
    end if
    
    
    If FieldName <> "UnwantedCheckBox" then
    <Write to log>
    end if
    

    我在每个表单中都使用此代码进行全面控制;

    https://stackoverflow.com/a/27737258/4411380

    【讨论】:

    • 谢谢你的想法,鲁本!我能够在声明部分使用Const oldVal as Byte = 0 使其工作。能够通过 BeforeUpdate 事件,但在躲避 AfterUpdate 事件时遇到了一些麻烦。不过,它可以使用 if 语句将复选框值与oldVal 进行比较。再次感谢!
    【解决方案2】:

    您没有指定如何将数据从子表单保存到审计表。

    我假设您使用绑定的文本字段或组合框或类似的东西?如果是,则取消绑定是/否字段。

    【讨论】:

    • 嗨。谢谢回复。是的,子表单绑定到表,并且有 4 个事件用于创建审计日志(更新前、更新后、删除时、删除确认后......审计日志代码不是我的)。用于在日志中插入更改记录的 SQL 语句是 INSERT INTO (3 fields) SELECT (3 fields' values + table)。但我不想要整张桌子。我想过解除绑定,但是当我这样做时,它在审核日志上创建了“From”行和“To”行,没有 Yes/No 字段,但行之间没有区别。它应该只记录其他字段是否更改。
    猜你喜欢
    • 2017-06-26
    • 2011-01-30
    • 2011-02-02
    • 2016-03-23
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    相关资源
    最近更新 更多