用于检查MS ACCESS上是否存在表的VBA脚本,如果存在则删除

时间:2017-02-06 01:27:19

标签: sql vba access

我需要实现检查以查看TableA是否存在,如果存在,则删除整个表。如果没有,我将创建表。我无法确定是否可以在VBA / MS Access上实现。

在SQL中我们可以使用:

attached

任何人都知道如何实施?谢谢!

2 个答案:

答案 0 :(得分:3)

有一种比上面的代码更简单的方法。

On Error Resume Next
  currentdb.execute "DROP TABLE TABLENAME;"
On Error Goto 0

这样做会尝试删除表并在生成错误时跳过该行,因为该表不存在。只有3行并且运行得更快。

答案 1 :(得分:0)

考虑使用TableDefs集合来迭代项目并使用代码中传递的相同DDL SQL语句有条件地删除或创建。

Dim db As Database 
Dim tbldef As TableDef

Set db = CurrentDb

For each tbldef in db.TableDefs 
   If tbldef.Name = "TableName" Then 
      db.Execute "DROP TABLE " & tbldef.Name, dbFailOnError
   End if 
Next tbldef

db.Execute "CREATE TABLE TableName (...rest of SQL...);", dbFailOnError    

' UNINITIALIZE OBJECTS 
Set tbldef = Nothing 
Set db = Nothing