Refrescar el resultado de un Informe emergente en Access

Tengo dos formularios que controlan la personas que entrar en un gimnasio, uno para entradas con el ID del socio y la fecha y hora en la que entra, y otro con las salidas con el Id del socio y la fecha y hora de salida.

Quiero saber el aforo real en todo momento, para lo que tengo un informe dependiente de una consulta que cuenta las entradas y le resta las salidas de cada tabla..

Todo funciona ok, pero quiero tener el informe siempre abierto en una pantalla para el publico con el aforo real (el informe de la consulta) y en otra pantalla solo los dos formularios con las entradas y salidas para ir registrandolas.

El problema es que el informe no se actualiza solo según introduzco nuevas entradas o salidas, sino que tengo que cerrarlo y volver a abrirlo cada vez que hago una entrada o salida para que el aforo sea el real.

¿Cómo puedo hacerlo?

1 respuesta

Respuesta
1

Una posibilidad es que le programes el evento "al cronómetro" con un Me. Requery y como "intervalo de cronómetro" le pongas cada cuanto quieres que se actualice ( teniendo en cuenta que un valor de 1000 equivale a un segundo)

Otra opción es que cada vez que hagas algo en tus formularios le hagas el requery al informe, con:

Reports("NombreInforme"). Requery

No se como programar un evento "al cronometro" como me aconsejas, ¿te refieres en el informe? Podrías detallarme el como hacerlo, por favor.

¿Sobre las segunda opción te refieres a crear un desencadenante Después de insertar en las tablas Entradas y Salidas?

Abres el informe en vista diseño, con el botón derecho del ratón sacas sus propiedades. Luego vas a la pestaña "Eventos" y localizas "al cronómetro". Al colocar el cursor en la casilla de ese evento, te aparecerá a la derecha un botón con tres puntos. Lo pulsas, y eliges, en la ventana emergente, "generador de código". Te llevará al editor de VBA y tendrás el cursor entre las lineas Private Sub Report_Timer() y End Sub. Ahí escribes el Me. Requery.

Justo debajo de esa propiedad tienes la de "intervalo de cronometro", donde tendrás que cambiar el 0 por el número de milisegundos que quieres para que el informe se actualice.

Sobre la segunda opción, me refiero a programar los eventos de formulario (en las tablas no puedes) que se invoquen cuando hay cambios en el mismo, por ejemplo "Después de insertar", "después de actualizar" y "después de eliminar" del formulario, o los mismos eventos "Después de insertar" y "después de actualizar" de cada uno de los controles que tengas en tu formulario

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas