Llevar el foco al campo que tenía el control antes

¿Podrías ayudarme con esta nueva duda?
Tengo un formulario compuesto por varios subformularios. Tras introducir un nuevo registro y en el evento Guardar, compruebo si los campos obligatorios están cumplimentados debidamente, lo que me obliga a mover el foco por los distintos campos. Al finalizar, quiero que el foco regrese al control en el que se encontraba antes de iniciar el evento Guardar. He pensado en hacerlo con Screen. PreviousControl. SetFocus, pero me da problemas cuando el control debe regresar a un campo de uno de los subformularios.

1 Respuesta

Respuesta
1
Un par de cosas.
Los controles de los valores que vas a almacenar deberías comprobarlos en el evento 'Antes de Actualizar".
Si lo que quieres es activar el control que ya estaba activo, guardate el 'ActiveControl. Name' y, al final haces "me.Controls(nombre del control).setfocus.
Supongo que si el que tiene el control es un subformulario también podrás hacer lo siguiente: crearte una variable tipo formulario, asignar el subformulario a dicha variable y, en esa variable usar variable. ActiveControl. Name.
Hola Santiago, muchas gracias por tu ayuda, pues me ha sido de enorme utilidad.
Al final lo he solucionado así
Dim frm As Form
Dim ctl As Control
Set ctl = Screen.PreviousControl
Set frm = Screen.ActiveForm
ctl.SetFocus
Te agradezco mucho tu tiempo y amabilidad. Saludos
Me alegro que hayas resuelto el problemilla.
Cuando puedas cierra la consulta para que no aparezca como pendiente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas