Diseño de informe en access con varios registros

Tengo un informe que jala uno o varios registros de una tabla

Con un salto de página cada 3 registros (son máximo 3 registros por hoja)

El problema que tengo es que el informe el formato se debe de ver así, los numero 1,2,3 son los contadores para el salto de página

c

bueno el problema viene cuando son uno o 2 registros

se ve así

y yo quisiera q se vea asi

Que aunque no tenga nada de información los otros 2 cuadros salgan

Así se ve en diseño el informe

Lo que consulta es los maestros en el centro de trabajo y los muestra

1 Respuesta

Respuesta

Te pongo un ejemplo, por si te da una idea.

Dices que tienes configurado el informe para que presente 3 registros.

Si tengo el formulario Ventas con un subformulario DetalleVenta, en el que sólo hay un producto vendido

Cuando pulso el botón Imprimir esta Factura

En el caso de que hubiera dos productos

En mi caso particular, en el botón tengo puesto

Private Sub Comando16_Click()
DoCmd.SetWarnings False
If DCount("*", "detalleventa", "idventa=" & Me.IdVenta & "") = 1 Then
DoCmd.RunSQL "insert into detalleventa(idventa)values(Idventa)"
DoCmd.RunSQL "insert into detalleventa(idventa)values(Idventa)"
ElseIf DCount("*", "detalleventa", "idventa=" & Me.IdVenta & "") = 2 Then
DoCmd.RunSQL "insert into detalleventa(idventa)values(Idventa)"
End If
DoCmd.OpenReport "FACTURAS", acPreview, , "numfactura='" & Me.NumFactura & "'"
DoCmd.RunSQL "delete * from detalleventa where producto is null or producto="""""
End Sub

En esencia lo que hace es contar cuántos registros hay con el Idventa del formulario. Si hay uno le añade dos registros a la tabla DetalleVenta con el mismo Idventa que el formulario. Si hay 2, le añade uno. Se podría usar variables para no tener que repetir dos veces lo de Docmd.runsql"insert... pero sólo para 2 como máximo creo que no vale la pena.

Luego abre el informe y luego elimina esos registros "vacíos"

la información en mi caso la saco de una consulta.

se puede hacer esto de una consulta?

Private Sub Comando16_Click()
DoCmd.SetWarnings False
If DCount("*", "detalleventa", "idventa=" & Me.IdVenta & "") = 1 Then
DoCmd.RunSQL "insert into detalleventa(idventa)values(Idventa)"
DoCmd.RunSQL "insert into detalleventa(idventa)values(Idventa)"
ElseIf DCount("*", "detalleventa", "idventa=" & Me.IdVenta & "") = 2 Then
DoCmd.RunSQL "insert into detalleventa(idventa)values(Idventa)"
End If
DoCmd.OpenReport "FACTURAS", acPreview, , "numfactura='" & Me.NumFactura & "'"
DoCmd.RunSQL "delete * from detalleventa where producto is null or producto="""""
End Sub

la consulta q utilizo lo único que hace es 

de mi tabla ESCUELAS

me arroja los Nombre_maestro, nombre_escuela

gracias

Exactamente igual. Yo usé las tablas Ventas y DetalleVentas porque, personalmente, a mí no me gustan las consultas. Verás, una consulta sólo "funciona" cuando ya hay registros en su(s) tabla(s) origen. Entonces ¿para qué quiero una consulta si puedo decirle lo que quiero con algún o algunos criterios en VBA?.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas