Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 导入时MS Access自动编号_Database_Ms Access 2007_Overflow_Containers_Autonumber - Fatal编程技术网

Database 导入时MS Access自动编号

Database 导入时MS Access自动编号,database,ms-access-2007,overflow,containers,autonumber,Database,Ms Access 2007,Overflow,Containers,Autonumber,奇怪的是,当我从一个有519行的电子表格中导入数据到一个空表中时,为什么我的自动编号键从56557618开始?这个能有多大?我不希望主键字段的数字用完,因为我甚至还没有开始这个项目,我希望能够定期转储电子表格。Access会记住它在空表上给出的最后一个ID。要重置自动编号,必须在清空表后压缩/修复数据库 此外,自动编号是一个长整数,在Access中可以高达2147483647Access会记住它给出的最后一个ID,即使在空表上也是如此。要重置自动编号,必须在清空表后压缩/修复数据库 此外,自动编

奇怪的是,当我从一个有519行的电子表格中导入数据到一个空表中时,为什么我的自动编号键从56557618开始?这个能有多大?我不希望主键字段的数字用完,因为我甚至还没有开始这个项目,我希望能够定期转储电子表格。

Access会记住它在空表上给出的最后一个ID。要重置自动编号,必须在清空表后压缩/修复数据库


此外,自动编号是一个长整数,在Access中可以高达2147483647

Access会记住它给出的最后一个ID,即使在空表上也是如此。要重置自动编号,必须在清空表后压缩/修复数据库


此外,自动编号是一个长整数,在Access中可高达2147483647

您可以重置自动编号,而无需压缩并使用以下方法进行修复:

 CurrentDb.Execute "ALTER TABLE tblTable ALTER COLUMN ID COUNTER(1,1)"

在运行SQL之前,您必须确保表为空,否则您将获得尝试创建重复自动编号的访问权限。

您可以使用以下方法重置自动编号,而无需压缩和修复:

 CurrentDb.Execute "ALTER TABLE tblTable ALTER COLUMN ID COUNTER(1,1)"

在运行SQL之前,必须确保表为空,否则在尝试创建重复的自动编号时将获得访问权限。

您还可以通过创建包含自动编号列的追加查询来重置自动编号。追加一行后,数字将设置为附加值+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。注意:您必须包括所有必填列,然后删除新行。

您还可以通过创建包含自动编号列的追加查询来重置自动编号。追加一行后,数字将设置为附加值+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。注意:您必须包括所有必填列,然后删除新行。

是否有空表?此电子表格转储是表格第一次被命中。你是说每次都删除并创建表格?还是你在重复使用这张桌子?我第一次使用这张桌子时,我的钥匙是56mil。在看到这些之后,我杀死了这个表,重新创建它,再次转储,并得到了类似的结果。当我进行压缩和修复时,是否会返回“已删除”的键?是否有生成顺序键或随机键的自动编号?您可以使用查询覆盖自动编号字段,新编号将使用覆盖值开始。即使删除记录,编号也不会重置。这就是可能发生的事吗?有空桌子吗?此电子表格转储是表格第一次被命中。你是说每次都删除并创建表格?还是你在重复使用这张桌子?我第一次使用这张桌子时,我的钥匙是56mil。在看到这些之后,我杀死了这个表,重新创建它,再次转储,并得到了类似的结果。当我进行压缩和修复时,是否会返回“已删除”的键?是否有生成顺序键或随机键的自动编号?您可以使用查询覆盖自动编号字段,新编号将使用覆盖值开始。即使删除记录,编号也不会重置。这就是可能发生的情况吗?是否需要在VBA中运行?我以为ALTER TABLE是一个SQL命令,但它不会为我运行。如上所述,它将在VBA中运行,但您可以将ALTER TABLE tblTable ALTER COLUMN ID COUNTER(1,1)粘贴到查询设计窗口的SQL视图中,它将运行。除非您希望从1100,1重新启动,否则不必使用计数器(1,1)。是否需要在VBA中运行?我以为ALTER TABLE是一个SQL命令,但它不会为我运行。如上所述,它将在VBA中运行,但您可以将ALTER TABLE tblTable ALTER COLUMN ID COUNTER(1,1)粘贴到查询设计窗口的SQL视图中,它将运行。您不必使用计数器(1,1),除非您希望从1100,1重新启动。