【问题标题】:Re-directing linked tables重定向链接表
【发布时间】:2015-05-10 17:11:46
【问题描述】:

我在下面的第三行代码中遇到了我认为是语法问题,我试图在与前端不同的目录中获取位于后端数据库中的表。运行时错误为 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

【问题讨论】:

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


    【解决方案1】:

    您在相对路径的中间使用绝对路径。我打赌你想要";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
    

    【讨论】:

    • 我同意你的解决方案,虽然 "You are and absolute path in the middle of a relative path" 不太清楚你的意思哈哈。
    猜你喜欢
    • 2013-04-03
    • 1970-01-01
    • 2011-08-24
    • 2017-02-01
    • 1970-01-01
    • 2019-02-13
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多