Não encontrei nenhuma informação sobre isso em nenhum lugar da rede (pelo menos alguma que funcione - mais sobre isso em um momento).
O que estou tentando fazer é que, ao pressionar um botão que criei em um formulário de acesso, o Word abra um docx e preencha-o com determinados parágrafos rtf (em determinados pontos) com base em várias caixas de seleção VERDADEIRO/FALSO em o registro atualmente aberto no Formulário de Acesso.
Código de acesso que funciona para passar valores para o documento do Word:
Função OpenWord (conPath As String)
Dim appword como Word.Application
Dim documento como Word.Document
Em caso de erro, retomar o próximo
Erro.Limpar
Definir appword = GetObject(, "word.application")
Se Err.Number <> 0 Então
Definir appword = Novo Word.Application
appword.Visible = Verdadeiro
Fim se
Definir doc = appword.Documents.Open(conPath, , True)
Com documento
.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
Terminar com
appword.ActiveWindow.View.Type = wdPrintView
appword.Visible = Verdadeiro
appword.Ativar
Definir documento = Nada
Definir appword = Nada
O procedimento acima funciona muito bem para passar nomes para o documento do Word via Desenvolvedor> Legado> Campo de formulário de texto. Os valores booleanos também aparecem (ou seja: -1 para TRUE e 0 para FALSE). O que estou tentando fazer é algo como:
IF {TextBoolean1} = "0" "{AUTOTEXT algum parágrafo}" ""
Esta sugestão da internet não funciona.
Para resumir: O que é necessário para que o Word 2013 insira um parágrafo predefinido (um autotexto ou bloco de construção de parte rápida) em um local predefinido em um documento com base em um booleano passado pelo Access? (Qual é a maneira de fazer isso?)
Obrigado por toda a sua gentil ajuda - isso me deixou perplexo por uma semana tentando vários caminhos infrutíferos,
Perplexo
Responder1
Em primeiro lugar, acho que você poderia simplificar muito o código da sua macro usando a mala direta do banco de dados do Access e apenas instigando isso por meio da macro.
O código do campo IF conforme aparece aqui deve funcionar. Certifique-se de ter colocado o código entre colchetes de campo especiais clicando em CTRL+ F9e não apenas em colchetes normais.