Autor Tema: Asignación de funciones a eventos  (Leído 310 veces)

Desconectado xavi

  • Administrador
  • Habitual
  • *****
  • Mensajes: 181
Asignación de funciones a eventos
« en: Abril 20, 2020, 12:29:38 am »
Palabras clave: Funciones, procedimientos
Autor: Xavi
Extraído de: Experiencia propia

A menudo tenemos la tentación de asignar las funciones directamente a partir de la hoja de propiedades del control. Eso que parece una buena opción en aras de ahorrar líneas de código puede volverse en nuestra contra si, por el motivo que sea, la función que llamamos ha cambiado de nombre o, simplemente, desaparecido.

Cuando ello ocurre nos encontramos un un error no controlado en el momento de abrir el formulario que puede llevarnos un buen rato de trazar.

Para evitar encontrarnos en ese escenario mi consejo es NO utilizar la ventana de propiedades para asignar las funciones. En su lugar es más adecuado utilizar el procedimiento Form_Open o Form_Load (yo prefiero el Load) para realizar la asignación:

Código: [Seleccionar]
Me!UnControl.AfterUpdate = "=UnaFuncion()"
Recordar que la función puede estar en el mismo módulo o en un módulo independiente siempre que la función esté declarada como Public.

Si la paranoia anti-errores es similar a la mía, también es una buena práctica "desasignar" a la salida del formulario (evento Unload).

Código: [Seleccionar]
Me!UnControl.AfterUpdate = ""
Ver Vista presentación. Pros y contras para entender mi paranoia.




Desconectado matasl

  • Nuevo
  • *
  • Mensajes: 1
Re:Asignación de funciones a eventos
« Respuesta #1 en: Agosto 28, 2020, 05:29:41 pm »
Buenos días.

Muchas gracias por los artículos que publicas, para los que estamos en pañales en access, nos son de mucha utilidad.

He llegado hasta acá buscando y leyendo información respecto a la consulta que hice y que muy amablemente atendiste en:

http://www.mvp-access.com/foro/topic85459_post514181.html#514181

Cada momento estoy un paso mas adelante en lograr ese procedimiento para asignar una función a un boton y utilizar una variable pública para almacenar el valor en el momento de pedir el informe (no es nada fácil, pues en una escala de 1 a 10 yo estoy en 2 y eso de strUnaVariable = Me!UnCampo me cuesta mucho interpretarlo).

Bendiciones