OVH Cloud OVH Cloud

KeyDown tracker dans tout le formulaire

4 réponses
Avatar
news21.qc.aira.com
Bonjour !

J'utilise l'événement KeyDown pour tracker la touche F5, voici mon code :

If KeyCode = vbKeyF5 Then
....
End If

Tout fonctionne bien dans un formulaire vide, mais dans le formulaire qui a
tous les champs... dès que le curseur est dans un champ ça ne fonctionne
plus comme s'il bypassait le KeyDown du formulaire.

Y a-t-il un moyen de tracker une touche partout peux importe où on est dans
un formulaire ?

Milles fois merci d'avance !

Jonathan

4 réponses

Avatar
3stone
Salut,

"news21.qc.aira.com"
| J'utilise l'événement KeyDown pour tracker la touche F5, voici mon code :
|
| If KeyCode = vbKeyF5 Then
| ....
| End If
|
| Tout fonctionne bien dans un formulaire vide, mais dans le formulaire qui a
| tous les champs... dès que le curseur est dans un champ ça ne fonctionne
| plus comme s'il bypassait le KeyDown du formulaire.
|
| Y a-t-il un moyen de tracker une touche partout peux importe où on est dans
| un formulaire ?


Ben, c'est justement au niveau du formulaire...


mais, est-ce que tu "annulle" le F5 si détecté ?


If KeyCode = vbKeyF5 Then
....

Keycode = 0 <===== End If



--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
news21.qc.aira.com
Voici mon code :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF5 Then
MsgBox "Touche F5 appuyées"
KeyCode = 0
End If
End Sub

Le problème : dès que je suis dans un champ (le focus) de ce même
formulaire, je presse F5 et ca ne fonctionne pas... Il y aurait comme
solution que dans tous les champs mettre le KeyDown event avec le même
code... mais c'est vraiment pas esthétique...

Est-ce que vous savez pour ca fait ca ?

Merci !

Jo
"3stone" a écrit dans le message de news:
%
Salut,

"news21.qc.aira.com"
| J'utilise l'événement KeyDown pour tracker la touche F5, voici mon code
:
|
| If KeyCode = vbKeyF5 Then
| ....
| End If
|
| Tout fonctionne bien dans un formulaire vide, mais dans le formulaire
qui a
| tous les champs... dès que le curseur est dans un champ ça ne fonctionne
| plus comme s'il bypassait le KeyDown du formulaire.
|
| Y a-t-il un moyen de tracker une touche partout peux importe où on est
dans
| un formulaire ?


Ben, c'est justement au niveau du formulaire...


mais, est-ce que tu "annulle" le F5 si détecté ?


If KeyCode = vbKeyF5 Then
....

Keycode = 0 <===== > End If



--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw



Avatar
Eric
Bonjour,

As-tu mis Oui à Aperçu des Touches dans la fenêtre des Propriétés du
formulaire, Onglet Evènement?
En faisant cela, ça devrait marcher.
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Voici mon code :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF5 Then
MsgBox "Touche F5 appuyées"
KeyCode = 0
End If
End Sub

Le problème : dès que je suis dans un champ (le focus) de ce même
formulaire, je presse F5 et ca ne fonctionne pas... Il y aurait comme
solution que dans tous les champs mettre le KeyDown event avec le même
code... mais c'est vraiment pas esthétique...

Est-ce que vous savez pour ca fait ca ?

Merci !

Jo
"3stone" a écrit dans le message de news:
%

Salut,

"news21.qc.aira.com"
| J'utilise l'événement KeyDown pour tracker la touche F5, voici mon code
:
|
| If KeyCode = vbKeyF5 Then
| ....
| End If
|
| Tout fonctionne bien dans un formulaire vide, mais dans le formulaire
qui a
| tous les champs... dès que le curseur est dans un champ ça ne fonctionne
| plus comme s'il bypassait le KeyDown du formulaire.
|
| Y a-t-il un moyen de tracker une touche partout peux importe où on est
dans
| un formulaire ?


Ben, c'est justement au niveau du formulaire...


mais, est-ce que tu "annulle" le F5 si détecté ?


If KeyCode = vbKeyF5 Then
....

Keycode = 0 <===== >> End If



--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw








Avatar
news21.qc.aira.com
Wow ! Ca marche ! Milles fois merci !!!

Jonathan


"Eric" a écrit dans le message de news:

Bonjour,

As-tu mis Oui à Aperçu des Touches dans la fenêtre des Propriétés du
formulaire, Onglet Evènement?
En faisant cela, ça devrait marcher.
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Voici mon code :

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF5 Then
MsgBox "Touche F5 appuyées"
KeyCode = 0
End If
End Sub

Le problème : dès que je suis dans un champ (le focus) de ce même
formulaire, je presse F5 et ca ne fonctionne pas... Il y aurait comme
solution que dans tous les champs mettre le KeyDown event avec le même
code... mais c'est vraiment pas esthétique...

Est-ce que vous savez pour ca fait ca ?

Merci !

Jo
"3stone" a écrit dans le message de news:
%

Salut,

"news21.qc.aira.com"
| J'utilise l'événement KeyDown pour tracker la touche F5, voici mon code
:
|
| If KeyCode = vbKeyF5 Then
| ....
| End If
|
| Tout fonctionne bien dans un formulaire vide, mais dans le formulaire
qui a
| tous les champs... dès que le curseur est dans un champ ça ne
fonctionne
| plus comme s'il bypassait le KeyDown du formulaire.
|
| Y a-t-il un moyen de tracker une touche partout peux importe où on est
dans
| un formulaire ?


Ben, c'est justement au niveau du formulaire...


mais, est-ce que tu "annulle" le F5 si détecté ?


If KeyCode = vbKeyF5 Then
....

Keycode = 0 <===== >>> End If



--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw