好奇的是,当我将带有519行的电子表格中的数据导入空表时,为什么我的自动编号键从56,557,618开始?这有多大?我不想最终耗尽我的主键字段的数字,因为我甚至没有在项目上开始,我希望定期倾销电子表格。
答案 0 :(得分:3)
您可以使用以下方法重置自动编号而不使用紧凑和修复:
CurrentDb.Execute "ALTER TABLE tblTable ALTER COLUMN ID COUNTER(1,1)"
在运行SQL之前,您必须确保该表为空,否则您将尝试使用Access来创建重复的自动编号。
答案 1 :(得分:1)
Access会记住它在空表上发出的最后一个ID。要重置自动编号,您必须在清空表后压缩/修复数据库
自动编号也是一个长整数,在Access中可以达到2,147,483,647
答案 2 :(得分:0)
您还可以通过创建包含自动编号列的追加查询来重置自动编号。一旦添加了一行,该数字将被设置为附加值+ 1。
执行此操作时,必须注意该值不小于最高当前值。
例如
INSERT INTO tblName ( id )
SELECT [tblName]![id]+1 AS [New Value]
FROM tblName
GROUP BY [tblName]![id]+1, tblName.id
HAVING (((tblName.id)=(Select max(id) from tblName)));
将自动编号重置为最后一个数字的+ 2。请注意,您必须包含任何必填列,然后删除新行。