Freigeben über


Form.KeyPress-Ereignis (Access)

Das KeyPress-Ereignis tritt auf, wenn der Benutzer eine Taste oder Tastenkombination drückt und loslässt, die einem ANSI-Code entspricht, während ein Formular oder Steuerelement über den Fokus verfügt. Dieses Ereignis tritt außerdem auf, wenn Sie einen ANSI-Tastenanschlag mithilfe der SendKeys-Aktion in einem Makro oder der SendKeys-Anweisung in Visual Basic an ein Formular oder Steuerelement senden.

Syntax

Ausdruck. KeyPress (KeyAscii)

expression Eine Variable, die ein Form-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
KeyAscii Erforderlich Integer Es wird ein numerischer ANSI-Tastencode zurückgegeben. Das KeyAscii-Argument wird als Verweis übergeben; wenn es geändert wird, wird ein anderes Zeichen an das Objekt gesendet. Durch Festlegen des KeyAscii-Arguments auf 0 wird der Tastenanschlag abgebrochen, sodass vom Objekt nicht erkannt wird, dass eine Taste gedrückt wurde.

Hinweise

Wenn beim Auftreten dieses Ereignisses ein Makro oder eine Ereignisprozedur ausgeführt werden soll, legen Sie die OnKeyPress-Eigenschaft auf den Namen des Makros oder auf [Ereignisprozedur] fest.

Das Objekt, das den Fokus hat, empfängt alle Tastenanschläge. Ein Formular kann den Fokus nur dann haben, wenn es keine Steuerelemente enthält oder alle seine sichtbaren Steuerelemente deaktiviert sind.

Ein Formular empfängt darüber hinaus alle Tastaturereignisse, d. h. auch die, die für Steuerelemente eintreten, wenn Sie die KeyPreview-Eigenschaft des Formulars auf "Ja" festlegen. Mit dieser Eigenschafteneinstellung treten alle Tastaturereignisse zuerst für das Formular und dann für das Steuerelement mit dem Fokus ein. Sie können unabhängig davon, welches Steuerelement den Fokus hat, auf bestimmte auf dem Formular gedrückte Tasten reagieren. Sie können z. B. festlegen, dass mit der Tastenkombination STRG+X auf einem Formular immer dieselbe Aktion ausgeführt werden soll.

Wenn Sie eine ANSI-Taste drücken und gedrückt halten, treten die Ereignisse KeyDown und KeyPress wiederholt abwechselnd auf (KeyDown, KeyPress, KeyDown, KeyPress usw.), bis Sie die Taste loslassen. Dann tritt das KeyUp-Ereignis auf.

An einem KeyPress-Ereignis können alle druckbaren Tastaturzeichen, die STRG-Taste in Kombination mit einem Zeichen aus dem Standardalphabet oder einem Sonderzeichen sowie die EINGABETASTE und die RÜCKTASTE beteiligt sein. Verwenden Sie die KeyDown - und KeyUp-Ereignisprozeduren , um alle Tastatureingaben zu behandeln, die vom KeyPress-Ereignis nicht erkannt werden, z. B. Funktionstasten, Navigationstasten und beliebige Kombinationen dieser Tasten mit Tastaturmodifizierern (ALT-, UMSCHALT- oder STRG-Tasten). Im Gegensatz zu den Ereignissen KeyDown und KeyUp gibt das KeyPress-Ereignis nicht den physischen Zustand der Tastatur an; es gibt stattdessen das ANSI-Zeichen an, das der gedrückten Taste oder Tastenkombination entspricht.

Durch KeyPress wird die groß bzw. klein geschriebene Version jedes Zeichens als eigenständiger Tastencode und damit als zwei separate Zeichen interpretiert.

Hinweis

Die RÜCKTASTE gehört zum ANSI-Zeichensatz, die ENTF-TASTE dagegen nicht. Wenn Sie in einem Steuerelement ein Zeichen mithilfe der RÜCKTASTE löschen, verursachen Sie ein KeyPress-Ereignis, wenn Sie ENTF verwenden jedoch nicht.

Das KeyDown- und das KeyPress-Ereignis tritt nicht ein, wenn Sie eine ANSI-Taste drücken oder senden. Das KeyUp-Ereignis tritt nach jedem Ereignis für ein Steuerelement auf, das durch das Drücken oder Senden einer Taste ausgelöst wurde. Wenn ein Tastenanschlag bewirkt, dass der Fokus von einem Steuerelement an ein anderes abgegeben wird, tritt für das erste Steuerelement das KeyDown -Ereignis auf, während für das zweite Steuerelement die Ereignisse KeyPress und KeyUp auftreten.

Wenn Sie z. B. zu einem neuen Datensatz gehen und in das erste Steuerelement des Datensatzes ein Zeichen eingeben, treten die folgenden Ereignisse ein:

  • Current (für den neuen Datensatz)
  • Enter (für das erste Steuerelement des neuen Datensatzes)
  • GotFocus (für das Steuerelement)
  • KeyDown (für das Steuerelement)
  • KeyPress (für das Steuerelement)
  • BeforeInsert (für den neuen Datensatz im Formular)
  • Change (für das Steuerelement, wenn es sich um ein Textfeld oder Kombinationsfeld handelt)
  • KeyUp (für das Steuerelement)

Beispiel

Im folgenden Beispiel wird Text, der in ein Textfeld eingegeben wird, während der Eingabe zeichenweise in Großbuchstaben konvertiert.

Um das Beispiel auszuprobieren, fügen Sie die folgende Ereignisprozedur zu einem Formular hinzu, das ein Textfeld mit dem Namen ShipRegion enthält.

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

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.