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.