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