vba - 通过 ODBC 从 MariaDB 自动重新链接表 (VBA)
问题描述
我需要通过 ODBC 将 VBA 中的表从 MariaDB SQL 重新链接到 Access。我在下面找到了一些代码,但它不起作用。当我运行它时,它什么也没有发生。
当我在 SQL 中添加一些它没有出现在 Access 中的列时,需要重新链接。当我手动重新链接表时,它会出现。
此代码适用于 Postgresql,而不适用于 MariaDB。也许它需要一些更正......
Sub refreshLinked_MariaDB()
Dim cdb As DAO.Database, tbd As DAO.TableDef
Set cdb = CurrentDb
For Each tbd In cdb.TableDefs
If tbd.Connect Like "ODBC;Driver={MariaDB ODBC 3.1 Driver*" Then
Debug.Print "Refreshing [" & tbd.Name & "] ..."
tbd.RefreshLink
End If
Next
Debug.Print "Done."
Set tbd = Nothing
Set cdb = Nothing
End Sub
更新:if
功能编辑重新链接后工作正常,但某些表变为“只读”,这意味着我无法添加或编辑任何记录。删除这些表和链接手册后 - 工作正常。有任何想法吗?
解决方案
很可能您的连接字符串不同,过滤器无法将其识别为 Maria DB。或者,您可以尝试更改
If tbd.Connect Like "ODBC;Driver={MariaDB ODBC 3.1 Driver*" Then
到
If left(tbd.Connect,5) = "ODBC;" then
另请注意, VBA 中的like与 sql 中的 **like*" 不同
推荐阅读
- ios - M1(专为 iPad 设计)上的 Apple iOS 应用程序不会打开自定义 UTI
- javascript - 训练营入学考试问题 - Javascript 中的 CheckerLogger 闭包问题
- vega-lite - 如何在 vega-lite 中的视觉对象下方添加文本行
- amazon-web-services - 使用 AWS EC2 使我符合 PCI DSS
- postgresql - 对 jsonB 列类型使用 pgLogical 行过滤器
- css - 如何在加载页面时自动删除 CSS 属性
- python - 如何将全局安装的软件包安装到 virtualenv?
- java - 如何使用openapitools代码生成器maven插件生成vertx代码
- ios - 在 TabView 中使用 VNDocumentCameraViewController 作为 UIViewControllerRepresentable
- javascript - 如何处理反应表中的分页?