2

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

运行时错误“31004”:

(自动编号)字段的值在保存之前无法检索。

请在执行此操作之前保存包含(自动编号)字段的记录。注意:retrieveed实际上是在错误中拼写错误。

有谁知道这意味着什么?

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

4

3 回答 3

2

首先,如果您要查看experts-exchange - 在FireFox 中进行,您将在页面底部看到未屏蔽的答案。

其次,您在该表单上是否有使用主表单上的自动编号/键字段的子表单?您是否需要在保存主窗体之前保存该子窗体上的数据(即拥有自己的密钥)。您可能会陷入 A 和 B 的僵局,需要先得救对方。

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

于 2008-09-15T14:53:17.747 回答
0

您是否尝试在保存记录之前将标识字段的值分配给变量或其他内容?

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

我认为我们需要查看更多代码或更多地了解导致此错误的步骤以更详细地解决它。

于 2008-09-12T21:31:40.480 回答
0

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

于 2008-09-16T21:30:14.193 回答