Table of contents
TOC
Réduire la table des matières
Développer la table des matières

TextBox.KeyPress, événement (Access)

office 365 dev account|Dernière mise à jour: 04/10/2017
|
1 Contributeur

L'événement KeyPress survient lorsque l'utilisateur appuie et relâche une touche ou une combinaison de touches correspondant à un code ANSI pendant qu'un formulaire ou un contrôle est activé. Cet événement se produit également si vous envoyez une frappe de touche ANSI à un formulaire ou à un contrôle en utilisant l'action EnvoiTouches dans une macro ou l'instruction SendKeys dans Visual Basic.

Syntaxe

expression . KeyPress( KeyAscii )

expression Variable qui représente un objet TextBox.

Paramètres

NomObligatoire/FacultatifType de donnéesDescription
KeyAsciiObligatoireEntierRenvoie un code de touche ANSI numérique. L'argument KeyAscii est passé par référence. Sa modification entraîne l'envoi d'un autre caractère à l'objet. La définition de l'argument KeyAscii sur la valeur 0 annule la frappe. Ainsi, l'objet ne sait pas que vous appuyez sur une touche.

Remarques

Pour exécuter une macro ou une procédure événementielle au cours de cet événement, 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.

Si vous attribuez Oui à la propriété KeyPreview du formulaire, ce formulaire recevra également tous les événements de clavier, même ceux qui s'appliquent aux contrôles. Dans ce cas, tous les événements de clavier ont d'abord lieu pour le formulaire et ensuite pour le contrôle actif. Vous pouvez répondre à des séquences de touches spécifiques dans le formulaire, quel que soit le contrôle actif. Par exemple, vous pourriez souhaiter que la combinaison de touches CTRL+X exécute toujours la même action dans un formulaire.

Si vous appuyez sur une touche ANSI et la maintenez enfoncée, les événements KeyDown et KeyPress se produisent de façon discontinue ( KeyDown, KeyPress, KeyDown, KeyPress et ainsi de suite) jusqu'à ce que vous relâchiez la touche, ensuite l'événement KeyUp se produit.

Un événement KeyPress peut porter sur n'importe quel caractère imprimable du clavier, la touche CTRL suivie d'une lettre de l'alphabet ou d'un caractère spécial, et la touche ENTRÉE ou RETOUR ARRIÈRE. Vous pouvez utiliser les procédures événementielles KeyDown et KeyUp pour prendre en charge les séquences de touches non reconnues par l'événement KeyPress, telles que les touches de fonction, de déplacement, ainsi que leurs combinaisons avec des modificateurs (ALT, MAJ ou CTRL). Contrairement aux événements KeyDown et KeyUp, l'événement KeyPress n'indique pas l'état physique de la touche du clavier. En revanche, il détermine le caractère ANSI correspondant à la touche ou à la combinaison de touches activée.

L'événement KeyPress interprète la majuscule et la minuscule de chaque caractère en tant que codes de touche, c'est-à-dire en tant que caractères distincts.

Remarque La touche RETOUR ARRIÈRE fait partie du jeu de caractères ANSI, mais pas la touche SUPPR. Si vous supprimez un caractère dans un contrôle à l'aide de la touche RETOUR ARRIÈRE, vous déclenchez l'événement KeyPress, mais pas si vous utilisez la touche SUPPR.

Les événements KeyDown et KeyPress surviennent lorsque vous enfoncez ou 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 touche. Si une frappe de touche désactive un contrôle au profit d'un autre, l'événement KeyDown survient 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 :

Current (pour le nouvel enregistrement)

?

Enter (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)

?

Change (pour le contrôle s'il s'agit d'une zone de texte ou d'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 cet exemple, ajoutez la procédure événementielle suivante à un formulaire contenant une zone de texte intitulé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

Voir aussi

Concepts

Objet TextBox

Autres ressources

© 2018 Microsoft