重定向链表

时间:2015-05-10 17:11:47

标签: access-vba ms-access-2010 dao

我正在使用下面第三行代码的语法问题,我试图在不同于前端的目录中的后端数据库中找到一个表。运行时错误是3055 - 文件无效

Function linkToUnc()

Dim cdb As DAO.Database
Set cdb = CurrentDb

cdb.TableDefs("tblTest01").Connect = ";DATABASE=" & CurrentProject.Path & "\LinkedTablesBE2.accdb"
cdb.TableDefs("tblTest01").RefreshLink

cdb.TableDefs("tblTest02").Connect = ";DATABASE=" & CurrentProject.Path & "\LinkedTablesBE2.accdb"
cdb.TableDefs("tblTest02").RefreshLink

cdb.TableDefs("tblTest03").Connect = ";DATABASE=" & CurrentProject.Path & "C:\Users\Andrea LENTI\DocumentsLinkedTablesBE2.accdb"
cdb.TableDefs("tblTest03").RefreshLink

Set cdb = Nothing

End Function

1 个答案:

答案 0 :(得分:3)

您在相对路径的中间使用绝对路径。我打赌你想要";DATABASE=" & "C:\Users\Andrea LENTI\DocumentsLinkedTablesBE2.accdb"

在构造字符串变量时(特别是在构造SQL时)避免这样的错误的技术是创建一个字符串变量来保存构造,然后检查结果:

Dim strPath As String
'Incorrect assignment
strPath = ";DATABASE=" & CurrentProject.Path & "C:\Users\Andrea LENTI\DocumentsLinkedTablesBE2.accdb"
Debug.Print strPath 'Displays result of assignment in immediate window
cdb.TableDefs("tblTest03").Connect = strPath