更新服务器名称连接访问2013

时间:2018-09-18 16:18:56

标签: ms-access ms-access-2013

在寻找一些应该很容易的东西时遇到问题。

无论如何,目前我们的访问数据库已将表链接到其他服务器。我需要升级到新的服务器名称和数据库名称。我尝试过,对我来说很棒。

最终用户进行了测试,并说我的ODBC连接设置失败。不确定为什么要这样做。

任何帮助都会很棒。

2 个答案:

答案 0 :(得分:2)

默认情况下,访问使用无DSN的连接。

因此,您需要启动链接表管理器。如果遵循创建DSN的默认提示(即FILE dsn),则在Access链接表时,它们将转换为无DSN链接。

这意味着: 您无需在启动时运行一些VBA代码。

您不需要创建较少DSN的连接,因为Access默认情况下会创建并使用DSN链接。

您不必在每台计算机上都设置DSN。

因此只需启动链接表管理器。使链接在您的计算机上正常工作。确定链接正常工作后,通常下一步就是创建已编译的accDE。

在完成上述操作之后,并且可选地编译为accDE(如果您一直使用该功能),那么您只需将新的前端分发到每个工作站,一切就可以了。

您“可以”选择设置一些VBA代码以重新链接,但这不是必需的。

编辑: 此处只需要单击鼠标,然后输入FILE dsn的名称。 请记住,链接后不需要访问权限。 记住访问将为您创建无DSN的连接。 请记住,您不需要在目标计算机上复制或设置DSN。

步骤是:

点击ODBC按钮-功能区-外部数据标签

enter image description here

我们要链接到sql server,而不是导入,所以:

enter image description here

现在,由于经常打开Windows 10,以下文件夹已被锁定-您没有管理员权限,因此单击它,可以单击上新文件夹,除非您以“管理员”身份启动访问权限,否则不要使用该默认文件夹”,而您可能没有。所以打新:

enter image description here

现在选择您的SQL驱动程序。我使用旧版“ sql驱动程序”。如果您使用更新的数据类型,那么您想选择“ native 11”或更新的驱动程序。但是,默认情况下不会在每个工作站上都​​安装此驱动程序-但SQL是。

enter image description here

因此浏览至我的文档,输入名称并进行保存 例如:

enter image description here

您现在返回此对话框:

enter image description here

我们现在准备开始输入连接信息:

击中完成

enter image description here

现在要描述-我们不在乎!

但是,对于服务器名称,您必须输入

SERVERNAME \ SQL INSTANCE的名称。

如果在本地运行SQL Express,则可以使用localhost作为服务器名称,而SQL Server的DEFAULT为SQLEXPRESS。您确实确实需要sql实例的名称,还需要服务器名称(在我的示例中,localhost是名称,但可以是server01 \ SQLEXPRESS或其他名称)

enter image description here

输入登录名+密码。 如果您使用的是“ Windows身份验证”,则无需登录。

enter image description here

确保选择/设置正确的数据库。如果该框是灰色的,则您仅有权选择将无法更改的默认选项。

enter image description here

现在点击下一步

enter image description here

现在选择表格。不要忘记单击/选中“保存密码”选项

enter image description here

这就是屏幕截图。 结果是DSN-LESS连接。

========= 编辑2: 对于现有表,并将它们指向新服务器?

您只需启动链接表管理器: enter image description here

现在请务必选择提示输入新位置。 (此选项会强制+允许您选择NEW或 将现有表链接到其他服务器。

enter image description here

此时,您现在就按照 与上述完全相同的步骤来创建新 链接,但这将使您链接+点 到其他服务器以进行现有链接 表。

答案 1 :(得分:1)

如果最终用户的PC没有像您一样在其PC上设置ODBC数据源名称(DSN),则连接可能会失败。

为克服此要求,我通常在标准模块中使用类似这样的代码

Const MY_CONNECTION As String = "ODBC;DRIVER={SQL Server};SERVER=TheServerName;DATABASE=TheDatabaseName;Trusted_Connection=Yes"

Public Sub ReConnect()

    Dim tdf As TableDef ' for linked tables
    Dim qdf As QueryDef ' for pass through queries

    With CurrentDb
        For Each tdf In .TableDefs
            With tdf
                If (.Attributes And dbAttachedODBC) = dbAttachedODBC Then
                    .Connect = MY_CONNECTION
                    .RefreshLink
                End If
            End With
        Next
        For Each qdf In .QueryDefs
            With qdf
                If .Type = dbQSQLPassThrough Or .Type = dbQSPTBulk Then
                    .Connect = MY_CONNECTION
                End If
                .Close
            End With
        Next
    End With

End Sub

我在分发Access前端之前手动运行此过程。