在 Access 2010 中重新映射链接表

Re-map linked tables in Access 2010

我是 Access 的相对新手,从头开始编写代码,所以请多多关照。

我有一个 Access 2010 数据库,其中包含许多基于 .txt 文件的链接表。有时数据库会移动,源文件会移动,或者文件服务器会被重新命名。在这些事件中,我正在为数据库用户寻找一种简单的方法来重新映射和刷新链接表。理想情况下,它会被用户提示,即用户按下按钮以从导航表单或其他内容刷新。然后,系统提示新的文件夹位置。文件夹位置将包含所有必需的文件,因此只需选择一次。选择后,所有链接表都应重新映射并刷新,用户会收到错误或成功消息。

我看到很多这样的问题,但它们似乎出现在旧版本的 Access 中,或者它不要求用户提示或要求用户浏览新路径。

谢谢。

虽然我同意 Marc B 的观点,这似乎是一个构造非常奇怪的数据库,但您可以使用以下代码手动 link 将表再次移动到正确的位置。您需要将此工作到一个系统中,该系统可以循环遍历所有表格并一张一张地完成它们,或者调整此代码以自动执行此操作。但是您可能只想重新考虑您的系统。

Function SetTableLinkPath(strTableName As String, strTablePath As String)

    If Nz(strTableName, "") <> "" And Nz(strTablePath, "") <> "" Then
        Dim cdb As DAO.Database

        Set cdb = CurrentDb

        cdb.TableDefs(strTableName).Connect = ";DATABASE=" & strTablePath
        cdb.TableDefs(strTableName).RefreshLink

        MsgBox "Table link for " & strTableName & " has been successfully set to the path: " & strTablePath & "."
    Else
        MsgBox "You must enter a valid Table path and name!"
    End If

End Function