Я выполняю запрос на добавление из VBA в файле интерфейса доступа. запрос выполняется для таблицы, которая находится в другой базе данных, которая не связана с внешним интерфейсом. (это архив данных с подключенной серверной части) вот запрос:
DoCmd.RunSQL "INSERT INTO " & tblNames(i) & " IN '" & archiveFile & "' " & _
"SELECT " & tblNames(i) & ".* " & _
"FROM " & tblNames(i) & ""
Я использую массив для циклического перемещения по каждой таблице, которую я хочу заархивировать. и переменная 'archiveFile' передается в качестве параметра в зависимости от того, в какой файл accdb мне нужно отправить данные.
Моя проблема заключается в следующем: оператор sql работает, но когда это делается, файл архива остается заблокированным. Другими словами, laccdb открывается для архивного файла, к которому я добавляюсь, и будет оставаться открытым, пока я не закрою интерфейс (файл, из которого я запускал vba)
мой вопрос; Есть ли способ закрыть это соединение, созданное с помощью "DoCmd.Run SQL", нет ничего, что я открыл, что у меня есть доступ, чтобы закрыть, что я могу сказать. все же что-то создается и остается висеть ... заранее спасибо. Я буду рад уточнить или поделиться своим кодом, если это необходимо. (если есть лучший способ сделать это, я весь слух)
Обновление:
Я попытался выполнить запрос из gui вместо кода VBA и получил те же результаты. Файл laccdb был создан и не мог быть удален, пока я не закрыл интерфейс, из которого был запущен запрос. Я надеюсь, что есть способ вызвать открытые соединения, а затем закрыть их.