No he encontrado ninguna información sobre esto en ningún lugar de la red (al menos ninguna que funcione; hablaremos más sobre eso en un momento).
Lo que estoy tratando de hacer es que, con solo presionar un botón que he creado en un formulario de acceso, Word abra un docx y lo complete con ciertos párrafos rtf (en ciertos puntos) sobre la base de varias casillas de verificación VERDADERO/FALSO en el expediente actualmente abierto en el Formulario de Acceso.
Código de acceso que funciona para pasar valores al documento de Word:
Función OpenWord (conPath como cadena)
Dim appword como Word.Aplicación
Atenuar documento como Word.Document
En caso de error Continuar siguiente
Error.Borrar
Establecer palabra de aplicación = GetObject(, "palabra.aplicación")
Si Número de error <> 0 Entonces
Establecer appword = Nueva Palabra.Aplicación
appword.Visible = Verdadero
Terminara si
Establecer doc = appword.Documents.Open(conPath, , True)
con doctor
.FormFields("NombreTexto").Resultado = Yo.Nombre
.FormFields("TextAnotherName").Resultado = Yo.OtroNombre
.FormFields("TextBoolean1").Resultado = Yo.Boolean1
.FormFields("TextBoolean2").Resultado = Me.Boolean2
.FormFields("TextBoolean3").Resultado = Me.Boolean3
Terminar con
appword.ActiveWindow.View.Type = wdPrintView
appword.Visible = Verdadero
appword.Activar
Establecer documento = Nada
Establecer palabra de aplicación = Nada
Lo anterior funciona muy bien para pasar nombres al documento de Word a través de Desarrollador > Legado > Campo de formulario de texto. Los valores booleanos también aparecen (es decir: -1 para VERDADERO y 0 para FALSO). Lo que estoy tratando de hacer es algo como:
IF {TextBoolean1} = "0" "{ AUTOTEXTO algún párrafo}" ""
Esta sugerencia de Internet no funciona.
Para resumir: ¿Qué se necesita para que Word 2013 inserte un párrafo predefinido (un autotexto o un bloque de creación de partes rápidas) en un lugar predefinido de un documento sobre la base de un booleano pasado desde Access? (¿Cuál es la manera de hacer esto?)
Gracias por toda su amable ayuda. Esto me ha dejado perplejo durante una semana probando varias vías infructuosas.
perplejo
Respuesta1
En primer lugar, creo que podría simplificar gran parte del código de su macro utilizando la combinación de correspondencia desde la base de datos de Access y simplemente instándolo a través de la macro.
El código de campo para su campo IF tal como aparece aquí debería funcionar. Asegúrese de haber rodeado el código con corchetes de campo especiales haciendo clic en CTRL+ F9y no solo con corchetes normales.