用于删除和创建在子表中添加相同ID记录的关系的VBA代码是否可能?

时间:2012-03-19 17:21:39

标签: ms-access vba

我有一个表,我每次都使用主数据库中的更新数据创建。 所以有一个包含所有数据的MAIN数据库,从我查询并得到一个数据集,我保存为一个表,让我们在一个小型访问数据库中调用它(TABLE1)。 MAIN数据库由我和其他一些同事手动更新,然后我删除了访问数据库中的旧表,并使用更新的数据创建一个新表(TABLE1)。 更新的数据代表新记录,以及现有记录的一些更新字段。

我的访问数据库上有另一个表(TABLE2),其中包含一些与(TABLE1)中的记录相关的额外数据。 每次我这样做,我必须通过VBA分解表ID字段中的关系链接。 然后我必须在TABLE2中添加空行以匹配TABLE1并重新创建关系。 使用VBA代码可以做得更好吗?

示例:

TABLE1
-------
name
-------
'cat'
'dog'
'mouse'

TABLE2
------
cost
------
23
13
25

基于查询的oon ID字段(自动编号)

-------|-----
name   |cost
-------|------
'cat'  |23
'dog'  |13
'mouse'|25

1 个答案:

答案 0 :(得分:1)

您不需要删除TABLE1,以便可以使用一组新数据重新创建它。相反,丢弃现有的行......

DELETE FROM TABLE1;

...然后将新行添加到其中......

INSERT INTO TABLE1 (
    fld1,
    fld2,
    etc
    )
SELECT
    fld1,
    fld2,
    etc
FROM MAIN
WHERE <the condition which identifies the new records>;

但我不确定这对现有关系有何影响。如果您没有强制执行关系完整性,那就足够了。

如果您仍然需要删除该关系,可以将其从数据库的Relations集合中删除。

Dim db As DAO.Database
Set db = CurrentDb
db.Relations.Delete "YourRelationName"
Set db = Nothing

稍后,要重新创建关系,您可以使用Database.CreateRelation Method。这可能比删除关系更复杂。请参阅此详细示例:VBA code for creating MS Access Relations