Access - Como pasar parametros al subinforme

 
Vista:

Como pasar parametros al subinforme

Publicado por joel valencia (2 intervenciones) el 02/02/2019 14:17:27
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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Como pasar parametros al subinforme

Publicado por Norberto (753 intervenciones) el 04/02/2019 14:20:24
Hola:

La forma de pasar información a un informe en el momento de la apertura es a través del parámetro OpenArgs tal que así:

DoCmd.OpenReport "Informe", , , , , Argumentos

Supongamos que los checks se llaman chkTabla1, chkTabla2 y chkTabla2. Podemos crear un valor numérico que tomaría 1 para la tabla1, 2 para la tabla2 y 4 para la tabla3; sumándolos para indicar que queremos mostrar más de una.

1 - Solo la 1
2 - Solo la 2
3 - La 1 y la 2
4 - Solo la 3
5 - La 1 y la 3
6 - La 2 y la 3
7 - Las 3 tablas.

Para generar el parámetro podemos usar - chkTabla1 - chkTabla2 * 2 - chkTabla3 * 4

El comando quedaría así:

DoCmd.OpenReport "Informe", , , , , - chkTabla1 - chkTabla2 * 2 - chkTabla3 * 4

Una vez abierto el informe puedes usar la propiedad Me.OpenArgs para recuperar el valor pasado.

1
2
3
4
5
6
7
8
9
10
11
Private Sub Report_Load()
    Dim Args As Integer
 
    Args = Val(Me.OpenArgs) 'Leemos el argumento pasado
    'Queremos mostrar la tabla 1
    Me.SubTabla1.Visible = (Args And 1) = 1
    'Queremos mostrar la tabla 2
    Me.SubTabla2.Visible = (Args And 2) = 2
    'Queremos mostrar la tabla 3
    Me.SubTabla3.Visible = (Args And 4) = 4
  End Sub

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar