我必须创建一个访问Web数据库,并在将记录插入表时遇到令人沮丧的问题。
我正在尝试使用 After Insert 宏来设置问题编号字段,因此:
Edit Record
SetField
Name: [Problem Number]
Value =: [ID] (There is no more logic here but even this simplest case fails)
问题是ID没有值,因此问题编号最后为空白。
此逻辑适用于 After Update ,因为它在此时具有ID,所以它是有意义的。
无论如何我无需切换到VB代码即可实现此目的。
答案 0 :(得分:1)
一些事情。您不希望使用更新后事件来修改当前记录,因为它理论上会导致更新前事件和更新后事件触发AGAIN。这可能会导致循环循环。
如果你想到这一点,那么在你刚刚将记录全部保存到桌面之后再没有意义了,那么你再次编辑记录吧!实际上,您可以通过设计发现上下文中的当前记录仅在更新事件之后读取。因此,您无法在更新后事件的上下文中对当前记录执行编辑记录,如果检查错误日志,则会出现“只读”错误。
在更改前事件中,[id]不可用。但是,您肯定可以在更新后事件中选择并使用[id]。
但是,如果要在另一个表中创建新记录,则创建记录块之外的NEXT行允许您使用
选择刚创建的记录[LastCreateRecordIdentity]
因此,记录写入发生在创建记录块之外的下一行。
例如,这里有一些创建新记录的代码,并注意非常小心代码的“缩进”。
如果您单击上面的create record命令,那么WHOLE创建代码块将突出显示。注意NEXT代码行是如何在蓝色代码块的外部,这是我们可以使用[LastCreateRecordIdentity]的代码。
蓝色突出显示的代码是这样的:
因此创建记录之外的NEXT行是您可以获取新ID的时间。在上面我实际上将通过returnVars创建的新id“返回”到调用例程。