使用查询删除多行时的BeforeDelete

问题描述 投票:0回答:1

我有一个[删除前]数据宏,当我手动删除一行时,它可以工作。

当我尝试使用查询删除行时,我得到

运行时错误“2486”
您目前无法执行此操作。

如果我点击“结束”,我就明白了

未知的 Access 数据库引擎错误

为什么 Access 会关心删除是通过鼠标单击还是通过查询进行的?我认为这些事情的要点在于,它们不知道“如何”,并且无论上下文如何,总是会记录删除。

该宏正在使用自定义函数,该函数在审核表中记录有关删除的一些详细信息(运行 SQL)。
似乎无法通过查询删除行会导致删除相关数据宏的使用无效。

vba ms-access
1个回答
1
投票

因此,在继续努力解决这个问题并尝试其他方法(例如使用“创建记录”来记录更改)之后,它确实起作用了......一时兴起,我尝试使用“CurrentDb.Execute”而不是“DoCmd.RunSQL” " 运行函数内部的查询 - 瞧!成功了!

现在 - 我仍然不明白为什么它会抱怨,但对我来说这很重要,因为我需要更新后数据宏的函数方法(即,对使用我的自定义函数的值使用 SetLocalVar 选项),因为否则可能需要太多条目才能尝试使用更新后数据宏创建记录(由于字段数量通常很大,并且必须独立处理每个字段才能捕获更改的字段。)

我很高兴似乎有一种方法可以调用您自己的运行 SQL 的函数 - 与数据宏结合使用。现在,我可以将添加、编辑和删除全部记录到审核表中,指示关键字段和发生的日期/时间。酷!

© www.soinside.com 2019 - 2024. All rights reserved.