Imprimir en pdf todos los registros que se muestran en el formulario

Como siempre agradeceros enormemente vuestra ayuda, mi ERP no existiría sin vosotros!

Tengo un formulario que me muestra un listado de facturas y un botón que ejecuta una macro que me imprime en pdf el registro seleccionado.

¿Cómo podría hacer para que en lugar de imprimir solo el registro seleccionado lo hiciera con todos los que se muestran en el formulario? Entiendo que un bucle hasta terminar los registros visibles.

2 Respuestas

Respuesta
1

Puedes hacerlo de muchas formas. Por ejemplo, si lo quieres exportar desde un botón podría poner algo como

Dim i as integer

docmd.gotorecord,,acfirst

For i = 1 To Me.Recordset.RecordCount
DoCmd.OpenReport "clientes", acPreview, , "idcliente=" & Me.IdCliente & ""
DoCmd.OutputTo acOutputReport, "clientes", "PDFFormat(*.pdf)", "C:\users\gonza\documents\borrar\clientesespaña\" & NombreCliente & ".pdf"
DoCmd. Close acReport, "clientes"
DoCmd. GoToRecord,, acNext
Next

Me explico, va al primer registro, abre el informe correspondiente a ese cliente. Exporta dicho informe en formato PDF a la carpeta C:\users..... y al archivo le pone el nombre del cliente. Cierra el informe. Se va al siguiente registro y lo mismo. Así hasta el final del formulario.

Gracias Julián!

Probaré el código y te cuento.

Un saludo.

Gracias de Nuevo Julián.

He adaptado el código a mi base:

Dim i As Integer
DoCmd.GoToRecord , , acFirst
For i = 1 To Me.Recordset.RecordCount
DoCmd.OpenReport "FacturaListado", acViewReport, , "NumeroFactura='" & Me.NumeroFactura & "'", acHidden
DoCmd.OutputTo acOutputReport, "FacturaListado", "PDFFormat(*.pdf)", "D:\PRODUCCION\ERP\TEMP\" & [NumeroFactura] & ". " & [ClienteFiscal] & ". " & [TituloFactura] & ".pdf"
DoCmd.GoToRecord , , acNext
Next

Funciona perfectamente, genera todos los archivos de forma correcta, solo que cuando llega al final de los registros lanza un error en la penúltima línea:

Se ha producido el error '2105' en tiempo de ejecución:

No se puede ir al registro especificado.

Gracias de nuevo.

Eso es porque el formulario tiene su origen de registros en una consulta de datos agrupados.

Gracias Julián. Alguna sugerencia para evitarlo?

No problemo. Como tengo tu correo, te mando un ejemplo.

Respuesta
1

Le complemento la respuesta en que el reporte se debe abrir oculto, algo como:

DoCmd.OpenReport "clientes", acPreview, , "idcliente=" & Me.idcliente, acHidden

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas