2012-03-21 38 views
1

我必须创建一个访问Web数据库,并在将记录插入表时遇到令人沮丧的问题。访问,插入后和丢失的ID

我试图使用插入宏后设置的问题数场,正是如此:

Edit Record 
SetField 
Name: [Problem Number] 
Value =: [ID] (There is no more logic here but even this simplest case fails) 

的问题是,这样的问题数结束了空白ID不具有价值。

此逻辑适用于之后更新这是有道理的,因为它有一个ID在那一点。

无论如何,我没有切换到VB代码实现这一点。

回答

1

有几件事。您不希望使用after update事件修改当前记录,因为它理论上会导致before update事件和after update事件再次触发。这种潜力会形成一个循环。

如果你想到这点,你只需将记录保存在桌子上然后再次编辑记录就没什么意思了!事实上,您可以通过设计发现,上下文中的当前记录仅在更新事件之后才被读取。因此,您不能在after update事件的上下文中执行当前记录上的编辑记录,并且如果您检查错误日志,则会出现“只读”错误。

在before change事件中,[id]不可用。但是,您可以在after update事件中选择并使用[id]。

但是,如果你要创建另一个表中的新记录,然后创建记录块外的下一行,让你拿起刚刚创建的记录与

[LastCreateRecordIdentity] 

所以记录写发生在创建记录块外部的下一行。

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

enter image description here

如果你在上面单击创建记录命令,那么整个创建的代码将突出块的事实。注意NEXT代码行是蓝色代码块的外部,这是我们可以使用[LastCreateRecordIdentity]的代码。

蓝色的高亮显示的代码是这样的:

enter image description here

所以下一行权之外创造纪录的是,当你可以拿起新的ID。在上面我实际上是通过returnVars将刚刚创建的新的“返回”给调用例程。

+0

优秀的报道! – 2012-03-22 01:01:19

+0

非常好。我对此感到有点沮丧,所以我暂时转到了项目的另一部分。当我周一回来时,我会再看看这个。 – 2012-03-31 08:13:59