Access - Event handlers para clases

 
Vista:

Event handlers para clases

Publicado por José Luís (2 intervenciones) el 24/08/2000 00:00:00
En una form con diversos text box, el evento asociado a un evento (digamos, Enter) en cada uno de ellos es el mismo. Por ejemplo, una llamada a una rutina: RutinaEnterGeneral , pasándole algún paramtero (por ejemplo Me). Si tengo, por ejemplo, 40 text boxes, ¿tengo que crear los 40 event handlers?.

En otros lenguajes se pueden definir event handlers para clases. Cuando se produce un evento en un widget o control perteneciente a una clase, primero se ejecuta la rutina ligada a la clase, y luego, si existe, la que está ligada al widget o contrl en particular. ¿Pueden las forms de Access o VBA funcionar de forma similar?.

Análogamente, ¿Hay forma de añadir nuevas propiedades y eventos a una clase existente (por ejemplo, text box?. Y, ¿hay forma de quitar o modificar el comportamiento de un text box... o está embebido en Access y no se puede tocar....?

gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Event handlers para clases

Publicado por Alejandro (4142 intervenciones) el 13/04/2023 22:39:50
En Access y VBA, es necesario crear un controlador de eventos para cada control en la form. Sin embargo, puede automatizar este proceso usando un bucle For Each para recorrer todos los controles en la form y agregar el controlador de eventos de manera dinámica. Por ejemplo:

1
2
3
4
5
6
7
8
9
Private Sub Form_Load()
    Dim ctl As Control
 
    For Each ctl In Me.Controls
        If TypeOf ctl Is TextBox Then
            AddHandler ctl.Enter, AddressOf RutinaEnterGeneral
        End If
    Next ctl
End Sub

Esto agregará automáticamente el controlador de eventos "Enter" a todos los TextBox en la form.

En cuanto a la creación de eventos y propiedades personalizados para los controles existentes, no es posible hacerlo directamente en Access o VBA. Sin embargo, puede crear controles personalizados utilizando tecnologías como ActiveX y luego usarlos en sus formularios de Access.

Respecto a la posibilidad de modificar el comportamiento de un TextBox, hay varias formas de hacerlo. Puede cambiar las propiedades del control, agregar controladores de eventos personalizados, utilizar funciones de validación para controlar lo que se ingresa en el control, entre otros métodos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar