8

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

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

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

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

4

3 回答 3

15

表链接可以是 UNC 路径。例如,假设我有一个链接表指向一个\\192.168.1.2\Public\映射到 drive的数据库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)。

于 2013-03-18T10:46:54.017 回答
0

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

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

于 2013-03-18T09:40:57.693 回答
0

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

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

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

于 2016-03-08T21:41:52.067 回答