我有一个表,我每次都使用主数据库中的更新数据创建。 所以有一个包含所有数据的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
答案 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