5

我已经为我的问题参考了其他页面,但我仍然无法让它工作。鉴于我在下面有三个示例,但我仍然无法弄清楚这一点,我觉得有点慢。

以编程方式更改链接表位置

链接表 ms 访问 2010 更改连接字符串

更新 Access 链接表以使用 UNC 路径

这是我正在使用的代码:

Dim tdf As TableDef
Dim db As Database
Set db = CurrentDb
Set tdf = db.TableDefs("DeviceListT")
tdf.Connect = "ODBC;DATABASE=" & CurrentProject.path _
                               & "\HarmonicProfileDatabase_be.accdb"
tdf.RefreshLink

问题是当我运行它时会弹出一个窗口。

选择数据源

我不确定我应该怎么做,也不希望它首先弹出,因为我会将 ms 访问文件提供给其他人,他们也不知道如何处理这个窗口.

4

1 回答 1

6

您正在使用 SQL Server 引用但链接 MS Access。对于 MS Access,您不需要 ODBC 链接,只需参考 DATABASE:

DBFile = CurrentProject.path & "\HarmonicProfileDatabase_be.accdb
''Check the file exists
strFile = Dir(DBFile)
If strFile <> "" Then
    With CurrentDb
        For Each tdf In .TableDefs
            ''Check that this is a linked table
            ''It can be useful to use table of tables instead
            If tdf.Connect Like "*HarmonicProfileDatabase_be.accdb*" Then
                tdf.Connect = ";DATABASE=" & DBFile 
                tdf.RefreshLink
            End If
        Next
    End With
    MsgBox "Link HarmonicProfileDatabase_be.accdb" 
Else
    MsgBox "Problem"
End If

您还可以使用:

 sConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
    & DBFile & ";Jet OLEDB:Database Password=pw;"
于 2013-03-28T13:13:01.603 回答