VBA脚本检查MS ACCESS上是不是存在表,如果存在则删除
Posted
技术标签:
【中文标题】VBA脚本检查MS ACCESS上是不是存在表,如果存在则删除【英文标题】:VBA Script to check if table exist on MS ACCESS, Delete if it doesVBA脚本检查MS ACCESS上是否存在表,如果存在则删除 【发布时间】:2017-02-06 01:27:18 【问题描述】:我需要检查 TableA 是否存在,如果存在,则删除整个表。如果没有,我将创建表。我真的不知道这是否可以在 VBA / MS Access 上实现。
在 SQL 中我们可以使用:
DROP TABLE IF EXISTS dbo.TableA
有人知道如何实现吗?谢谢!
【问题讨论】:
【参考方案1】:有一种比上面的代码更简单的方法。
On Error Resume Next
currentdb.execute "DROP TABLE TABLENAME;"
On Error Goto 0
它的作用是尝试删除表并在由于表不存在而产生错误时跳过该行。只有 3 行,运行速度更快。
【讨论】:
【参考方案2】:考虑使用 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
【讨论】:
以上是关于VBA脚本检查MS ACCESS上是不是存在表,如果存在则删除的主要内容,如果未能解决你的问题,请参考以下文章
如何通过VBscript检查MS Access中是不是存在表
从 Excel VBA-检查访问表是不是存在/如果不存在,则创建/复制
MS ACCESS, VBA 将外部 MS Access 表导入 SQL server 表