Buscar en este blog

Cargando...

Que metodo usar Refresh ó Requery en un codigo VBA de Access

Refresh Vs. Requery

Una de las maneras mas rapidas cuando usamos codigo VBA en Access, esta tambien un acceso directo a listados o relistados en listas de datos.  Existen 2 eventos: Refresh (la actualizacion de datos)  y Requery (Nueva Consulta) que en mi opinion es mas practico.

Cuando se utiliza Microsoft Access, muchos desarrolladores principiantes tienen dificultad para entender la diferencia entre Me.Refresh y Me.Requery. Por lo tanto, echemos un vistazo a las diferencias entre los dos.

Aquí está la versión corta:
Ambos Actualizar y Requery guardar los cambios realizados al registro actual, sin embargo ...

Me.Requery tira de todos los nuevos datos de la tabla o consulta, incluyendo nuevas adiciones y supresiones;

Me.Refresh sólo actualiza los registros de la forma actual, pero no se muestran los registros nuevos o borrados.

Esta es la versión larga:


Me.Requery obliga a todo el conjunto de registros (datos básicos) para la forma de volver a cargar. Esto significa que todos los registros en su forma actual se volverá a cargar. Su posición actual se perderán, así que si estás sentado en el expediente 10 de 100, te encontrarás de nuevo en el primer registro. Me.Requery es esencialmente lo mismo que cerrar y volver a abrir el formulario. Cualquier nuevo registro añadido por otros usuarios al mismo tiempo estará disponible. Del mismo modo todos los registros que se han eliminado desaparecerán. Requery esencialmente "re-ejecuta la consulta" que tiraban de los datos en el formulario en el primer lugar. También puede utilizar una nueva consulta para actualizar los datos en un cuadro de lista o cuadro combinado.

Me.Refresh guarda el registro actual que se está trabajando. También se va a recuperar cualquier cambio (pero no las adiciones o supresiones) a los registros mostrados en la forma actual. Todos los cálculos en el formulario (los campos no consolidados) se vuelven a calcular. Actualizar no recarga el conjunto de registros y no pierde su posición en la forma (a permanecer en el registro actual). Cualquier nuevos registros añadidos por otros usuarios no se mostrará.


También hay otros dos comandos que se confunden con Refresh y Requery: que viene siendo Repaint (repintado) y Recalc (recálculo).

El comando Me.Repaint simplemente vuelve a dibujar la forma actual y todos sus controles en la pantalla. Esto es especialmente útil cuando se está ejecutando un formulario con los bucles de eventos temporizadores y largo plazo y desea forzar algo en la pantalla (tal vez un contador) para actualizar el evento se está ejecutando, por lo que el usuario no sólo se sientan allí mirando no pasa nada. Repintar no datos sobre los efectos.

El comando Me.Recalc obliga a todos los controles calculados en la forma de ser reevaluado. Por ejemplo, si sólo estás mostrando elementos UnitCost * en un cuadro de texto, y no es la actualización, puede utilizar Me.Recalc para forzar su actualización. Nunca he tenido que usar honestamente Recalc antes. El acceso es bastante buena sobre recalcular automáticamente.

No hay comentarios.:

Publicar un comentario

Entradas populares