Enviar parámetros de Formulario a Informe y a Subinformes

Espero me puedan ayudar. Tengo un formulario que lo llamo reporte maestro, en el tengo una caja de texto y tres cheksbox (Inventario, Préstamo, Ingresos) que son tres tablas distintas pero que tienen su código en común, por intermedio de la caja de texto coloco el código y elijo los checks que deseo visualizar y al darle a reporte me debería mostrar un Informe con los subinformes de cada tabla seleccionada. Mi duda es, como paso la condición para indicarle al informe el código que deseo filtrar en los subinformes.

1 respuesta

Respuesta
1

Vamos a ver si me explico. Lo de "... pero que tienen su código en común" no lo he entendido. No sé que pones en el cuadro de texto del formulario. Por tanto voy a poner sólo las casillas de verificación. No te fijes en los nombres ya que he usado tablas que ya tenía.

En el informe Informe 2 tengo puesto tres subinformes como visibles=No. Cuando pulso el botón

Si hubiera seleccionado

Al pulsar

En las propiedades del informe, en el evento Al cargar tengo puesto

Private Sub Report_Load()
If CurrentProject.AllForms("formulario2").IsLoaded Then
If Forms!formulario2!Pagos = -1 Then
Me!Pagos.Visible = True
End If
If Forms!formulario2!Pasajeros = -1 Then
Me!Pasajeros.Visible = True
End If
If Forms!formulario2!Rutas = -1 Then
Me!Rutas.Visible = True
End If
End If
End Sub

¡Gracias! Icue por responder me pase toda la mañana dándole solución a esto, con lo de código en común me refería que en las tres tablas que menciono (Inventario, Préstamo, Ingresos) cuentan con un ID que con iguales, por ejemplo si el la caja de texto colocaba por decir "GB-540", este código lo pueden tener, como no, tanto Inventario, Préstamo e Ingreso, es una mescolanza un tanto difícil de entender pero de igual forma valoro tu aporte.

En ese caso, y suponiendo que el cuadro de texto donde escribes ese código se llama(propiedades-Otras-Nombre) Codigo, en el evento al hacer clic del botón puedes poner

docmd.openreport"nombre del informe",acpreview,,"codigo='" & me.codigo & "'"

Es decir, que te abra el informe en "aquel" registro en que el valor del campo Codigo sea igual al que has escrito en el cuadro de texto del formulario. Lo que unido a el código que te puse antes en el evento Al cargar, funciona perfectamente.

¡Excelente! amigo gracias por tu ayuda. Tengo otra consulta, ¿sabes como modificar el filtro de un subinforme? 

Te cuento brevemente el sistema que esoy hacienco, estoy elaborando un sistema para una planta que elabora botellas, en el formulario la referencia es el tipo de molde de botella que utilizan para la fabricación, la campaña es la cantidad de veces que ha producido el molde y es autonumerado, por decir el molde GB-666 a producido 3 campañas.

Al darle doble clic a las campañas que seleccione tengo este código

If b = 1 Then
condinumcamp = "" & lstselecciona.Column(0, Me.lstselecciona.ListIndex) & ""
lstselecciona.RemoveItem (Me.lstselecciona.ListIndex)
b = b + 1
ElseIf b < lstselecciona.ListCount + 2 Then
If lstselecciona.ListIndex = -1 Then
Exit Sub
Else
condinumcamp = condinumcamp & ", " & lstselecciona.Column(0, Me.lstselecciona.ListIndex) & ""
lstselecciona.RemoveItem (Me.lstselecciona.ListIndex)
End If
End If
totalcondimaestro = " and C.Num_camp IN (" & condinumcamp & ")"

El lado derecho del formulario ya lo resolvi con tu ayuda. Bueno cuando muestro el informe me debe de mostrar un subinforme que tiene la referencia como encabezado de página y las campañas seleccionadas en los detalles y los demas subinformes de acuerdo a las casillas seleccionadas. De este modo:

En el filtro del primer sub informe tengo esto

A ese filtro quiero agregarle la condición de la variable de la lista algo así

Referencia=(Formularios![MAESTRO]![txtreferencia])  & totalcondimaestro 

para que cuando elija las campañas me filtre esa condición pero no se ni como ni en donde hacer. Espero me puedas ayudar estimado amigo.

Te juro que me he perdido, a partir de

If b=1 ya no entendí nada.

Tu tienes tus ideas claras, pero yo tengo que imaginarlo y, honestamente, no lo consigo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas