Formulario (access) con un subformulario que abra un doc de word con registro activo

Tengo un formulario llamado parte trabajo donde tengo una serie de campos, como la fecha del parte de trabajo, turno, etc. Dentro de este formulario hay un subformulario con otros campos, como trabajo a realizar, hora de inicio, etc. La idea del subformulario es porque tengo relacionadas ambas tablas ya que un parte de trabajo puede tener varios trabajos a realizar.

Entonces lo que yo quiero es pasar los campos del registro activo a una plantilla Word tanto del formulario parte de trabajo como del subformulario (este puede tener varios campos que pasar).

Buscando he conseguido pasar los datos del registro activo del primer formulario usando marcadores, pero no los del subformulario relacionados con el registro activo.

1 respuesta

Respuesta
2

Jesús Angel: Esta pregunta me sale sugerida y de antemano te comento que no tengo experiencia en pasar datos de Access a Word. Te pongo algún ejemplo de la web de Neckkito, aunque mi pregunta es: ¿Por qué no hacer un Informe de Access?

Consulta de Word

Cartas de Word en Access

Formularios Word a Access

Un saludo >> Jacinto

Hola Jacinto,

Mi intención es pasar los datos del formulario de Access a un Word, uso Word por que el texto es más enriquecido que el de informe de Access, si no me equivoco, si es así te agradecería que mi ilustraras un poco jejeje.

 La cosa es que usando el código de Neckkito he conseguido hacer lo que quería, pero a medias, ya que solo consigo mostrar un campo del subformulario en mi plantilla.

El código es el siguiente:

Dim rutaBD As String

Dim miPlantilla As String

    'Guardamos el registro por si no lo hemos guardado

DoCmd.RunCommand acCmdSaveRecord

    'Cogemos la ruta de la base de datos

rutaBD = Application.CurrentProject.Path

    'Cogemos los valores de los campos

Dim vCampo1, vCampo2, vCampo3 As Variant

vCampo1 = Me.[FechaServicio].Value

vCampo2 = Me.[Turno].Value

vCampo3 = Me.Papeleta_Realizar.Form.servicioRealizar 'llamando a un campo de un subformulario.

'Creamos una instancia de Word

Dim Wrd As New Word.Application

Set Wrd = CreateObject("Word.Application")

    'Especificamos la ruta y nombre de archivo

    'Creamos la ruta de la plantilla

    miPlantilla = rutaBD & "\Plantillas\Servicio_PapeletaT.dotx"

    'Abrimos el Word y lo mostramos

Wrd.Documents.Add miPlantilla

Wrd.Visible = True

    'Reemplazamos los marcardores con los datos que tenemos

With Wrd.ActiveDocument.Bookmarks

.Item("mFechaServicio").Range.Text = vCampo1

.Item("mFechaServicio1").Range.Text = vCampo1

.Item("mTurno").Range.Text = vCampo2

.Item("mServicioRealizar").Range.Text = vCampo3

End With

Te explico un poco más, con la línea:

vCampo3 = Me.Papeleta_Realizar.Form.servicioRealizar

Consigo llamar al campo del subformulario que me interesa, pero solo me muestra el primer registro.

Mi idea es que me muestre todos los registros del subformulario, que están relacionados con el registro principal en el Word.

Pensando en esta línea me planteo si puedo copiar todos los registros relacionados con el principal en un campo, de forma que al copiar, cuando los traslade a Word salga uno debajo del otro. No sé si se puede hacer o hay otra manera, pero mil gracias por contestar.

Jesús Angel: Ciertamente a la hora de Aplicar formatos, el Word dispone de más alternativas que un Informe de Access.

En lo que me comentas y admitiendo mi poca experiencia del manejo de Word desde Access, creo que para ir llenando los registros del Sub Formulario en Word, tendrás que recorrer un Recordset, porque imagino que por cada "Cabecera", tendrás uno o más Registros, que por hacer un simil sería como un pedido con varios Articuls o Productos.

Puedo intentar ayudarte si me comentas que Ejemplo has tomado como punto de partida, pero ocurre que estoy muy limitado de tiempo y he analizar la base y como operar, ya que como te he citado mi experiencia en esos procesos en Word es muy limitada. Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas