组合Access表

时间:2013-10-05 04:11:50

标签: ms-access merge ms-access-2010 autonumber

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

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

现在的问题是有些人想要回归。我无法将它们复制回来,因为它们将获得一个新的ID号,所有其他报告数据(我之前未提及)都与其原始ID号相关联,这两个表之间仍然是唯一的。

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

这个答案很接近,Adding records with old ids that were generated using auto number in access,但重点是1行。我有很多。与此答案相同:Keep value of autonumber column when importing into Microsoft Access database

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

如果这很简单,我只是错过了明显的,我愿意承认自己是一个带有Access的NOOB。

1 个答案:

答案 0 :(得分:2)

只要您插入的数字与任何现有值都不冲突,Access就会为您INSERT添加一个自动编号字段的数字行。由于“他们的原始ID号在两个表之间仍然是唯一的”,听起来就像是你的情况。

考虑这两个表:

<强> tblMembers

id fname
 1 Anne
 3 Cathy

<强> tblRetired

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