Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
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 15/12/2011, 17h08   #1
Nouveau Membre du Club
 
Inscription : décembre 2009
Messages : 113
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 113
Points : 25
Points : 25
Par défaut différencier un double-click d'un click simple

Bonjour,

Dans certains champs d'un formulaire, j'ai défini un évènement double-click qui ouvre un autre formulaire.

Par la suite, j'ai défini un évènement click pour ces champs qui ouvre le cas échéant un message d'alerte.

Je pensais que access, selon la rapidité du double clic ferait le distinguo entre les 2 évènements.
Et non, mon double clic ne passe plus, c'est toujours l'évènement click qui est pris en compte.

Y a t-il une astuce pour contourner ça ?
Merci
atech est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 18h40   #2
Membre du Club
 
Inscription : août 2007
Messages : 101
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : août 2007
Messages : 101
Points : 56
Points : 56
Bonjour,

Je viens de m'en rendre compte également. Mais je crois que nous devons être les seuls à ne pas l'avoir su avant.

Bref,
Je me suis creusé la tête et j'ai trouvé une astuce en temporisant les évènements click dans l'évènement timer. Les évènements Dblclick passent une variable module à True ce empêche l'exécution du code timer. Au bout de 100/1000 secondes, si la variable Dblclick est toujours à false, alors le code s'exécute. Après ce délai, l'ensemble des variables est remis à zéro, y compris TimerInterval.
La limite c'est que si dans les paramètres Windows le double click dure plus de 100/1000 ça, ça ne marchera pas...

C'est une petite usine à gaz, mais ça me suffit pour le peu que j'en fait.

Cordialement.
___________________________________
En clair ça donne ça :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Option Compare Database
Dim DBLCLICK As Boolean
 
Private Sub CONTROLE_Click()
Me.TimerInterval = 100
End Sub
 
Private Sub CONTROLE_DblClick(Cancel As Integer)
DBLCLICK = True
MsgBox "Double Click"
End Sub
 
Private Sub Form_Timer()
If DBLCLICK = False Then MsgBox "Click"
DBLCLICK = False
Me.TimerInterval = 0
End Sub
JMPS.VBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 20h27   #3
Membre éclairé
 
Homme Christophe AUMOITTE
Inscription : octobre 2009
Messages : 257
Détails du profil
Informations personnelles :
Nom : Homme Christophe AUMOITTE
Âge : 43
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : octobre 2009
Messages : 257
Points : 303
Points : 303
Bonsoir à tous,

J'ai également eu ce problème avec certains PC sur lesquel je mettais mes applications 2003.
Pour le coup, l'execution du code du double-click est désormais sur le click droit de la souris.

Une solution comme une autre.

Cordialement

Christophe
marsouin_89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h17.


 
 
 
 
Partenaires

Hébergement Web