1

首先,我应该解释我的场景以声明我将做什么:

我想合并一个表中的记录,然后将它们保存在另一个表中。为什么?我有一个非常复杂的查询,需要很长时间才能运行并返回结果。我决定将此查询分为两个查询并将第一个查询的结果保存到一个表中,然后第二个查询使用新生成的表源表经常更新并且生成的表也必须生成如果我使用此代码我的 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 语句来完成这项工作?

4

1 回答 1

1

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

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
于 2012-09-04T10:05:48.683 回答