【问题标题】:Update an Access linked table to use a UNC path更新 Access 链接表以使用 UNC 路径
【发布时间】:2013-03-18 09:21:35
【问题描述】:

我有一个 Access 2010 数据库 A.mdb,其中包含一个表列表,其中一个是链接表,从另一个 Access 数据库 B.mdb 链接到同一台服务器。这些数据库位于开发机器xxx.xxx.xxx.xxx 上,在我的计算机上映射为R://,然后它们在yyy.yyy.yyy.yyy 服务器上在线发布。

如果我想在本地处理数据库,我需要更改表的链接。但是,如果我通过文件系统(使用“链接表管理器”)更改它,链接将变为R://....,当我查看请求这些数据的 ASP 页面时,它会因为路径错误而损坏。另外,如果我在本地更改链接,它将无法在在线服务器上运行。

有没有办法“以编程方式”更改链接?也就是不使用链表管理器?

我搜索了一个答案,但我不是那个专家,我只是明白我必须写一个“模块”? “宏”?

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    表链接可以是 UNC 路径。例如,假设我有一个指向\\192.168.1.2\Public\ 上的数据库的链接表,该表映射到驱动器P:。如果我启动 VBA 编辑器 (Alt+F11),打开即时窗口 (Ctrl+G) 并输入...

    ?CurrentDB.TableDefs("remoteTable").Connect

    ...它会返回...

    ;DATABASE=P:\B.accdb

    ...因为我在创建链接时指向了驱动器P:

    现在,如果我创建并运行 VBA 函数...

    Function linkToUnc()
    Dim cdb As DAO.Database
    Set cdb = CurrentDb
    cdb.TableDefs("remoteTable").Connect = ";DATABASE=\\192.168.1.2\Public\B.accdb"
    cdb.TableDefs("remoteTable").RefreshLink
    Set cdb = Nothing
    End Function
    

    ...链接现在是 UNC 路径。

    顺便说一句,如果您浏览到“网络”、“机器名称”、“共享名称”,您可以在链接表管理器中创建 UNC 链接,但这会给您机器名称(在我的情况下为 \\PICO\Public\B.accdb )。

    【讨论】:

    • 非常感谢!!只有一个问题(这里是新手):如何创建 VBA 函数?宏?模块?宏链接到模块?呸!关于“浏览到网络,机器名称,...”实际上我做不到,因为由于某种原因我放弃理解我无法从 Newtwork 看到机器(我在一个庞大而庞大的组织中,所以访问受到限制而且很奇怪!)
    • 创建一个新模块,然后粘贴代码并编辑以适应。您可以通过单击第一行并点击[F5](或从菜单栏中选择“运行”)来运行该函数,也可以创建一个宏来运行它(通过RunCode 操作)。
    • Tools > References... 下确保您选择了“Microsoft Office 14.0 Access 数据库引擎对象库”。
    • 非常感谢,非常感谢 :) 最后一个问题:是否可以有像“C:\MyFolder\mydatabase.mdb”这样的链接?现在宏说它找不到 MDB 文件..只是想知道是否可能。谢谢。
    • 嗯,无效...它说“未找到数据库”...无论如何,以另一种方式解决了它,我很高兴这样。非常感谢您的支持!
    【解决方案2】:

    您可以右键单击链接表并选择链接表管理器。选择您要处理的链接表并勾选窗口下方的复选框始终提示新位置,然后单击“确定”按钮。

    系统将要求您提供新位置。浏览并选择文件,然后单击确定。

    【讨论】:

    • 您好 Tera,感谢您的回答,但这正是我不想做的。我编辑了我的问题,因为它可能不太清楚。
    【解决方案3】:

    我喜欢在一个共享文件夹上设置一个文件 DSN,该文件夹可以通过对我们整个网络的读取访问权限访问,然后使用链接表管理器访问 UNC 路径。为此,我使用了链接表管理器并在我的桌面上设置了一个文件 DSN。然后我将 DSN 文件复制并移动到共享的 UNC 目录中。然后,我进入 Access 并删除链接表并重新创建链接表。为此,在删除链接表后,我执行以下操作:

    1. 我点击 ODBC 数据库-->通过创建链接表链接到数据源-->确定。
    2. 单击“选择数据源”窗口中的“文件数据源”选项卡。在对话框的底部,您将看到“DSN 名称:”,然后是一个文本框和一个新建按钮。您将在该文本框中输入整个 UNC 路径和文件名(因此这指向您复制到 UNC 路径的文件)。例如,我输入 \ATD-SERVER1\AccessShare\ContactsApp.accdb.dsn。然后单击确定。

    假设您对要链接的服务器具有访问权限,将显示“链接表”对话框,然后您可以从那里选择您的链接表!如果他们尝试过,Microsoft 不能让这变得不那么直观。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-22
      • 2021-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多