thomas17

Keypress Eingaben an anderes Steuerelement weiterleiten, wie ?

VBA in Acess2003 Formular

Mit Steuerelementname_Keypress/Ascii as Integer) kann bekanntlich die Tastatureingabe bei einem Steuerelement abgefangen werden und für dieses Steuerelement verändert.
Jetzt habe ich jedoch das Problem, dass ich eingaben die (versehentlich) bei einem Steuerelement gemacht wurden sofort an ein anderes weiterleiten will, Ich habe folgendes probiert.

Private Sub listIdent2_KeyPress(KeyAscii As Integer)
If (KeyAscii >= 48) And (KeyAscii <= 57) Then
Me.txtBarcode.SetFocus
Me.txtBarcode.Text = Chr(KeyAscii)
End If
End Sub

Das Problem dabei ist, dass die Anweisung Me.txtBarcode.Text erst ausgeführt wird, nachdem alle KeyPress Ereignisse verarbeitet wurden ... es sollte aber zuvor ausgeführt werden. Ich kann jedoch Me.txtBarcode.Text nicht for dem SetFocus Befehl setzen, weil dann Access meckert, dass ein Textfeld das nicht den Focus hat nicht verändert werden kann. Lasse ich die Zeile Me.txtBarcode.Text einfach weg, dann wird das erste Zeichen einfach verschluckt und im txtBarcode-Feld steht nur alles ohne das erste Zeichen ---- meine Aufgabe ist es jetzt dieses erste Zeichen vorne ans txtBarcode-Feld anzufügen ---- wie geht das ? also quasi das KeyAscii von listIdent2_KeyPress wieder freigeben und erneut als erstes Zeichen der Warteschlange nun auf txtBarcode loslassen.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 141718

Url: https://administrator.de/forum/keypress-eingaben-an-anderes-steuerelement-weiterleiten-wie-141718.html

Ausgedruckt am: 03.06.2025 um 08:06 Uhr

77559
77559 29.04.2010 um 11:54:46 Uhr
Goto Top
Hallo Thomas,

wenn der Barcode mit einem Return abschließt oder eine festgelegte Anzahl Stellen hat, sammel doch alle Keypresses und gib sie erst weiter wenn der Barcode vollständig ist.

Gruß
LotPings
Thomas17
Thomas17 29.04.2010 um 17:13:48 Uhr
Goto Top
danke, hab ich gemacht -- hatte aber "Nebenwirkungen" --- hab dann mit Formularweiter Variable gearbeitet die ich Tastaturpuffer nannte und das erstee Zeichen aufgenommen hat. Danach wie oben beschrieben mit SetFocus. Und dort die Variable vorne angestellt wenn das Enter (KeyAscii 13) kommt.

Nebenwirkungen hatten gerade mit dem mehr als einen Tastendruck und Enter im falschen Steuerelement zu tun .. wäre jetzt zu langatmig das zu erklären.