Currentproject.connection работает без связанных таблиц? - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть связанная таблица, связанная с бэкэндом SQL Server.Я перешел к опции связанных таблиц в Access и удалил соединение, что означает, что больше нет связанных таблиц.Однако когда я захожу в консоль отладки и набираю ?currentproject.Connection, я получаю ту же строку подключения, что и при наличии связанных таблиц.Строки подключения выглядят так:

 Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\Users\Dave\Desktop\COMP\COMPMAIN.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database=C:\Users\Dave\AppData\Roaming\Microsoft\Access\System3.mdw;Jet OLEDB:Registry Path=Software\Microsoft\Office\16.0\Access\Access Connectivity Engine;Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=True;Jet OLEDB:Bypass UserInfo Validation=False;Jet OLEDB:Limited DB Caching=False;Jet OLEDB:Bypass ChoiceField Validation=False

Однако, хотя строка подключения точно такая же, когда я удаляю связанные таблицы, простой код, подобный этому

Function connection()
Dim rst As New ADODB.Recordset
Dim i As Integer
rst.Open "select * from Customers", CurrentProject.connection
Do While Not rst.EOF
i = i + 1
rst.MoveNext
Loop
Debug.Print i

End Function

, который использовался для возврата124, когда я связал таблицы

Дает мне следующую ошибку

Ядро базы данных Microsoft Access не может найти входную таблицу или запрос

Я запутался, потому чтоошибка не говорит, что соединение недопустимо, но говорит, что не может найти таблицу

1 Ответ

0 голосов
/ 17 декабря 2018

currentproject.Connection в .mdb указывает на сам этот .mdb.Не для связанных таблиц!Когда у вас есть связанные таблицы в вашем .mdb, ваш код установил соединение с этим .mdb и извлек данные из ссылки на связанные таблицы, размещенные там.Когда вы удалили связанную таблицу из .mdb, ваш код устанавливает соединение с .mdb, но не может найти таблицу (как вы ее удалили).

Строка соединения для связанной таблицы сохраняется в свойстве .Connect:

CurrentDB.TableDefs("Customers").Connect
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...