Наша компания использует программное обеспечение, которое использует MS Access VBA и Forms в качестве внешнего интерфейса на отдельных рабочих станциях, а SQL Server - в качестве базы данных на сервере.
Мы используем VBA, чтобы открыть документ Word и передать данные в закладки Word в документе. Документ Word хранится на сервере.
Недавно мы обновили Office профессиональный 2016 и Windows 10 на некоторых рабочих станциях, и автоматизация Word больше не работает на этих рабочих станциях с версиями Word 2016 и Access 2016 и Windows 10.
Как ни странно, сообщения об ошибке нет - строка кода objWord.documents.open(DocCert)
открывает Word, но не открывает документ.
Позже, когда код попадает в строку Bookmarks
, я получаю сообщение об ошибке, что документ отсутствует. На данный момент слово открыто, но пусто. Нет проблем с открытием электронной таблицы Excel с использованием VBA в той же форме, снова используя Access 2016 и Excel 2016.
Когда я переместил документ Word на рабочую станцию (вне сервера) и получил к нему доступ непосредственно на рабочей станции, а не на сервере, этот код работал просто отлично. Проблема возникает только тогда, когда документ Word находится на сервере.
Кажется, это проблема Word 2016 - возможно, связанная с безопасностью? Я убедился, что папка сервера, содержащая документ Word, настроена как надежное расположение в локальной копии Word 2016. Я подозреваю, что эта проблема связана с безопасностью - новые элементы управления Microsoft для автоматизации Word?
Мы также попытались включить макросы в Word 2016, а также отключили защиту от вирусов и брандмауэр на локальном компьютере - не помогло.
В центре доверия в Word проверено, что Word не блокирует никакие файлы.
Опять же, у нас нет проблем с открытием файла Excel с использованием Access 2016 и Excel 2016 с использованием аналогичного кода VBA.
Set objWord = CreateObject("Word.Application")
With objWord
.Documents.Open (DocCert)
.Visible = True
.ActiveDocument.Bookmarks("CompanyName").Select
.Selection.Text = Me![Name]
Этот код прекрасно работает на наших рабочих станциях с Windows 7 и XP, использующих Office 2007.
Мы ожидаем, что документ Word будет открыт, а закладки заполнены данными, переданными из кода VBA в форме доступа. Документ Word затем распечатывается и сохраняется на сервере. Документ Word живет на сервере.
Результаты с использованием Access 2016 и Office 2016:
С помощью команды .Documents.Open()
Word открывается, но документ не открывается, но нет сообщения об ошибке. Ошибка, полученная при выполнении команды .Activedocument.Bookmarks()
- тогда мы получаем это сообщение об ошибке:
4248 Эта команда недоступна, поскольку ни один документ не открыт.