在MS Access表单上更改数据时的表单级事件?

时间:2008-12-24 01:22:41

标签: vba ms-access access-vba

基本上我正在使用MSAccess应用程序,在管理员将查看和编辑用户数据的表单上,我希望能够在更改时使用字段的旧值和新值调用事件。此函数将在审计表中添加记录以跟踪更改。

创建查询以将条目添加到审计表中我没有问题,但我不知道将函数调用放在何处。我已经尝试了几个表单级事件,所以我不必进入50个字段中的每个字段并编辑它们的onBlur事件以检查新值但是没有运气。

任何提示都会受到欢迎。

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

您可以在After Insert,After Update和After Del Confirm事件中调用您的函数。这些类似于在插入,更新或删除记录后触发的触发器。

答案 2 :(得分:0)

solution(1)将在“beforeUpdate”事件中添加一个事件处理程序。 Remou's proposal非常有趣。

解决方案(2)将比较记录集中的数据与afterUpdate事件中控件中的数据:对于绑定到记录集中字段的控件,总是有一个步骤,控件中的值不同于记录。当控制源是直接字段名称时,这非常容易。

但我不喜欢在表单级别审核更改的概念:其结果可能不明确,因为表单级别更改的数据可能不会保存在表级别,因为表单可以在基础记录集之前关闭更新,或因为SQL查询未发送到服务器。

如果您的数据更新是通过SQL synatx进行的,那么解决方案(3)将在“事务日志”中存储从Access应用程序发送到数据库服务器的“INSERT”或“UPDATE”字符串。