1

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

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

谢谢帮助

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

4

1 回答 1

1

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

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

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

笔记:

  1. Reports是一个保留字,所以我把这个名字括起来以避免混淆数据库引擎。
  2. 如果您关心自动编号种子值并且即使在删除所有行之后它目前仍为 5500000 Reports,请压缩数据库以将种子值重置为比最大存储ID值大一。
于 2013-09-11T14:41:36.957 回答