excel - 从 Excel VBA - 检查 Access 表是否存在/如果不存在,则创建/复制

标签 excel vba ms-access

我正在通过 Excel 使用 VBA 中的 Access 数据库。我想检查数据库中是否存在表,如果不存在,我想使用与该数据库中标记为“空白”的表相同的字段/定义来创建表。如果需要,我可以简单地复制/重命名 Blank。

我找到了一种使用以下方法检查表是否存在的方法(但不确定这是否是最好的方法)。

Set objCatalog = CreateObject("ADOX.catalog")
objCatalog.ActiveConnection = dbConn
For i = 0 To objCatalog.Tables.Count - 1
    If objCatalog.Tables.Item(i).Name = tbName Then tbExists = True
Next

这可行,但当目标表不存在(tbExists = False)时,我正在努力寻找一种使用 Blank 的字段/定义复制或创建新表的方法。

最佳答案

这可能是通过检查表定义是否返回任何内容来检查表是否存在的另一种方法。

TableDef 对象表示基表或链接表的存储定义(仅限 Microsoft Access 工作区)。

Set exampleDB = workSpace.OpenDatabase(DatabaseName)

Set tableDefinition = exampleDB.TableDefs(TableName)
tableExists = Err.Number = 0

了解更多信息

https://learn.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/tabledef-object-dao

关于excel - 从 Excel VBA - 检查 Access 表是否存在/如果不存在,则创建/复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54174935/

相关文章:

sql - 在 JDBC 中连接三个表

ms-access - 多对多关系中的数据输入表单/子表单

vba - 为什么我收到 "Subscript is out of range"错误?

excel - 运行时错误 76 找不到路径

Excel VBA 脚本动态添加系列到图表

excel - 重命名打开的工作簿而不先关闭它?

c# - 如何在输入值时停止Excel-DNA函数计算

arrays - 如何访问字典数组?

vba - Selection.Paste 不保留完整的源格式

asp.net - 从 WCF 服务在服务器端 Access 数据库中运行 VBA 函数