插入到语句中的id的大数字

时间:2013-09-11 12:40:59

标签: sql vba ms-access ms-access-2007 access-vba

我正在使用vba在Access中开发一个应用程序。我不想在另一个名为“Reports”的表中插入一个临时表。表Reports具有自动增量的id。现在我的临时表没有id。所以我认为Access会自动更改最后一个ID后面的报告ID。 (所以当最后一个ID = 1时,新行将获得ID = 2)。但是,当我运行插入语句时,Access会生成超过5500000的ID,而不是我之前的记录。有谁知道是什么原因引起这个问题?

strSql = "INSERT INTO Reports SELECT * FROM tblTemp;"
CurrentDb.Execute strSql

帮助

编辑:刚刚发现当我添加记录时他也会这样做

1 个答案:

答案 0 :(得分:1)

列出Reports中将接收数据的字段的名称。省略该列表中的ID字段,让db引擎提供自动编号值。

例如,如果Reports包含字段:ID; fld2;和fld3 ......

INSERT INTO [Reports] (fld2, fld3) SELECT fldA, fldB FROM tblTemp;

注意:

  1. Reportsreserved word,因此我将该名称括起来以避免混淆数据库引擎。
  2. 如果您关心自动编号种子值,即使删除了所有Reports行,它目前仍在5500000,请压缩数据库以将种子值重置为大于最大存储ID值的值。