我正在使用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
帮助
编辑:刚刚发现当我添加记录时他也会这样做
答案 0 :(得分:1)
列出Reports
中将接收数据的字段的名称。省略该列表中的ID
字段,让db引擎提供自动编号值。
例如,如果Reports
包含字段:ID
; fld2
;和fld3
......
INSERT INTO [Reports] (fld2, fld3) SELECT fldA, fldB FROM tblTemp;
注意:
Reports
是reserved word,因此我将该名称括起来以避免混淆数据库引擎。Reports
行,它目前仍在5500000,请压缩数据库以将种子值重置为大于最大存储ID
值的值。