Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/02/2011, 10h13   #1
Membre du Club
 
Inscription : août 2008
Messages : 86
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 86
Points : 43
Points : 43
Par défaut Différencier clic et double clic

Bonjour à tous,

J'aimerais utiliser à la fois la propriété "onclick" et la propriété "ondblclick" d'un contrôle. Or quand je double clique, access lance d'abord la fonction sur la propriété onclick, puis la fonction sur la propriété ondblclick.

J'ai essayé d'utiliser des variables globales pour différencier ces deux éléments, mais ca ne marche pas, je pense que je devrais utiliser des timers mais j'ai du mal à voir comment faire.

Quelqu'un a t il déja été confronté à ce problème?

Merci d'avance,

GL

PS:

Je précise que j'ai essayé d'adapter ce code...

http://support.microsoft.com/?scid=k...9865&x=11&y=16

Mais sans aucun succès, il m'est renvoyé des erreurs "impossible d'accéder au kernell", et access ne comprend pas le "timer1.interval"...
Glherbier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 15h53   #2
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
Pour faire la différence entre les deux je déplace le code de l'évènement click du controle à l'évènement doubleclick du formulaire ce qui me donne un fonctionnement différent pour le double click dans le contrôle ou dans le sélecteur d'enregistrement
Effectivement, je ne suis pas arrivé à ne pas exécuter l'évènement click en cas de doubleclick
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 16h00   #3
Membre du Club
 
Inscription : août 2008
Messages : 86
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 86
Points : 43
Points : 43
D'accord, sauf que la fonction appelée dans mon formulaire dépend du contrôle...

Par exemple si je clique sur le controle_3, j'appelle fonction(3). De même pour le double clic, ou j'appelle fonction2(3).

J'en arrive à penser que c'est insoluble avec des techniques simples...
Glherbier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 17h08   #4
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
l'évènement doubleclick du formulaire permet quand même de faire référence au contrôle_3 et à sa valeur pour l'enregistrement courant
Sinon, j'utilise des petits boutons de commande (avec un + comme "caption") situés juste à coté de la zone de texte
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 18h16   #5
Membre habitué
 
Inscription : janvier 2006
Messages : 99
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : janvier 2006
Messages : 99
Points : 101
Points : 101
Hello !

Il y a très longtemps, j'avais fait une bidouille pour gérer ce cas. L'idée est la suivante : sur un simple clic, je fixe une variable à Vrai. Sur double-clic, je fixe cette même variable à faux.
Ensuite, sur le simple clic, je ne mets aucun code, par contre sur le double clic j'effectue mon code normalement.
Ensuite je paramètre l'évènement Timer pour qu'il se déclenche toutes les secondes. Sur cette évenèmement, je teste ma variable. Si elle est à Vrai, j'effectue alors le code prévu pour le simple clic (et je remets ma variable à Faux).
Ainsi, si un utilisateur fait un double clic, le programme met la variable à Vrai mais la remet à Faux instantanément et le code du simple clic sur le Timer ne s'exécute pas. S'il ne fait qu'un simple clic, le code s'exécute avec un léger décalage dans le temps (on ne peut pas tout avoir)

Bon, évidemment, je n'avais qu'un seul bouton à gérer et c'était plus simple que ton cas, mais c'est une piste à explorer, je pense.

Cordialement,
Aegnor est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/02/2011, 19h16   #6
Membre du Club
 
Inscription : août 2008
Messages : 86
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 86
Points : 43
Points : 43
En effet... En y réfléchissant, je pense que dans mon cas précis la solution consiste à passer par une variable globale mais non booléenne, et un timer.

Le timer déclenche une action toutes les secondes.

Quand l'utilisateur clique sur un controle, il appelle une fonction qui inscrit le nom du controle (ou des arguments liés à ce contrôle) dans la variable globale.

Au double clic access exécute la fonction liée à ce double clic.
A la fin de cette fonction on remet la variable globale à 0.

Tous les 1 secondes (par exemple), access regarde la valeur de la variable globale. Si elle est différente de 0, il exécute le code avec en paramètre des arguments liés au contrôle sur lequel l'utilisateur a cliqué. A la fin du script, la variable globale est remise à 0.

Je vais tenter cela... Cela devrait marcher j'espère dans la majorité des cas (bien qu'on ait peut etre des cas particuliers si l'utilisateur double clic juste au moment du timer).
Glherbier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h47.


 
 
 
 
Partenaires

Hébergement Web