我需要实现检查以查看TableA是否存在,如果存在,则删除整个表。如果没有,我将创建表。我无法确定是否可以在VBA / MS Access上实现。
在SQL中我们可以使用:
attached
任何人都知道如何实施?谢谢!
答案 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