更新Access链接表以使用UNC路径

Lau*_*ani 8 ms-access access-vba

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

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

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

我寻找答案,但我不是那么专家,我只是明白我必须写一个"模块"?"宏"?

Gor*_*son 15

表链接可以是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
Run Code Online (Sandbox Code Playgroud)

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

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