通过ODBC从MariaDB访问中自动重新链接表(VBA)
我需要通过ODBC将VBA中的表从MariaDB SQL重新链接到Access。我在下面找到了一些代码,但它不起作用。当我运行它时,它什么也没发生 在SQL中添加Access中未显示的列时,需要重新链接。 当我进行手动表格重新链接时,它会出现 这段代码是为Postgresql编写的,不是为MariaDB编写的。也许它需要一些修正通过ODBC从MariaDB访问中自动重新链接表(VBA),vba,ms-access,mariadb,Vba,Ms Access,Mariadb,我需要通过ODBC将VBA中的表从MariaDB SQL重新链接到Access。我在下面找到了一些代码,但它不起作用。当我运行它时,它什么也没发生 在SQL中添加Access中未显示的列时,需要重新链接。 当我进行手动表格重新链接时,它会出现 这段代码是为Postgresql编写的,不是为MariaDB编写的。也许它需要一些修正 Sub refreshLinked_MariaDB() Dim cdb As DAO.Database, tbd As DAO.TableDef Set
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
更新:在
之后,如果
函数编辑重新链接工作正常,但某些表变为“只读”,这意味着我无法添加或编辑任何记录。删除这些表和链接后,手动-工作正常。有什么想法吗?很可能您的连接字符串不同,并且筛选器无法将其识别为Maria DB。或者,您可以尝试更改
If tbd.Connect Like "ODBC;Driver={MariaDB ODBC 3.1 Driver*" Then
到
另请注意,VBA中的like与sql中的**like*”不同,很可能您的连接字符串不同,并且筛选器无法将其识别为Maria DB。或者,您可以尝试更改
If tbd.Connect Like "ODBC;Driver={MariaDB ODBC 3.1 Driver*" Then
到
还要注意的是,VBA中的类与sql中的类不同。是否执行这些操作:
Debug.Print“刷新..
?Ctrl+G显示输出。2.压缩和修复后新列是否可见?然后您可能需要在末尾执行cdb.TableDefs.Refresh
。按Ctrl+G并运行代码时,仅显示“完成”。“压缩和修复后,新列仍然不可见。然后为每个列添加Debug.Print tbd.Connect
后的。如果
条件似乎不正确,则显示;DSN=Access->MariaDB
。“Access->MariaDB”是我的ODBC连接名称。如果条件必须如下所示:如果tbd.Connect类似于“ODBC;DSN=Access->MariaDB”,那么
?我试过了,但什么也没做。我把If
函数改为If left(待定,Connect,5)=“ODBC”;然后就可以了。谢谢1.是否执行这些操作:Debug.Print“刷新..
?Ctrl+G显示输出。2.压缩和修复后新列是否可见?然后您可能需要在末尾执行cdb.TableDefs.Refresh
。按Ctrl+G并运行代码时,仅显示“完成”。“压缩和修复后,新列仍然不可见。然后为每个列添加Debug.Print tbd.Connect
后的。如果
条件似乎不正确,则显示;DSN=Access->MariaDB
。“Access->MariaDB”是我的ODBC连接名称。如果
条件必须如下所示:如果tbd.Connect类似于“ODBC;DSN=Access->MariaDB”,那么
?我试过了,但什么也没做。我把If
函数改为If left(待定,Connect,5)=“ODBC”;然后就可以了。谢谢