从Excel数据更新Access表中的数据和关系

时间:2014-04-24 19:56:17

标签: sql vba ms-access-2007 access-vba

所以我从Excel导入数据并使用DoCmd.TransferSpreadsheet创建包含我从中获取的数据的新表。我想要做的是让这些新表替换我的数据库中的旧表,当我导入它们同时保持关系完好,这样我就可以用一个按钮完全自动化该过程。我不认为UPDATE查询方法会因为不断添加和删除数据而起作用(尽管我可能错了,因为我对SQL相对较新)。我希望有一种方法可以从表中删除所有数据,然后用VBA从新表中重新填充它。这可能吗?

1 个答案:

答案 0 :(得分:1)

假设您的表名为' T1',' T2',' T3'并且按照关系的顺序,尝试以下作为一种可能的解决方案。只需在导入代码后添加此代码(更改表名称):

Dim strSQL  As String
strSQL = "delete * from T3;"     ' Delete all existing rows
CurrentDb.Execute strSQL
strSQL = "delete * from T2;"
CurrentDb.Execute strSQL
strSQL = "delete * from T1;"
CurrentDb.Execute strSQL

' Insert new rows from imported tables.
strSQL = "INSERT INTO T1 SELECT Import1.* FROM Import1;
CurrentDb.Execute strSQL
strSQL = "INSERT INTO T2 SELECT Import2.* FROM Import2;
CurrentDb.Execute strSQL
strSQL = "INSERT INTO T3 SELECT Import3.* FROM Import3;
CurrentDb.Execute strSQL