1

在您认为这是一个已经回答的问题之前,请听我说完。

我继承了一个 Access MDB 文件。它有 2 个表(实际上是 4 个,但我只关心 2 个)。一种是带有自动编号字段的成员表。第二个表具有相同的字段,但 ID 字段只是数字(不是自动编号)。第二个表在人们“退休”时获取他们的姓名。

现在的问题是有些人想回来。我无法将它们复制回来,因为它们将获得一个新的 ID 号,并且所有其他报告数据(我之前没有提到)都被键入到它们的原始 ID 号,这在两个表之间仍然是唯一的。

我想做的是暂时关闭 AutoNumber 字段足够长的时间,以允许我合并“退休”表中的数据,然后重新打开 AutoNumber。但 Access 不允许我这样做,因为自动编号 ID 与其他表格和各种报告相关联。(我想我确实关心其他表。)

这个答案很接近,添加具有旧 ID 的记录,这些记录是在 access 中使用自动编号生成的,但侧重于 1 行。我有很多。与此答案相同:导入 Microsoft Access 数据库时保留自动编号列的值

我认为第二个答案非常接近,但我不知道如何使用docmd.RunSQL

如果这很简单,而我只是错过了显而易见的事情,我愿意承认自己是 Access 的 NOOB。

4

1 回答 1

2

INSERT只要您插入的数字不与任何现有值冲突,Access 将允许您在行中为自动编号字段提供一个数字。而且由于“他们的原始 ID 号在两张表之间仍然是唯一的”,听起来这就是你的情况。

考虑这两个表:

tbl 成员

id fname
 1 Anne
 3 Cathy

tbl退休

id fname
 2 Bob
 4 David

INSERT语句(Access 查询设计器将其称为“追加查询”)会将tblRetired行添加到tblMembers.

INSERT INTO tblMembers ( id, fname )
SELECT r.id, r.fname
FROM tblRetired AS r;

这是tblMembers在执行之后INSERT...

id fname
 1 Anne
 2 Bob
 3 Cathy
 4 David
于 2013-10-05T05:31:13.567 回答