Opciones de impresión a través de código
Pregunta
Sé cómo imprimir un informe mediante código y sé cómo hacer para que aparezca el cuadro de diálogo imprimir, de manera que el usuario pueda escoger diferentes opciones, como pueden ser el número de copias a imprimir, de qué página a qué página, etc. Pero ahora me encuentro en la necesidad de tener que configurar esas opciones de impresión mediante código, sin interactuar con el usuario. ¿Es posible hacerlo?
Respuesta
Sí, sí que es posible. Existe un método en el objeto DoCmd llamado PrintOut que nos da esa posibilidad de la que hablas. En la ayuda para VBA de Access viene bien explicado cómo funciona. Puedes buscar por PrintOut o bien por la acción de macro Imprimir. En ésta última, tal vez se den más detalles de su funcionamiento.
On Error GoTo err_PrintOut
' paramos la actualización de pantalla
Application.Echo False
' abrimos el informe en vista previa
DoCmd.OpenReport "Informe1", acViewPreview
' imprimimos 2 copias de las páginas 2 a la 3,
' en calidad borrador
DoCmd.PrintOut acPages, 2, 3, acDraft, 2
' cerramos el informe
DoCmd.Close acReport, "Informe1"
' activamos la actualización de pantalla
Application.Echo True
On Error GoTo 0
' si ejecutamos este código desde una función
' la siguiente línea debería ser Exit Function
Exit Sub
err_PrintOut:
MsgBox "Se ha producido el error " & Err.Number _
& vbCrLf & Err.Description
Créditos
con el fin de dar a conocer el trabajo de uno de los más grandes en el mundo de Access en español, y tras solicitar su permiso, replico este artículo de Juan M Afán de Ribera. Todos los derechos y autoría corresponden a él. Access & VBA FAQ – Opciones de impresión a través de código (archive.org)
Cómo conseguir en un informe calcular sólo el total para cada página
Cómo numerar individualmente grupos de páginas en un informe