Sección detalle en informe access

Tengo una duda que me está desesperando...

¿Es posible hacer que la sección detalle de un informe siempre tenga el mismo tamaño?

Hasta ahora lo que he tenido que hacer es crear dos informes uno que me imprima solo una línea en la sección detalle y otro informe que me imprima como mucho tres líneas en la dicha sección.

Me gustaría poder tener solo un informe que me sirviese para los dos casos.

1 respuesta

Respuesta
1

Claro que lo puede hacer en un informe, observe este ejemplo, consta de 1 formulario y un reporte.

FORMULARIO

Después de ingresar la cantidad de registros se activa el reporte.

REPORTE

Ahora cambio el 4 por 6 y obtengo:

Corresponde a la página 2 del informe, observe que solo muestra 6 registros.

CODIGO DEL EVENTO DESPUÉS DE ACTUALIZAR DEL FORMULARIO

Private Sub ctlCuantos_AfterUpdate()
  If IsNumeric(Me.ctlCuantos) Then
    DoCmd.OpenReport "rptClientes", acViewPreview, , , , Me.ctlCuantos
  End If
End Sub

Observe que paso como parámetro al reporte la cantidad de registros a mostrar en el detalle, en este ejemplo, Me.ctlCuantos.

DISEÑO DEL INFORME

Programo una variable a nivel de módulo del formulario, en este caso la llamo contador

Option Compare Database
Option Explicit
Dim contador As Integer

Programo el evento Sección encabezado de página,

Private Sub SecciónEncabezadoDePágina_Format(Cancel As Integer, FormatCount As Integer)
  contador = 1
End Sub

Observe que inicio el contador en 1

Programo el evento Al dar formato, de la sección de detalle del informe, algo como

Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If contador = Me.OpenArgs Then
    Reports![rptClientes].Section(acDetail).ForceNewPage = True
    contador = 0
 Else
     Reports![rptClientes].Section(acDetail).ForceNewPage = False
End If
contador = contador + 1
End Sub

Observe como hago el contador al valor que se haya pasado como argumento desde el formulario.

Corrijo no es a nivel de formulario sino a nivel del reporte, debe decir.

Programo una variable a nivel de módulo del reporte, en este caso la llamo contador

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas