在 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
我是 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