Actualización y visualización de los campos en un Formulario sin tener que pulsar F5

Tengo un Formulario que no tiene ninguna entrada manual de datos por ser de resultados.

Realizo cálculos dentro del Evento: AL CARGAR y estos no se acualizan y visualizan mientras no pulso la Tecla: F5.

He intentado refrescar la pantalla pero los resultados en los campos no me aparecen si no realizo la actualización pulsando F5

Respuesta
2

La línea de código Me.Refresh (https://docs.microsoft.com/es-es/office/vba/api/access.form.refresh) realiza la misma función que pulsar F5.

Si no te funciona, también puedes probar Me.Requery (https://docs.microsoft.com/es-es/office/vba/api/access.form.requery), que recarga el origen de datos del formulario, o Me.Recalc (https://docs.microsoft.com/es-es/office/vba/api/access.form.recalc), que actualiza todos los campos calculados.

Pero quizás el problema sea que el evento "Al cargar" no es el más adecuado en dónde hacer los cálculos, pero con la información que das, es imposible saberlo. Prueba en el evento "al activar registro".

Un saludo.


Se trata de un Formulario donde se cargan los campos a través de 5 consultas previas.

He cambiado el evento "Al cargar", y si utilizo Me.Refresh después de ejecutar las Consultas NO me carga en el formulario los datos extraídos de las Consultas.

He probado Me.REQUERY me los carga pero el problema es que debe de leer muchísimos datos porque esta bastante rato la pantalla parpadeando por lecturas que debe de hacer y al final me los muestra pero tarda muchísimo en darlos.

En Me.RECALC tampoco los imprime, hay que pulsar F5.

He probado también sin éxito Me.Repaint.

Con la información que das, poco más te puedo decir que lo que ya te dije: Me. Refresh, Me. Requery o Me. Recalc es tu solución, dependiendo de cómo y dónde hagas los cálculos.

Lo que comentas del parpadeo con Requery lo puedes solucionar con Application.Echo False antes del Requery y Application. Echo True después, que lo que hace es desactivar el refresco de pantalla y volver a activarlo.

En cuanto a lo del tiempo, el requery te tardará lo mismo que abrir el formulario, porque realiza el mismo proceso (es como si lo cerraras y volvieras a abrir)

Esto no entiendo a qué te refieres...

Si utilizo Me. Refresh después de ejecutar las Consultas

Si el formulario depende de las consultas, no necesitas ejecutarlas, porque ya lo hace el formulario al abrirse para tomar los datos de ellas.

Por ende, también me resulta muy extraño que los cálculos que hagas en el evento "al cargar" no se te muestren...

Las consultas estan fuera del Formulario y las ejecuto en el evento al Activar el Registro. Los campos que hay dentro del form recogen los datos de las consultas.

He probado el colocar todo lo que me has indicado dentro de cada uno de los eventos y me sigue haciendo lo mismo .. no son cargandos los datos mientras no pulso F5.

¿Y si pones el código que tienes? Quizás así avancemos algo...

1 respuesta más de otro experto

Respuesta
1

En el botón de tu formulario puedes colocar el siguiente código

Private Sub Comando1_Click()
Me.Requery
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas