excel - 从 Excel VBA-检查访问表是否存在/如果不存在,则创建/复制
问题描述
我正在通过 Excel 使用 VBA 中的 Access 数据库。我想检查数据库中的表是否存在,如果不存在,我想使用与该数据库中标记为“空白”的表相同的字段/定义来创建表。如有必要,我可以简单地复制/重命名空白。
我找到了一种使用以下方法检查表是否存在的方法(但不确定它是否是最好的方法)。
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)时,我正在努力寻找一种方法来使用空白的字段/定义来复制或创建新表。
解决方案
这可能是通过检查表定义是否返回任何内容来检查表是否存在的另一种方法。
TableDef 对象表示基表或链接表的存储定义(仅限 Microsoft Access 工作区)。
Set exampleDB = workSpace.OpenDatabase(DatabaseName)
Set tableDefinition = exampleDB.TableDefs(TableName)
tableExists = Err.Number = 0
了解更多信息
推荐阅读
- laravel - 在 AWS Elastic Beanstalk 上运行 Laravel 的迁移命令
- polymorphism - 在多态复合类型中使用 GADT 变体,就像我使用普通代数变体类型一样?
- r - submit_form 与 rvest 的问题
- java - 如果在 CloudSim Plus 中过载,如何添加多个 VM?
- r - 在 mutate() 之外以逐行方式使用 purrr::pmap()
- javascript - 为使用 React 的网站制作 Chrome 扩展。重新渲染后如何保持更改?
- c# - .NET Core API 文档
- azure - Azure CosmosDb 仅创建分区
- scala - 将 Kibana 中字段的映射从 String 更改为 Double
- javascript - gatsby-source-stripe 开发错误