Хаос при копировании таблицы между базами данных с использованием базы данных переноса - PullRequest
0 голосов
/ 18 февраля 2019

Мне нужно разрешить пользователям создавать новые таблицы, которые будут содержать заданные строки, которые вводятся для обработки отчетов.Пользователь вводит имя для идентификации экземпляра отчета и имя таблицы, которая должна содержать строки для отчета.Отчет является частью существующего набора баз данных Microsoft Access.Таблица маршрутов является входом в процесс отчета до описанного здесь усовершенствования.

Моя первоначальная попытка не удалась.

Метод DoCmd запускается во внешней базе данных с понятием созданияновая структура таблицы в серверной части, которая затем будет заполнена соответствующим образом.Таблица маршрутов находится во внутренней базе данных и связана во внешней.Результат команды был неожиданным.

DoCmd.TransferDatabase acExport, _
“Microsoft Access”, “Path to backend database”, _
acTable, “Itineraries”, “TestTable”, True

Я ожидал, что в бэкэнд-базе данных будет таблица с именем TestBills, на которую можно будет ссылаться из внешней базы данных.Этого не случилось.Вся таблица маршрутов была скопирована во внутреннюю базу данных, под именем TestBills.Я говорю «что-то вроде», потому что таблица TestBills была ссылкой в ​​серверной базе данных на саму базу данных!Мне не удалось связать эту таблицу с базой данных внешнего интерфейса.

1 Ответ

0 голосов
/ 18 февраля 2019

Я решил обойти это, используя следующий фрагмент кода:

DoCmd.TransferDatabase acImport, "Microsoft Access", dbBN, _
acTable, "Itineraries", "ExtraBills", True
DoCmd.TransferDatabase acExport, "Microsoft Access", dbTest, _
acTable, "ExtraBills", "TestBills", True
DoCmd.TransferDatabase acLink, "Microsoft Access", dbTest, _ 
acTable, "TestBills", "TestBills", True
CurrentDb.TableDefs.Delete ("ExtraBills")

«dbTest» и «dbBN» - это константы с путями к двум внутренним базам данных.Этот фрагмент копирует структуру таблицы маршрутов из внутренней базы данных в базу данных внешнего интерфейса, переименовывая ее в «ExtraBills».«Extrabills» затем экспортируется в тестовую базу данных и называется TestBills.Затем внешний интерфейс связывается с таблицей TestBills в бэкэнде, и «ExtraBills» удаляется из базы данных FrontEnd.

Этот процесс достигает желаемого результата.Я предполагаю, что мораль такова: «Не экспортируйте ссылки на таблицы, используя метод TransferDatabase DoCmd.

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