Convertir registros de access en archivos word

Tengo una base de datos que controla las fichas técnicas de platos y que a través de un código me lo convierte en Word, al convertirlo me pasa todas las fichas técnicas a un archivo Word pero necesito que cada registro sea un archivo Word independiente.

Actualmente todas las fichas me salen en un solo archivo con 115 fichas una tras de otras e independientes en hojas separadas por un salto de página

Ahora lo que tengo es:

Private Sub comando34_click()

DoCmd.OutpuTo acOutputReport, "Inf_Ficha_Plato",  acFormatRTF,  "C:\Fichas\Inf_FichaPlato_Id", True 

End Sub   

Como podría hacer para que cada ficha de plato sea independiente.

Ej. Paella.docx

pollo Asado.docx

Merluza andaluza.docx ...

¿Se puede hacer eso?

2 Respuestas

Respuesta
2

Todo depende de cuando y cómo "envíes" el informe. Por ejemplo, supongamos que tengo una tabla como

A la que he añadido un campo Si/no para saber que ese registro ya ha sido enviado a la carpeta Alimentos.

Puedes ver que los tres platos están en su carpeta

Supongo que los ingredientes los pones en un formulario, por tanto voy a hacer un nuevo plato, mucho más rico que los anteriores

Cuando pulso el botón

Y en la tabla me "marca" el campo Está

Con lo que si algún otro día pulsara por error el botón de ese registro en el formulario, como ya está marcado no me hace nada.

El código del botón ( aunque no haría falta) es

Private Sub Comando9_Click()
If IsNull([Está]) Then
DoCmd.OpenReport "archivos", acPreview, , "archivo='" & Me.Archivo & "'"
DoCmd.OutputTo acOutputReport, "Archivos", "RichTextFormat(*.rtf)", "C:\users\gonza\documents\alimentos\" & "" & Me.Archivo & "" & ".rtf", False, "", , acExportQualityPrint
DoCmd.Close acReport, "archivos"
DoCmd.RunSQL "update archivos set está=-1 where archivo='" & Me.Archivo & "'"
Else
Exit Sub
End If
End Sub

El recetario te quedaría

O como hubieras hecho tu el informe, que seguro que será mejor que mi "diseño"

En caso de que quisieras enviarlos todos de golpe, convendría que usaras una función que comprobara si en esa carpeta ya está "guardado" ese archivo que pretendes "transferir". Si la quieres dímelo

Lo he puesto pero no consigo que mande nada a Word

Ficha_Plato es la tabla

FichaPlato es el campo del plato

Que hago mal.

Gracias

Vamos a hacer una cosa. Haz una copia de tu base con dos o tres registros inventados en la tabla y me la envías a [email protected], y le echo un vistazo.

Si lo haces, en el asunto del mensaje pon tu alias Juan Fernandez, ya que si no sé quien me escribe ni los abro.

Respuesta
1

Se puede hacer con un recordset DAO o ADO. Veamos con DAO

Private Sub comando34_click()

Dim db AS DAO.Database

Dim rs AS DAO.Recordset

Set db=CurrentDB

Set rs=db.OpenRecordset("mitabla_o_consulta", OpenDynaSet)

Do Until rs.EOF()

DoCmd.OutpuTo acOutputReport, "Inf_Ficha_Plato",  acFormatRTF,  "C:\Fichas\" &

rs!nombre_plato & True 

rs.MoveNext

Loop

rs.close

db.close

set rs=nothing

set db=nothing

End Sub   

Cambie mitabla_o_consulta por el nombre de la tabla o consulta origen de datos del informe y nombre_plato por el nombre del campo nombre del plato.

Mitabla_o_consulta también puede ser una consulta SQL, algo como, "SELECT campo1, campo2 FROM mitabla"

Me sale esto al introducir el código

Gracias

Tiene que hacer referencia a la librería

Microsoft DAO 3.6 Object Library.

Para esto haga clic en Herramientas, Referencias y marque esta casilla.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas