Imprimir informe desde formulario de navegación

Gracias de antemano a quién pueda orientarme con esto:

Tengo un formulario de navegación F-NavegacionInformes, donde tengo diferentes informes, algunos con parámetros, pero hay uno de ellos que tiene un solo parámetro que en este caso es ingresar un Año, este parámetro viene desde una consulta, como solo es eso no creé el parámetro en un formulario.

El problema que tengo que es para este informe al querer imprimirlo como está dentro del formulario de navegación imprime la ventana del formulario de navegación y no sólo el formulario que es lo que yo deseo, pensé entonces en al hacer click de mi botón imprimir ir al informe en otra ventana, pero en ese caso me vuelve a pedir el parámetro de año, cosa que no deseo hacer dos veces.

¿Cómo puedo hacer para imprimir este informe en este caso? Y otros informes que estén en el formulario de navegación.

1 respuesta

Respuesta
1

Yudith, llevo bastantes años en esto de Access y jamás, lo que se dice jamás le he visto utilidad ninguna a los formularios de navegación. Pero, al no saber como lo tienes construido, si tengo el formulario, al que he añadido un cuadro de texto llamado Fecha y un botón Imprimir

Quiero que me imprima el informe con los empleados que han nacido antes de la fecha que he escrito en el cuadro de texto. Al pulsar Imprimir

Y lo único que le he puesto en el botón Imprimir es

Private Sub Imprimir_Click()
DoCmd.OpenReport "empleados", acPreview, , "fechanacimiento<#" & Me.Fecha & "#"
End Sub

En caso de que quisieras que te lo imprimiera directamente bastaría con sustituir Acpreview por

Acnormal, o simplemente borrar acpreview

Sí algo así lo tenía, lo que pasa es que lo tengo así : 

Es solo el año, pero viene del parámetro que hace la consulta, si no se puede hago un campo de texto.

Ya lo hice, le puse el botón en el encabezado del formulario, y lo dejé visible solo si se entra al respectivo informe que está en el formulario de navegación, la única cosita es que el parámetro ese del año lo vuelve a pedir. 

Hay alguna manera de que no lo haga ?

Gracias.

Yo quitaría, pero eso es opinión mía y sin saber como está construida la consulta, si tengo la tabla Tabla1 con

Puedes ver que hay uno del 2021( es por no trabajar mucho, que estamos de vacaciones). En el formulario que sea, le pongo un botón, de forma que cuando lo pulse ponga un mensaje mas educado que los criterios, de forma que al pulsarlo

Escribo 2020 y acepto y

Y en el informe calculo lo que quiera.

El código del botón imprimir es

Private Sub Comando138_Click()
Dim año
año = InputBox("¿ Sería usted tan amable de escribir un año ?", "No sabe cuanto se lo agradezco")
DoCmd.OpenReport "tabla1", acPreview, , "right([periodo],4) like " & año & ""
End Sub

Jjajaja me encantó el mensaje, pero..... La consulta la tengo así: 

Como el informe está dentro del formulario de navegación (F-NavegacionInformes) al presionar el botón de navegación que corresponde al informe , ya me pide el parámetro, en el fondo de previsualiza el informe, al darle imprimir me vuelve a pedir ingresar el año para poder "ver" el informe o abrirlo pero sin verlo e ir a imprimirlo, que es lo que yo no quería, al colocar el parámetro  así personalizado queda bonito, pero al entrar al formulario o bien pide la cuestión 3 veces, o bien verías toooodos los años en la previsualización.

Mi idea era abrir el formulario, ingresar el año que le plazca ver a la señora, o señor y al presionar imprimir que ya no deba hacer nada más.

Es lógico que te el año te lo pida dos, tres y todas las veces que uses la consulta como origen de un objeto. Me explico, como el formulario está basado en la consulta, cuando "vas a abrir" el formulario te pide el parámetro. Pero luego cuando vas a abrir el informe, como también está basado en la consulta, te vuelve a pedir el parámetro. Y si tuvieras un subinforme también basado en la consulta te lo pediría una tercera vez.

Reconozco que soy enemigo de las consultas, pero en este caso, para tenerla como la tienes tú, yo no la usaría. El formulario lo puedes hacer con la tabla TCreditos y luego en código decirle que lo "agrupe" como quieras.

Por ejemplo, supongamos que el formulario está basado en la tabla TCreditos. En el formulario de navegación puedes poner un cuadro de texto, al que llamaremos Año, donde escribirías uno. Y en sus propiedades-eventos-después de actualizar poner

me.recordsource="select * from tcreditos where right(periodo,4) =....

Parece mentira, pero en este momento no tengo ninguna tabla con fechas, así que uso Clientes donde le he puesto un cuadro de texto ElegirPais

Escribo España y pulso Enter

Y ese mismo valor del cuadro de texto me sirve para el informe. En este caso el código del evento Después de actualizar del cuadro de texto ElegirPais es

Private Sub ElegirPais_AfterUpdate()
Me.RecordSource = "select * from clientes where pais like '" & Me.ElegirPais & "'"
End Sub

Pero podría añadirle otra línea con

Docmd. Openreport"tcreditos", acpreview,,"pais like...

La ventaja de los criterios es que le puedes añadir hasta 99 condiciones AND ó OR.

Sí, de hecho otros informes los tengo así pero este como era solo un campo me dio flojerita, bueno por ahora lo dejare así nomás, tampoco se van a caer los dedos a alguien por escribir la cuestión dos veces.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas