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

Posted

技术标签:

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

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

现在,我需要重命名那个 sql server 数据库,但我不确定如何更新 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 的意思正是他发布的内容,那么您是正确的。我想我误解了这个问题。

以上是关于需要在 MS Access 中使用链接表更改 sql server 数据库名称的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 2016 在某个链接的 SQL Server 表上崩溃

MS-Access 2013;根据多记录形式的记录数据更改组合框选项

MS Access - 更改表单中的值后立即写入表

如何通过 C# 以编程方式刷新 MS Access 链接表(使用 Excel 文件)?

在 ms-access 中获取表的外键约束列表?

如何在 ms-access VBA 中检索表的 odbc 数据库名称