您好我想在Access 2013中的字段中自动更新属性的值,如果该字段中的其他属性已被编辑。
在数据库后端我选择了我想要处理的表,然后单击功能区中的AfterUpdate选项卡我输入这些步骤并保存它,但是当我更新DATE_OF_DEATH字段并且没有时,似乎没有任何事情发生生成错误信息,所以我甚至无法调试该东西,我不知道宏是否被触发,或者如果IF语句失败或者如果SetField语句失败,我完全在暗。我真的很感激一些关于解决这个问题的建议。感谢。
代码如下。
If Updated([DATE_OF_DEATH])
EditRecord
SetField
Name OUTCOME
VALUE = "test"
End EditRecord
End If
答案 0 :(得分:1)
Access数据宏中刚刚插入或更新的记录是只读的(就像在SQL Server或其他带触发器的解决方案中一样)。您应该在表USysApplicationLog中看到一个错误。但是,您可以查找刚刚插入的行,然后对其进行修改。
您可以使用以下宏代码:
SetLocalVar
Name NewID
Expression =[ID]
If Updated([DATE_OF_DEATH])
For Each Record In MyTable
Where Condition =[ID]=[NewID]
EditRecord
SetField
Name OUTCOME
Value ="test"
End EditRecord
End If
这将要求您的记录具有唯一标识符。没有唯一的标识符,我认为你无法做到这一点。您可以尝试使用 Before Change 宏来编辑当前更新的记录,并使用IsInsert
仅影响更新,但遗憾的是,这些记录无法访问Updated
功能。