Événement ComboBox.KeyPress (Access)
L'événement KeyPress se produit lorsque l'utilisateur appuie puis relâche une touche ou une combinaison de touches correspondant à un code ANSI pendant qu'un formulaire ou un contrôle a le focus. Cet événement se produit également si vous envoyez une séquence de touches ANSI à un formulaire ou un contrôle à l'aide de l'action EnvoiTouches dans une macro ou l'instruction SendKeys dans Visual Basic.
Syntaxe
expression. KeyPress (KeyAscii)
Expression Variable qui représente un objet ComboBox .
Parameters
Nom | Requis/Facultatif | Type de données | Description |
---|---|---|---|
KeyAscii | Obligatoire | Entier | Renvoie un code de touche ANSI numérique. L'argument KeyAscii est passé par référence ; sa modification entraîne l'envoi d'un caractère différent à l'objet. Régler l'argument KeyAscii sur 0 annule la pression de touches, de sorte que l'objet ne sait pas qu'une touche a été pressée. |
Remarques
Pour exécuter une macro ou une procédure événementielle lorsque cet événement se produit, définissez la propriété OnKeyPress sur le nom de la macro ou [procédure événementielle].
L'objet actif reçoit toutes les frappes de touches. Un formulaire n'est actif que s'il ne contient pas de contrôles ou si tous ses contrôles visibles sont désactivés.
Formulaire recevra également tous les événements de clavier, même ceux qui s'appliquent aux contrôles, si vous définissez la propriété KeyPreview du formulaire sur Oui. Dans ce cas, tous les événements de clavier ont d'abord lieu pour le formulaire et ensuite pour le contrôle qui a le focus. Vous pouvez répondre à des séquences de touches dans le formulaire, quels que soient les contrôle a le focus. Par exemple, vous pouvez souhaiter que la combinaison de touches Ctrl+X effectue toujours la même action sur un formulaire.
Si vous appuyez de façon longue sur une touche ANSI, les événements KeyDown et KeyPress alternent de façon répétée (KeyDown, KeyPress, KeyDown, KeyPress, etc.) jusqu’à ce que vous relâchez la touche, puis l’événement KeyUp se produit.
Un événement KeyPress peut impliquer n’importe quel caractère clavier imprimable, la touche Ctrl combinée à un caractère de l’alphabet standard ou un caractère spécial, et la touche Entrée ou Retour arrière. Utilisez les procédures événementielles KeyDown et KeyUp pour gérer les frappes de touches non reconnues par l’événement KeyPress , telles que les touches de fonction, les touches de navigation et toutes les combinaisons de ces touches avec des modificateurs clavier (touches Alt, Maj ou Ctrl). Contrairement aux événements KeyDown et KeyUp, l'événement KeyPress n'indique pas l'état physique du clavier ; au lieu de cela, elle indique le caractère ANSI correspondant à la touche enfoncée ou combinaisons de touches.
L'événement KeyPress interprète la majuscule et la minuscule de chaque caractère en tant que codes de touche distincts et, par conséquent, en tant que caractères distincts.
Remarque
La touche Retour arrière fait partie du jeu de caractères ANSI, mais pas la touche Supprimer. Si vous supprimez un caractère dans un contrôle à l’aide de la touche Retour arrière, vous provoquez un événement KeyPress ; si vous utilisez la touche Supprimer, ce n’est pas le cas.
Les événements KeyDown et KeyPress se produisent lorsque vous appuyez sur la touche ou que vous envoyez une touche ANSI. L'événement KeyUp se produit après tout événement de contrôle déclenché par la frappe ou l'envoi de la clé. Si un code de touche provoque le focus passer d'un contrôle à un autre contrôle, l'événement KeyDown se produit pour le premier contrôle, tandis que les événements KeyPress et KeyUp se produisent pour le deuxième contrôle.
Par exemple, si vous vous placez sur un nouvel enregistrement et que vous tapez un caractère dans le premier contrôle de cet enregistrement, les événements suivants ont lieu :
- En cours (pour le nouvel enregistrement)
- Entrez (pour le premier contrôle du nouvel enregistrement)
- GotFocus (pour le contrôle)
- KeyDown (pour le contrôle)
- KeyPress (pour le contrôle)
- BeforeInsert (pour le nouvel enregistrement du formulaire)
- Modifier (pour le contrôle s'il s'agit d'une zone de texte ou une zone de liste modifiable)
- KeyUp (pour le contrôle)
Exemple
Cet exemple convertit en majuscules, caractère par caractère, du texte à mesure qu'il est tapé dans une zone de texte.
Pour essayer l’exemple, ajoutez la procédure événementielle suivante à un formulaire qui contient une zone de texte nommée ShipRegion.
Private Sub ShipRegion_KeyPress(KeyAscii As Integer)
Dim strCharacter As String
' Convert ANSI value to character string.
strCharacter = Chr(KeyAscii)
' Convert character to upper case, then to ANSI value.
KeyAscii = Asc(UCase(strCharacter))
End Sub
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.