Вставка автотекста (или Quickpart) в Word (2013) на основе логического значения из Access (2013)

Никакой информации об этом нигде в сети не найдено (по крайней мере, какая-нибудь, которая работает - подробнее об этом чуть позже).

То, что я пытаюсь сделать, это иметь, нажатием кнопки, которую я создал в форме доступа, Word открывает docx и заполняет его определенными абзацами rtf (в определенных точках) на основе нескольких флажков TRUE/FALSE в запись в настоящее время открыта в форме доступа.

Код доступа, который работает для передачи значений в документ Word:

Функция OpenWord (conPath As String)

Dim appword As Word.Application

Dim Doc As Word.Document

При ошибке возобновить следующее

Error.Clear

Set appword = GetObject (, "word.application")

Если Err.Number <> 0, то

Установить appword = New Word.Application

appword.Visible = True

End If

Установите doc = appword.Documents.Open(conPath,, True)

С док

.FormFields ("TextName"). Result = Me.Name

.FormFields ("TextAnotherName"). Result = Me.AnotherName

.FormFields ("TextBoolean1"). Result = Me.Boolean1

.FormFields ("TextBoolean2"). Result = Me.Boolean2

.FormFields ("TextBoolean3"). Result = Me.Boolean3

Конец с

appword.ActiveWindow.View.Type = wdPrintView

appword.Visible = True

appword.Activate

Установить документ = ничего

Установить appword = ничего

Вышеприведенное прекрасно подходит для передачи имен в документ Word через Developer > Legacy > Text Form Field. Также отображаются логические значения (то есть: -1 для ИСТИНА и 0 для ЛОЖЬ). Я пытаюсь сделать что-то вроде:

IF {TextBoolean1} = "0" "{AUTOTEXT someparagraph}" ""

Это интернет-предложение не работает.

Подводя итог: Что необходимо для того, чтобы Word 2013 вставлял предопределенный абзац (блок автотекста или блок быстрого создания части) в предопределенное место в документе на основе логического значения, переданного из Access? (Как это сделать?)

Спасибо за вашу любезную помощь - это поставило меня в тупик на неделю, пробуя различные бесполезные пути,

Тупик

1 ответ

Решение

Во-первых, я думаю, что вы могли бы упростить большую часть кода в вашем макросе, используя вместо этого слияние Почты из базы данных Access и просто вызывая это с помощью макроса.

Код поля для вашего поля IF, как он здесь отображается, должен работать. Убедитесь, что вы окружили код специальными полевыми скобками, нажимая CTRL + F9, а не только обычные скобки.

Другие вопросы по тегам