小编典典

如何重设Access表的“自动编号”字段?(不是从1开始)

sql

我有一条INSERT INTO ... SELECT语句将数据从一个表复制到另一个表。

但问题是,第二个表中的AutoNumber列值从第一个表中的最后一个数字开始。
这意味着第一个表的计数是2000,然后,第二个表从2001开始。

使用Access数据库时,如何重设此值?


阅读 226

收藏
2021-05-05

共1个答案

小编典典

您可以从ADO执行Access DDL语句以重置自动编号种子值。这是立即窗口会话的示例:

strDdl = "ALTER TABLE Dummy ALTER COLUMN ID COUNTER(1, 1);"
CurrentProject.Connection.Execute strDdl

该语句必须从ADO执行。如果您使用DAO(例如CurrentDb.Execute strDdl)或通过Access查询设计器尝试失败,它将失败。该示例成功,因为CurrentProject.Connection是一个ADO对象。

后面的两个值COUNTERseedcrement
。因此,如果我希望自动编号从1000开始并增加2,则可以使用COUNTER(1000, 2)

如果表中包含数据,则种子值必须大于最大存储值。如果执行语句时表为空,则不会有问题。

2021-05-05