我需要将VBA中的表从MariaDB SQL通过ODBC重新链接到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中不同于在sql中的** like *“