2015-05-10 2 views
0

У меня возникает то, что я считаю синтаксической проблемой, с третьей строкой кода ниже, где я пытаюсь создать таблицу, расположенную во внутренней базе данных, в каталоге, отличном от внешнего. Бегите ошибка времени 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 

ответ

3

Вы используете абсолютный путь в середине относительного пути. Я уверен, вы хотите ";DATABASE=" & "C:\Users\Andrea LENTI\DocumentsLinkedTablesBE2.accdb"

технику, чтобы избежать ошибок, как это при построении строковых переменных (EXPECIALLY при построении 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 
+1

Я согласен с вашим решением, хотя '' Ты и абсолютный путь в середине относительного пути '' не совсем уверен, что ты имел в виду там Ха-ха. – Newd

Смежные вопросы