需要在MS Access中使用链接表更改sql server数据库名称

时间:2011-01-26 17:28:54

标签: sql-server database ms-access

我使用SSMA将数据从访问数据库迁移到sql server,同时仍使用访问数据库中的用户界面。

现在,我需要重命名该sql server数据库,但我不确定如何更新Access文件以使用重命名的数据库。

2 个答案:

答案 0 :(得分:4)

您可以使用Linked Table Manager

  

查看或刷新链接

     

使用此过程查看或刷新结构或链接时的链接   链接表的位置已更改。链接表管理器列表   所有当前链接表的路径。

     
      
  • 打开包含表格链接的数据库。
  •   
  • 在“工具”菜单上,   指向Database Utilities,然后单击Linked Table Manager。
  •   
  • 选中要刷新其链接的表格的复选框。
  •   
  • 单击“确定”以刷新链接。
  •   
     

Microsoft Access确认成功   刷新,或者,如果未找到表,则显示“选择新”   您可以在其中指定对话框的位置   表的新位置。如果多个选定的表已移至新表   您指定的位置,链接表管理器搜索它   所有选定表的位置,并在一个步骤中更新所有链接。

     

更改一组链接表的路径

     
      
  • 打开包含表格链接的数据库。
  •   
  • 在“工具”菜单上,   指向Database Utilities,然后单击Linked Table Manager。
  •   
  • 选中“始终提示新位置”复选框。
  •   
  • 选中支票   要更改其链接的表的框,然后单击“确定”。
  •   
  • 在“选择新位置”对话框中,指定新的   单击位置,单击“打开”,然后单击“确定”。
  •   

答案 1 :(得分:0)

您可以在VBA中执行此操作。此代码查找以“dbo_”开头的链接表,并删除该部分名称。您需要对其进行修改以满足您的需求。我建议您从autoexec宏或从数据库启动的未绑定表单中调用此方法。

如果您要链接到多个SQL Server数据库,那么此解决方案现在可以正常工作。

Public Sub subChangeLinkedTableNames()

    Dim dbCurr As DAO.Database
    Dim tdfCurr As DAO.TableDef

    Set dbCurr = CurrentDb()

    For Each tdfCurr In dbCurr.TableDefs
        If Len(tdfCurr.Connect) > 0 Then
            If Left(tdfCurr.Name, 4) = "dbo_" Then
                tdfCurr.Name = Replace(tdfCurr.Name, "dbo_", "")
            End If
        End If
    Next


    Set tdfCurr = Nothing
    Set dbCurr = Nothing

End Sub