【问题标题】:Need to change sql server database name in MS Access with Linked Tables需要在 MS Access 中使用链接表更改 sql server 数据库名称
【发布时间】:2011-01-26 17:28:53
【问题描述】:

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

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

【问题讨论】:

  • 凹凸。 :) 开个玩笑,但最好能弄清楚这一点。

标签: sql-server database ms-access


【解决方案1】:

您可以使用Linked Table Manager

查看或刷新链接

当结构或 链接表的位置已更改。链接表管理器列出 所有当前链接表的路径。

  • 打开包含表链接的数据库。
  • 在工具菜单上, 指向数据库实用程序,然后单击链接表管理器。
  • 选中要刷新其链接的表的复选框。
  • 单击“确定”刷新链接。

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

更改一组链接表的路径

  • 打开包含表链接的数据库。
  • 在工具菜单上, 指向数据库实用程序,然后单击链接表管理器。
  • 选中始终提示新位置复选框。
  • 选中检查 要更改其链接的表的框,然后单击“确定”。
  • 在“选择新位置”对话框中,指定新的 位置,单击“打开”,然后单击“确定”。

【讨论】:

  • 我不会,因为 ODBC 链接表不能很好地为 SQL Server 更新。我会删除所有表格链接并从头开始重新创建它们。
【解决方案2】:

您可以在 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

【讨论】:

  • 我不明白这是如何解决这个问题的,我理解这个问题是关于数据库的名称,而不是表的名称。这需要不同的连接字符串,而不仅仅是更改 TableDef 的名称。
  • 大卫,如果 OP 的意思正是他发布的内容,那么您是正确的。我想我误解了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-30
  • 2010-09-25
  • 1970-01-01
  • 1970-01-01
  • 2018-07-26
  • 2018-06-18
  • 1970-01-01
相关资源
最近更新 更多