Проблема с Word Automation из MS Access после обновления до Office профессиональный 2016 - документ на сервере не открывается, сообщение об ошибке не отображается - PullRequest
0 голосов
/ 05 апреля 2019

Наша компания использует программное обеспечение, которое использует 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 Эта команда недоступна, поскольку ни один документ не открыт.

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