【问题标题】:Re-map linked tables in Access 2010在 Access 2010 中重新映射链接表
【发布时间】:2015-01-07 04:51:43
【问题描述】:

我是 Access 的新手,从头开始编写代码,所以要温柔。

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

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

谢谢。

【问题讨论】:

  • 这将是坐下来重新评估设计并得出结论认为它是垃圾并开始使用真实数据库的主要原因,而不依赖于显然可以随心所欲移动的外部文件。
  • 谢谢。这样做的原因有很多。我们有一个相当复杂的数据库和一个专门的开发团队。但是,他们不灵活,我们也不能保证稳定的互联网访问,因为我们是顾问,一直在偏远地区旅行。所以,这是一个本地的、精简的 Oracle DB 版本,只有我们在路上使用的必需品。它是可移动的,因为我想在文件服务器上开发它,然后每天使用更新的数据文件将它部署到我团队中的每个人。

标签: ms-access vba ms-access-2010


【解决方案1】:

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

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

【讨论】:

  • 这很棒。谢谢纽德。我将使用循环函数来处理所有这些问题。
  • 没问题,经过您在 cmets 中的解释,我明白为什么这对您的情况有用。
猜你喜欢
  • 2014-06-09
  • 1970-01-01
  • 2014-06-19
  • 2012-03-11
  • 2015-07-07
  • 1970-01-01
  • 1970-01-01
  • 2011-04-09
  • 1970-01-01
相关资源
最近更新 更多