thomas17
Goto Top

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.

Content-Key: 141718

Url: https://administrator.de/contentid/141718

Printed on: April 23, 2024 at 20:04 o'clock

Mitglied: 77559
77559 Apr 29, 2010 at 09:54:46 (UTC)
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
Member: Thomas17
Thomas17 Apr 29, 2010 at 15:13:48 (UTC)
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.