Solo un registro por página en informe

Tengo una base de datos de mis proveedores, nombre, teléfono, domicilio, email, etc.
Tengo el diseño de un informe realizado, pero lo que quiero es que al imprimir me imprima solamente un proveedor por página, para poder hacer fichas individuales de cada uno.
La cuestión es que no se cómo hacerlo, si hay que poner una especie de salto de página o simplemente hay una opción de "imprimir solo un registro por hoja".
Ademas, también me gustaría poder hacer un filtrado, es decir, para imprimir solo los proveedores que yo quiera, uno, dos, o todos, como una especie de menu donde poder tildar los proveedores para imprimir, algo así como los formularios de registro de internet, donde marcar diversas opciones una a una, o marcarlas todas.

1 respuesta

Respuesta
2
La primer parte de tu consulta es muy simple:
Abrí el informe en modo diseño.
Clic c/botón derecho en la barra Detalle
Clic en Propiedades
En Forzar nueva página elegí Antes de la sección.
Fíjate que tal vez tengas que acomodar las otras secciones pero eso es fácil.
La segunda parte requiere algo de elaboración, me estoy ocupando de encontrar la solución. Mientras tanto probá lo anterior y contame.
Segunda parte
Hice la prueba y funciona bien.
1)Agregá a la tabla un campo que se llame "Elegido" de tipo Si/no.
2)Creá un formulario nuevo con el asistente que use los campos de la tabla que necesites para decidir e incluya el campo "Elegido". El formulario de tipo tabular (se elige la opción en uno de los pasos del asistente)
3) A ese formulario agregarle un botón con el Asistente activo (en la caja de herramientas es una varita mágica) elegir el informe que se desea abrir.
4) Modificar el código que creó el asistente como sigue
DoCmd.OpenReport stDocName, acPreview, , "Elegido = True"
Es decir se agrega al final dos comas y luego la condición entre comillas. Esta condición es la que hace que solamente se manden al informe los registros tildados.
Un detalle: Si uno tilda una casilla y llama al informe puede que el registro no aparezca, esto es porque hasta que no se sale del registro la actualización (del campo elegido) no pasa a la tabla. Para evitar esto agregar al evento Después de actualizar del campo Elegido el siguiente código.
Private Sub Elegido_AfterUpdate()
SendKeys "{F9}"
End Sub
Esto fuerza la actualización de la tabla sin necesidad de salir del registro.
Para marcar todos los casilleros (o borrarlos) hacer una consulta de actualización que tilde todos y otra que borre todos y ejecutarlas desde sendos botones en el mismo formulario. Queda más estético si ponés el botón sin relieve que parezca una palabra "Todos" "Ninguno" como se ve en las bandejas de entrada de correo.
Pedí socorro si algo no sale y contame si sale bien.
Suerte, Marciana
He conseguido hacerlo, ya me sale cada registro solo en cada página del informe, y conseguí que solo salgan los registros tildado.
Pero no se como hacer lo de marcar/desmarcar todos.
¿Tengo qué crear un botón en el formulario pero como configuro ese botón?
Si lo que hay que hacer es una consulta, no sé muy bien cómo hacerlo, no domino mucho lo de las consultas.
Muchas gracias.
Para crear una consulta de actualización que Tilde todos:
1) Crear una consulta en modo diseño
2) Agregar la tabla Proveedores
3) Clic en el botón Tipo de consulta y elegir Consulta de actualización
4)Agregar solamente el campo Elegido
En la línea "Actualizar a" escribir "True" (es posible que te lo cambie a Verdadero)
5) Cuardar la consulta como "TildaTodos"
6)En el formulario en modo diseño Agregá el botón "Tilda Todos" (sin el asistente de controles, desmarcarlo en la caja de herramientas)
7)En el evento Al hacer clic agregá este código:
Private Sub BtnTildaTodos_Click()
On Error GoTo Err_BtnTildaTodos_Click
Dim stDocName As String
stDocName = "TildaTodos"
DoCmd.OpenQuery "TildaTodos"
SendKeys "{F9}"
Exit_BtnTildaTodos_Click:
Exit Sub
Err_BtnTildaTodos_Click:
MsgBox Err.Description
Resume Exit_BtnTildaTodos_Click
End Sub
(Le puse el nombre BtnTildaTodos al botón)
Para Destildar todo lo mismo cambiando
4) False en vez de True
El resto igual cambiando TildaTodo por DesTildaTodos
Suerte y contame, M

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas