Hola.Me gustaría saber como puedo capturar el evento que sucede cuando cambiamos de registro en un formulario con los botones de desplazamiento sin el Form_Current ni el Before_update. Ya que quiero capturarlo se hayan hecho cambios o no, es decir, siempre que se pulse atrás o adelante. Muchas gracias.
1 respuesta
Respuesta de pmoroa
1
1
pmoroa, No soy una experta, aunque tengo bastante experiencia con...
Una solución es combinar los eventos 'Al activar registro' y 'Al activar' del formulario. La macro que asocies a 'Al activar registro' se ejecutará siempre que cambie el registro, pero ¡También cuando abras el formulario!. Si no deseas que esto ocurra puedes recurrir al pequeño truco que describo a continuación. - Define un campo en el formulario, que vamos a suponer que denominas MarcaApertura, con las siguientes características: Valor predeterminado: 0 Visible: No - Asocia al evento del formulario 'Al activar' una macro, que podemos denominar Macro0AlActivarFormulario, con una única acción: · ACCIÓN: EstablecerValor, con los parámetros: Elemento: [MarcaApertura] Expresión: 1 - Asocia al evento del formulario 'Al activar registro' otra macro, que denominaremos Macro1AlActivarRegistro, con dos acciones, condicionada la primera: · ACCIÓN1: EjecutarMacro, con los parámetros: Nombre de macro: NombreDeLaMacroQueDebeEjecutarseAlCambiarDeRegistro Número de repeticiones: Sin informar Expresión de repetición: Sin informar CONDICIÓN1: [MarcaApertura]=0 · ACCIÓN2: EstablecerValor, con los parámetros: Elemento: [MarcaApertura] Expresión: 0 De este modo, la macro que debe ejecutarse al cambiar de registro no se ejecutará cuando abras el formulario. Como ves, la solución es un poco artesanal, pero funciona SALVO que cambies de registro mediante una macro o un procedimiento de evento. Sólo responde a los cambios que se efectúen directamente en el formulario, por ejemplo, pulsando atrás o adelante, como tú propones.