Проблема импорта файла Excel в Access через VBA - PullRequest
1 голос
/ 29 марта 2019

Я создал многопользовательскую форму доступа, которая, по сути, будет открыта большую часть дня на компьютерах нескольких людей. В этой форме я создал кнопку, которая будет импортировать таблицу Excel через VBA. Код:

Option Compare Database

Private Sub Command0_Click()

DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE ExcelTable.* FROM ExcelTable;"
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "ExcelTable", "C:\Users\JohnDoe\Documents\MyTable.xlsx", True, "Data!A6:DB" & numberofrows
DoCmd.SetWarnings True

End Sub

Этот код хорошо импортирует данные. Тем не менее, пользователям часто нужно обновлять электронную таблицу в течение дня. Есть 2 проблемы, с которыми я часто сталкиваюсь:

  1. Если пользователь пытается перезаписать исходную электронную таблицу обновленной версией, он получает сообщение об ошибке «Не удается получить доступ к документу только для чтения».

  2. Если пользователь пытается открыть электронную таблицу, он получает сообщение об ошибке, что файл Excel заблокирован для редактирования.

У меня сложилось впечатление, что, запустив приведенный выше код VBA, пользователь импортирует статическую таблицу (не связанную таблицу), а это означает, что после импорта таблицы в Access она больше не ссылается на исходный файл Excel.

Как мне обойти эти сообщения об ошибках?

Пользователям необходимо будет обновлять файл Excel несколько раз в течение дня, и сейчас все должны полностью выйти из Access, чтобы получить доступ к исходному файлу Excel.

...