更新表中的记录

时间:2012-09-04 10:03:11

标签: sql vba ms-access access-vba

首先,我应该解释一下我的场景,宣布我会做什么:

我想将记录合并到一个表中,然后将它们保存在另一个表中。 为什么? 我有一个非常复杂的查询,需要很长时间才能运行并返回结果。我决定将此查询分为两个查询,并将第一个查询的resulat保存到表中,然后第二个查询使用新生成的表 源表经常更新,生成的表也必须生成 如果我在我的VBA上使用此代码,则会发生此错误: 错误3010表已存在

Set db = CurrentDb
  ssql = "SELECT DISTINCT tb_KonzeptDaten.DFCC,  " _
  & "tb_KonzeptDaten.OBD_Code AS Konzept_Obd,tb_KonzeptDaten.DFC " _
  & "INTO Test_Table FROM tb_KonzeptDaten"
  db.Execute ssql, dbFailOnError
  RecordsUpdated = db.RecordsAffected
你知道吗?我们还有另一个SQL语句来完成这项工作吗?

1 个答案:

答案 0 :(得分:1)

如果表中已存在该表,则可以删除该表,然后运行查询。

tblName = "TableX"
tbl = DLookup("Name", "MSysobjects", "Type=1 and Name='" & tblName & "'")

If Not IsNull(tbl) Then
    DoCmd.DeleteObject acTable, tbl
End If

或者

Set db = CurrentDb
ssql = "DELETE FROM Test_Table"
db.Execute ssql, dbFailOnError

ssql = "INSERT INTO Test_Table SELECT DISTINCT tb_KonzeptDaten.DFCC,  " _
  & "tb_KonzeptDaten.OBD_Code AS Konzept_Obd,tb_KonzeptDaten.DFC " _
  & "FROM tb_KonzeptDaten"
db.Execute ssql, dbFailOnError