访问,插入后和缺少的ID

时间:2012-03-21 09:27:56

标签: ms-access

我必须创建一个访问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代码即可实现此目的。

1 个答案:

答案 0 :(得分:1)

一些事情。您不希望使用更新后事件来修改当前记录,因为它理论上会导致更新前事件和更新后事件触发AGAIN。这可能会导致循环循环。

如果你想到这一点,那么在你刚刚将记录全部保存到桌面之后再没有意义了,那么你再次编辑记录吧!实际上,您可以通过设计发现上下文中的当前记录仅在更新事件之后读取。因此,您无法在更新后事件的上下文中对当前记录执行编辑记录,如果检查错误日志,则会出现“只读”错误。

在更改前事件中,[id]不可用。但是,您肯定可以在更新后事件中选择并使用[id]。

但是,如果要在另一个表中创建新记录,则创建记录块之外的NEXT行允许您使用

选择刚创建的记录
[LastCreateRecordIdentity]

因此,记录写入发生在创建记录块之外的下一行。

例如,这里有一些创建新记录的代码,并注意非常小心代码的“缩进”。

enter image description here

如果您单击上面的create record命令,那么WHOLE创建代码块将突出显示。注意NEXT代码行是如何在蓝色代码块的外部,这是我们可以使用[LastCreateRecordIdentity]的代码。

蓝色突出显示的代码是这样的:

enter image description here

因此创建记录之外的NEXT行是您可以获取新ID的时间。在上面我实际上将通过returnVars创建的新id“返回”到调用例程。

相关问题