Refrescar Formulario similar a la función de la tecla F5

Tengo un formulario de productos en el que hay una casilla de verificación, cuando marco la casilla el producto pasa a otro formulario (formulario de baja temporal de productos), y viceversa. Hasta aquí todo bien. Lo que no consigo es que, cuando en el formulario principal quiero dar de baja un producto no me lo actualiza hasta que cierro el formulario, sin embargo, si pulso la tecla F5 lo quita al momento. He probado con Me. Refresh y con DoCmd. RefreshRecord en un botón de comando, y para este caso no me funciona. ¿Qué función o código actuaría de la misma forma que la tecla F5?

1 respuesta

Respuesta
2

Javier: Inmediatamente después del código de eliminación que tengas incluye una línea >>

Me. Refresh

Podrías incluir un Me. Requery, pero eso te lleva al primer registro del Formulario.

Es el equivalente de Cerrar y Abrir el Formulario. Un saludo >> Jacinto

Gracias Jacinto, luego si tengo tiempo lo probaré y te diré. Gracias y saludos!

Hola Jacinto, el Me.Requery me funciona perfectamente, me mueve el producto al otro formulario, eso sí, me lleva al primer registro, pero no me importa en absoluto. Muchas gracias de nuevo!

Un saludo,

Javier.

Hola Jacinto, tengo otra duda, pero si te parece bien la publico en el foro general, la verdad es que no sé que es mejor para ti. He querido complicarme más la vida y he querido poner en el cuadro de mensaje un vbOKCancel, pero como viene siendo casi habitual, no me funciona como quisiera. Al darle OK me elimina el producto, pero al cancelar también me lo elimina. He probado algunas cosas y no funciona. Aquí te dejo el código del evento "Al hacer clic":

 Private Sub Mover_A_BajaTemporal_Click()
If vbOK = vbOK Then
Me.Mover_A_BajaTemporal = True
MsgBox "Una vez marcada la casilla de verificación, el producto será dado de baja temporal.", vbOKCancel, "¡Aviso! Baja temporal de producto"
Me.Requery
Else
Mover_A_BajaTemporal = False
MsgBox "El producto ha sido dado de alta en el stock general de productos.", vbInformation, "Información"
End If
End Sub

Javier: La ventaja de generar otra pregunta es que tu te beneficias de más de una respuesta y aplicas la que mejor se adecúa a tus necesidades.

Lo que veo es en esas líneas( e independientemente de que yo el sondeo lo haría de otra manera), no incluyes ninguna instrucción de Grabar en ninguna Tabla, ni de eliminar registro. Supongo que las tendrás en el After_Update de ese CHechBox. Si eso fuera así >>

If MsgBox("¿Quieres Eliminar el Registro y actualizar el Formulario?", vbYesNo) = vbYes Then
    'Un camino
    Call MoverABajaTemporal_AfterUpdate
    MoverABajaTemporal = True
    Me.Requery
Else
    'Otro camino
End If

Si puedes y no te afecta a mucho código o Consultas, cambia el Nombre Mover_A_Baja_Temporal, por uno sin espacios y cuanto más corto mejor, porque a Nivel de VBA lo notarás.

Si generas otra pregunta sería conveniente que pusieras el resto del código, porque puede ser que el mensaje se pueda incluir en el que ya tienes. Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas