23

我正在处理一个现有的 MS Access 2010 项目,该项目具有指向 Sql Server 数据库的链接表链接。

当我将鼠标悬停在链接表上时,我可以看到一个连接字符串'ODBC;DRIVER=SQL Server;SERVER=10.0.0.1;UID=testdb;APP=Microsoft Office 2003;WSID=abc;TABLE=dbo.user'

这看起来像一个无 dsn 的链接表。

问题

  1. 连接字符串位于何处?如何更改它(示例数据库名称)?

  2. 如何创建类似的无 dsn 链接表?每当我创建链接表时,Access 2010 总是强迫我选择\创建一个 dsn(文件或机器)。

4

2 回答 2

35

打印所有连接字符串:

Dim tdf As TableDef
Dim db As Database

    Set db = CurrentDb

    For Each tdf In CurrentDb.TableDefs
        If tdf.Connect <> vbNullString Then
           Debug.Print tdf.Name; " -- "; tdf.SourceTableName; " -- "; tdf.Connect
        End If
    Next

要创建链接表:

With CurrentDb
    ''If the table does not have a unique index, you will need to create one
    ''if you wish to update.
    Set tdf = .CreateTableDef("LocalName")
    tdf.Connect = "ODBC;DRIVER=SQL Server;SERVER=10.0.0.1;" _
      & "UID=testdb;APP=Microsoft Office 2003;WSID=abc;TABLE=dbo.user"
    tdf.SourceTableName = "TABLE_NAME"
    .TableDefs.Append tdf
    .TableDefs.Refresh
End With

要更改链接:

    Set db = CurrentDB
    Set tdf = db.TableDefs("MyTable")
    tdf.Connect = "ODBC;DRIVER=SQL Server;SERVER=10.0.0.1;" _
      & "UID=testdb;APP=Microsoft Office 2003;WSID=abc;TABLE=dbo.user"
    tdf.RefreshLink
于 2012-09-26T18:36:30.090 回答
25

您可以使用以下指南(原始来源)更改连接字符串。

首先,获取现有的连接字符串。

  1. 打开 MS 访问
  2. 右键单击曾经可以工作的表格,或者您确定可以工作,然后选择“设计视图”。
  3. 在警告屏幕上选择是继续
  4. 如果右侧没有表的属性窗口,请在功能区 (Access 2010) 上单击属性表
  5. 这显示了一个描述属性——复制它在该属性中的所有内容并将其粘贴到记事本或其他地方以备后用。

其次更新连接字符串。

  1. 单击功能区中的外部数据,然后选择“链接表管理器”
    1. 单击始终提示输入新位置复选框 - 这是询问用户是否浪费了更改连接信息的复杂方式
    2. 单击全选按钮或使用复选标记选择要更新的表
    3. 点击确定
  2. 出现一个对话框。点击新建
    1. 选择 SQL Server 作为您的驱动程序
    2. 单击高级按钮
    3. 将所有内容粘贴到记事本中
      • EXCEPT REMOVE the TABLE=... 填充到下一个分号。
      • 更改服务器名称
      • 点击确定
    4. 然后它会提示您将所有这些保存到文件中以备后用。在连接文件夹中的“我的文档”中选择一个位置 - 或者更好的是在网络位置供其他人稍后使用
    5. 单击确定几次
    6. 现在 Access 将用新的 DSN(连接详细信息)字符串替换您的所有表。
于 2014-10-21T09:21:51.937 回答