Inserindo o Autotext (ou Quickpart) no Word (2013) com base em um valor booleano do Access (2013)

0

Não encontrei nenhuma informação sobre isso em nenhum lugar da rede (pelo menos, qualquer uma que funcione - mais sobre isso em um momento).

O que eu estou tentando fazer é, com o apertar de um botão que eu criei em um formulário do Access, o Word abrir um docx e preenchê-lo com certos parágrafos rtf (em determinados pontos) com base em vários TRUE / FALSE as caixas de seleção no registro atualmente aberto no Formulário de Acesso.

Código de acesso que funciona para passar valores para o docx do Word:

Function OpenWord(conPath As String)

Dim appword As Word.Application

Dim doc As Word.Document

On Error Resume Next

Error.Clear

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

If Err.Number <> 0 Then

Set appword = New Word.Application

appword.Visible = True

End If

Set doc = appword.Documents.Open(conPath, , True)

With doc

.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

End With

appword.ActiveWindow.View.Type = wdPrintView

appword.Visible = True

appword.Activate

Set doc = Nothing

Set appword = Nothing

O acima funciona muito bem para passar nomes para o Word docx via Developer > Legado > Campo de formulário de texto. Os valores booleanos também aparecem (por exemplo, -1 para TRUE e 0 para FALSE). O que estou tentando fazer é algo como:

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

Esta sugestão de internet não funciona.

Para resumir: O que é necessário para que o Word 2013 insira um parágrafo predefinido (um autotexto ou bloco buliding de parte rápida) em um ponto predefinido em um documento com base em um booleano passado do Access? (Qual é o caminho para fazer isso?)

Obrigado por toda sua gentil ajuda - isso me deixou perplexo por uma semana tentando vários caminhos infrutíferos,

Colocado

    
por Stumped 28.10.2014 / 22:22

1 resposta

1
Em primeiro lugar, eu acho que você poderia simplificar muito do código em sua macro usando a mala direta do banco de dados Access e apenas instigando via macro.

O código de campo para o seu campo IF como aparece aqui deve funcionar. Certifique-se de ter cercado o código com colchetes de campo especiais, clicando em CTRL + F9 e não apenas entre colchetes regulares.

    
por 28.10.2014 / 23:59