Imprimir varios imformes con un botón de comando

Me gustaría saber si se pueden imprimir varios informes con un sólo botón de comando, es decir, imprimir el informe que esté abierto y al cerrarlo y abrir otro distinto, se pueda imprimir haciendo clic en el mismo botón de comando (Imprimir Informe).

1 respuesta

Respuesta
1
Primero estaría bien saber dónde está ese botón de comando... así que voy a suponer que en un formulario (porque en un informe poco hace)
Se trata de lanzar los distintos informes uno detrás de otro desde el evento click del botón:
DoCmd. OpenReport "UnInforme" ' añade los argumentos adecuados si procede
DoCmd. OpenReport "OtroInforme" ' añade los argumentos adecuados si procede
Otra opción pasaría porque el cierre de un informe lance automáticamente otro informe. Para ello se utilizaría el evento Close de cada report.
Hola buenas... Pues efectivamente el botón de comando está en un formulario.
Modificando el código del botón, en el evento al hacer clic, lo dejé como sigue:
Private Sub Comando52_Click()
On Error GoTo Err_Comando52_Click
    Dim stDocName As String
    stDocName = "Meses"
    DoCmd.OpenReport stDocName, acNormal
    stDocName = "Meses / Pedidos"
    DoCmd.OpenReport stDocName, acNormal
Exit_Comando52_Click:
    Exit Sub
Err_Comando52_Click:
    MsgBox Err.Description
    Resume Exit_Comando52_Click
End Sub
Así no funciona, ... en el primer informe no hay problema, lo imprime bien, cuando lo cierro y abro el otro informe, al hacer clic en el botón de comando, me pide que introduzca los argumentos del informe anterior, es decir el mes y el año.
Un saludo
Jose Antonio.
Desconozco como tienes el origen del registro de los informes, pero creo que están apuntando a un sitio incorrecto.
Necesitas revisar de dónde salen los criterios que filtran los datos a mostrar para saber si están disponibles en el momento de lanzar el informe.
Lo que no entiendo es esto que dices: "... cuando lo cierro y abro el otro informe..."
Tal como tienes el código, los informes no llegas a verlos (constante acNormal debe enviarlos a la impresora) por lo que no entiendo que puedas cerrar el primer informe...
Hola nuevamente... intentaré explicarme mejor. Tengo un formulario con dos botones de comando que me abre cada uno un informe, un informe se llama Meses y el otro Meses Pedidos. Además tengo dos botones para imprimir los informes, cada botón para un informe. Bien, cuando hago clic en el botón de abrir informe, me muestra dos ventanas donde introduzco el Mes y la otra el Año, y se abre o muestra la vista del informe. En el otro puedo, ademas del mes y el año, puedo poner el pedido, para "filtar" el informe por meses y pedidos, igualmente me muestra la vista del informe.
Yo lo único que pretendo es eliminar un botón de comando de Imprimir informe, y con el mismo botón imprimir ambos informes.
Efectivamente si directamente hago clic en el botón de "imprimir", me pregunta los criterios de introducir mes, año y en su caso pedido, y el informe no se ve, se imprime directamente.
No se si me expliqué bien, un saludo y gracias por tu rapidez y tu interés.
Parece que tus informes están basados en consultas de parámetros (por eso que dices que te pregunta por mes y año)
Entiendo que tienes 4 botones (2 de vista previa + 2 de impresión directa)
Lo que no me queda claro es si quieres un solo botón que sustituya los 4 botones o 2 botones para sustituir alguna de las agrupaciones...
Bueno, es igual. Lo primero que haría es una sugerencia: añade campos Mes, Año y Pedido al formulario y, en las consultas base de los informes, cambia el parámetro por referencias a los controles del formulario. De esa forma dejará de pedirte los datos en el segundo informe.
En cuanto a la vista previa/impresión.
Yo utilizaría un único botón y, adicionalmente, una casilla de verificación para marcar si se desea impresión directa.
Así, cada uno de los OpenReport que lanzas, para el argumento tipo de impresión, evalúas el valor de la casilla y lanzas la constante adecuada:
Iif(Me! Elcheckbox, acViewNormal, acViewPreview)
Perdón por la tardanza en contestar, pero estuve algo liado con el trabajo.
Efectivamente, me ha servido tu consejo. Muchísimas gracias.
Un saludo
Jose Antonio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas