首页 > 解决方案 > 通过 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功能编辑重新链接后工作正常,但某些表变为“只读”,这意味着我无法添加或编辑任何记录。删除这些表和链接手册后 - 工作正常。有任何想法吗?

标签: vbams-accessmariadb

解决方案


很可能您的连接字符串不同,过滤器无法将其识别为 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*" 不同


推荐阅读