Access - Los eventos al clicar se ejecutan varias veces

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Los eventos al clicar se ejecutan varias veces

Publicado por Beni (23 intervenciones) el 02/05/2013 09:25:09
Tengo un problema con los eventos de Access. Uso Access 2000 para programar. Desconozco si es un problema conocido y ya arreglado en nuevas versiones, o sigue pasando actualmente

Tengo varios controles. Todos ellos quiero que ejecuten un mismo código al clicar sobre ellos. Asi que en el evento click les he puesto:
=Metodo
donde 'Metodo' es un procedimiento público escrito en visual basic.

Pero, Al abrir el formulario y clicar sobre el control, el evento se ejecuta mas de una vez, provocando que la ejecución no sea correcta. No es problema del codigo, aun siendo un método vacío o sin complejidades, el método me lo llama dos veces.
Por ejemplo, el siguiente método se ejecuta dos veces al usar el evento click:

Public Sub Metodo()
Debug.Print "Ejecutando método"
End Sub

Cualquiera con Access puede probarlo. Solo tiene que crear un control, y añadirle "=Metodo" en el evento click, y dentro del codigo crear un evento (como el de encima por ejemplo), y probarlo.

Ojalá alguien sepa de que trata y/o pudiera darme una solución a ello.
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

Los eventos al clicar se ejecutan varias veces

Publicado por jose (830 intervenciones) el 02/05/2013 14:13:24
en el evento clic del objeto pon "procedimiento de evento"

y luego te crea un procedimiento por ejemplo

Private Sub Etiqueta66_Click()
Metodo

rem --- y despues lleva el foco a otro objeto ejemplo

cajatxt.setfocus


end sub
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
sin imagen de perfil
Val: 2
Ha aumentado su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Los eventos al clicar se ejecutan varias veces

Publicado por Beni (23 intervenciones) el 02/05/2013 15:25:52
Es verdad que si usamos el procedimiento de evento y hacemos desde ese método la llamada funciona bien.

pero lo que yo estaba buscando era algo mas elegante, puesto que tengo muchísimos controles y preferiría no tener que ensuciar con montones de procedimientos de evento el codigo, habiendo la posiiblidad que todos los eventos se pudieran redirigir a un mismo método sin necesidad de usar el método dentro del procedimiento de evento
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

Los eventos al clicar se ejecutan varias veces

Publicado por jose (830 intervenciones) el 03/05/2013 13:03:23
en el propio PROCEDIMIENTO metodo al final ponle una instruccion de cambio del foco a otro objeto,

forms![nombre-formulario]![nombre-objeto].setfocus
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
sin imagen de perfil
Val: 2
Ha aumentado su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Los eventos al clicar se ejecutan varias veces

Publicado por Beni (23 intervenciones) el 06/05/2013 16:33:58
Esa opción ya la probé cuando lo comentaste en la primera respuesta. pero no funcionó.

Aun moviendo el foco me sigue repitiendo la ejecución del método varias veces...
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
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Los eventos al clicar se ejecutan varias veces

Publicado por Norberto (753 intervenciones) el 07/05/2013 09:27:13
Hola.

Acabo de probarlo y:

1. Si pongo "=Método" en el evento me lo convierte a "=[Método]" y da error al ejecutar: lógico.

2. Si pongo "=Método()" da error al no existir ninguna función Método, ya que lo he definido con Sub tal y como apuntas tú: lógico también.

3. Si defino la acción con Function funciona perfectamente y sólo se ejecuta una vez.

1
2
3
4
Public Function Método()
    MsgBox "Método"
 
End Function


Lo he hecho con Access 2003 para el evento Al hacer clic de un botón de comando.

Un saludo.
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
sin imagen de perfil
Val: 2
Ha aumentado su posición en 8 puestos en Access (en relación al último mes)
Gráfica de Access

Los eventos al clicar se ejecutan varias veces

Publicado por Beni (23 intervenciones) el 09/05/2013 14:06:14
Pues solución curiosamente correcta.
Me hecho las manos a la cabeza que tan lógica respuesta diera solución a mi problema

En mi caso al usar =Método en el evento no me saltaba ningún error, pero me generaba el problema por el cual escribí el mensaje

Muchas gracias por la ayuda. Suelo preguntar muy poco, pero esta vez la duda me estaba corroyendo por dentro.
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