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.
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.
Please also mark the comments that contributed to the solution of the article
Content-Key: 141718
Url: https://administrator.de/contentid/141718
Printed on: April 23, 2024 at 20:04 o'clock
2 Comments
Latest comment
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
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