MS 访问带有 VBA 的链接表



如何将一个 MS Access 数据库(*.mdb 或 *.accdb)中的表链接到 VBA 中的另一个 Access 数据库?

基本上,我只是使用VBA来复制外部数据向导的功能。

我用谷歌搜索了一下,看到很多关于如何更新或重新链接表的示例,以及许多链接到SQL数据库的示例,但很少有Access数据库之间的简单链接表。

可以使用 DoCmd.TransferDatabase 方法创建指向另一个 Access 数据库中的表的链接。

DoCmd.TransferDatabase TransferType:=acLink, _
        DatabaseType:="Microsoft Access", _
        DatabaseName:="C:shareAccessExample Database.accdb", _
        ObjectType:=acTable, _
        Source:="Addresses", _
        Destination:="Addresses_link"

我包括了选项名称,希望这样可以更轻松地跟踪哪个选项是哪个选项。 但是,如果这看起来太冗长,您可以省略选项名称并在一行上完成所有操作:

DoCmd.TransferDatabase acLink, "Microsoft Access", "C:shareAccessExample Database.accdb", acTable , "Addresses", "Addresses_link"

这实际上非常简单 - 您只需创建一个新的 tabledef 并将其 .connect 属性设置为链接到其他 Access 数据库的 ODBC 连接字符串。

Private Function LinkTable(LinkedTableName As String, TableToLink As String, connectString As String) As Boolean
    Dim tdf As New dao.TableDef
    On Error GoTo LinkTable_Error
    With CurrentDb
        .TableDefs.Refresh
        Set tdf = .CreateTableDef(LinkedTableName)
        tdf.Connect = connectString
        tdf.SourceTableName = TableToLink
        .TableDefs.Append tdf
        .TableDefs.Refresh

    End With
    Set tdf = Nothing
End Function

连接字符串如下所示(取自 connectionstrings.com):

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:myFoldermyAccessFile.accdb;Persist Security Info=False;

DataWriter,你不是把DAO和ADO混在一起吗?这就像水和油。连接字符串是OLEDB(即ADO),TableDef来自CurrentDb(即DAO)。

TableDef 的连接属性采用以下形式:

;D ATABASE=[db 的完整路径]\[db 名称]

相关内容

  • 没有找到相关文章

最新更新