Hallo Zusammen,
ich habe ein Win 8 Tablett und möchte in einem Formular zahlen erfassen. Da ich das mit dicken Fingern >:( machen muss, dachte ich, dass ich einfach 10 Schaltflächen einbaue und via Sendkey die Zahlen in mein Textfeld übertrage.
Pustekuchen!
Das Textfeld verliert natürlich den Fokus und deshalb landet die Zahl vermutlich im Nirwana. Da ich schon seit Jahren nicht mehr programmiert habe und von Access 2003 auf 2013 umgestiegen bin, bin ich ganz schön überfordert. Alles ist neu ;O(
vielleicht kann mir ja jemand einen Tipp geben.
viele Grüße
Bernd
Hallo,
Sendkey ist hier völlig fehl am Platz und ohnehin zu vermeiden.
Nimm eine Optionsgruppe zur Darstellung der Buttons und übergebe die Werte per VBA an das Eingabefeld.
Im Anhang ein einfaches Beispiel.
Das sollte noch um eine Rücktaste und eine Löschfunktion erweitert werden, wegen Fehleingaben.
Hallo Klaus,
es hat ein wenig gedauert, bis ich verstanden habe, wie es funktioniert, aber es ist eine klasse Lösung.
Jetzt hätte ich nur noch eine Frage: Ich möchte mit diesem NumPad verschiedene Textfelder füllen können, je nachdem in welchem der Curser stand bevor er eine Nummer gedrückt hat. (Halt wie eine richtige Tastatur) wie löst man das elegant?
Ein anderes Problem ist aufgetaucht. Ich kann jede Taste nur einmal hintereinander betätigen. Das tritt sowohl beim Ereignis "nach Aktualisierung" als auch "beim Klicken" auf. D.h. ich kann keine Zahl "111" tippen.
Anwas kann denn sowas liegen?
Vielen Dank bis dahin ;O)
Bernd
Hallo,
zu mehren Textfeldern:
Ändere MzKlMu's Beispiel wie folgt ab.
Benenne das vorhanden Textfeld um in Textfeld1 und lege ein weiteres Feld an mit dem Namen Textfeld2
Dann ändere den Code im Beispiel wie folgt ab
Option Compare Database
Option Explicit
Public Feldname As String
Private Sub Form_Open(Cancel As Integer)
Me.Rahmen0 = Null
Feldname = "Textfeld1"
End Sub
Private Sub Rahmen0_AfterUpdate()
Me.Controls(Feldname) = Me.Controls(Feldname) & Me.Rahmen0
Me.Rahmen0 = Null
End Sub
Private Sub Textfeld1_GotFocus()
Feldname = "Textfeld1"
End Sub
Private Sub Textfeld2_GotFocus()
Feldname = "Textfeld2"
End Sub
Zum anderen Problem kann ich nichts sagen, ich kenne deinen Code nicht - im Beispiel von Klaus funktioniert's einwandfrei.
p.s. das geänderte Beispiel ist im Anhang