MS Access ADP 自动编号

Posted

技术标签:

【中文标题】MS Access ADP 自动编号【英文标题】:MS Access ADP Autonumber 【发布时间】:2008-09-12 19:36:43 【问题描述】:

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

运行时错误“31004”:

(自动编号)字段的值 在存在之前不能被检索 已保存。

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

有人知道这是什么意思吗?

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

【问题讨论】:

【参考方案1】:

首先,如果您要查看专家交流 - 在 FireFox 中进行,您会在页面底部看到畅通的答案。

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

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

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于MS Access ADP 自动编号的主要内容,如果未能解决你的问题,请参考以下文章

在压缩/修复期间防止自动编号重置 (MS Access)

MS Access 主键自动编号变得混乱

最后插入行的自动编号值 - MS Access / VBA

从 MS Access 中的表中获取自动编号字段值

MS Access:我想要一个启用数据输入的表单来自动填充自动编号,目前我得到的只是(新)

如何在 MS Access VB 中访问 SQL Server 标量函数