MS Access ADP自动编号

时间:2020-03-05 18:52:29  来源:igfitidea点击:

尝试在链接到MS SQL Server 2000表的表单上添加记录时,MS Access ADP中出现以下错误:

Run-time error '31004':
  
  The value of an (AutoNumber) field
  cannot be retrived prior to being
  saved.
  
  Please save the record that contains
  the (AutoNumber) field prior to
  performing this action.
  note: retrieved is actually spelled wrong in the error.

有人知道这意味着什么吗?

我已经进行了一次网络搜索,但只能在只有专家才能访问的某个站点上找到答案。

解决方案

回答

我们是否要在保存记录之前将"标识"字段的值分配给变量或者其他变量?

无论出于何种原因,应用都试图在保存记录之前读取标识字段的值,这就是生成该标识字段的原因。换句话说,在保存该行之前,"自动编号"字段不存在任何值。

我认为我们需要查看更多代码或者更多了解导致此错误的步骤才能更详细地解决该问题。

回答

首先,如果我们要查看Expert-exchange在FireFox中进行操作,我们将在页面底部看到不受阻碍的答案。

其次,该表单上是否有一个子表单,该子表单使用主表单上的自动编号/键字段?我们是否要求在保存主表单之前先保存该子表单上的数据(即具有自己的密钥)。我们可能陷入A和B的僵局,要求彼此先保存。

除此之外,保存时必须以某种方式访问​​该自动编号字段。我所建议的最好方法是逐行逐步执行代码。

回答

我们应该添加一些代码行,以向我们展示如何管理数据以及正在做什么。但是我怀疑与记录集更新有关的问题。我们可以识别何时创建自动编号值?它可以在窗体的控件中使用吗?我们可以添加一个控件来显示此值,以检查添加新记录时如何生成该值吗?基础记录集是否已正确更新?我们可以在某些表单事件上添加类似me.recordset.update的内容吗:我可以尝试使用OnCurrent一个...