MS Access链接表与VBA

时间:2016-04-27 19:18:43

标签: ms-access access-vba ms-access-2010 ms-access-2007 linked-tables

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

基本上我只是使用VBA来复制外部数据向导所做的事情。

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

2 个答案:

答案 0 :(得分:11)

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

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

我包含了选项名称,希望能够更容易地跟踪哪个选项。但如果这看起来过于冗长,您可以省略选项名称并在一行中完成所有操作:

DoCmd.TransferDatabase acLink, "Microsoft Access", "C:\share\Access\Example Database.accdb", acTable , "Addresses", "Addresses_link"

答案 1 :(得分:3)

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

<uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <uses-permission android:name="android.permission.VIBRATE" />
 <uses-permission android:name="android.permission.WAKE_LOCK" />
 <uses-permission android:name="android.permission.GET_ACCOUNTS" />
 <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
 <permission android:name="YOUR_PACKAGE_NAME.permission.C2D_MESSAGE"
   android:protectionLevel="signature" />
 <uses-permission android:name="YOUR_PACKAGE_NAME.permission.C2D_MESSAGE" />

连接字符串看起来像这样(取自connectionstrings.com):

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