Никакой информации по этому поводу в сети не нашел (по крайней мере, работающей — подробнее об этом чуть позже).
Я пытаюсь сделать так, чтобы при нажатии кнопки, созданной мной в форме Access, Word открывал docx-файл и заполнял его определенными абзацами rtf (в определенных точках) на основе нескольких флажков ИСТИНА/ЛОЖЬ в записи, которая в данный момент открыта в форме Access.
Код доступа, который работает для передачи значений в Word docx:
Функция OpenWord(conPath As String)
Dim appword Как Word.Application
Dim doc Как Word.Document
При ошибке Возобновить Далее
Ошибка.Очистить
Установить appword = GetObject(, "word.application")
Если Err.Number <> 0 Тогда
Установить appword = Новое Слово.Приложение
appword.Видимый = Истина
Конец Если
Установить doc = appword.Documents.Open(conPath, , True)
С документом
.FormFields("TextName").Result = Я.Имя
.FormFields("TextAnotherName").Result = Я.AnotherName
.FormFields("TextBoolean1").Result = Я.Boolean1
.FormFields("TextBoolean2").Result = Я.Boolean2
.FormFields("TextBoolean3").Result = Я.Boolean3
Конец с
appword.ActiveWindow.View.Type = wdPrintView
appword.Видимый = Истина
appword.Активировать
Установить документ = Ничего
Установить appword = Ничего
Вышеуказанное отлично работает для передачи имен в Word docx через Developer > Legacy > Text Form Field. Булевы значения также отображаются (например: -1 для TRUE и 0 для FALSE). Я пытаюсь сделать что-то вроде:
ЕСЛИ {TextBoolean1} = "0" "{ AUTOTEXT someparagraph}" ""
Это интернет-предложение не работает.
Подведем итог: что необходимо для того, чтобы Word 2013 вставлял предопределенный абзац (блок автотекста или быстрого построения раздела) в предопределенное место документа на основе логического значения, переданного из Access? (Как это сделать?)
Спасибо за всю вашу любезную помощь. Это поставило меня в тупик на целую неделю, когда я пытался найти разные бесплодные пути.
Озадаченный
решение1
Во-первых, я думаю, что вы могли бы упростить большую часть кода в вашем макросе, используя вместо этого слияние из базы данных Access и просто инициируя это через макрос.
Код поля для вашего поля IF, как он здесь отображается, должен работать. Убедитесь, что вы заключили код в специальные скобки поля, нажав CTRL+ F9, а не просто в обычные скобки.