Beitrag aus SmartTools Access Weekly
Eingabe in einem Access-Formular nach Feldaktivierung ermöglichen
Access 365 2024 2021 2019 2016 2013 2010
FRAGE Wenn ich in einem Access-Formular in ein Feld springe, das schon Daten enthält, wird der gesamte Text markiert und durch eine sofortige Eingabe ersetzt. Ich möchte jedoch den Text ergänzen und sofort weiterschreiben - das funktioniert aber erst nach Mausklick an das Ende des Textes oder durch Betätigung von F2. Ich möchte jedoch sofort weiterschreiben, ohne F2 oder die Maus bedienen zu müssen - ist das möglich?
Diverse Anfragen
ANTWORT Das Verhalten bei Aktivierung eines Feldes können Sie in den Optionen, Bereich "Clienteinstellungen" bzw. "Erweitert", Abschnitt "Bearbeiten", unter "Cursorverhalten bei Eintritt in Feld" einstellen: Wählen Sie hier "Zum Ende des Feldes gehen". Diese Einstellungen gelten dann für alle Felder in allen Formularen.
Um diese Funktionalität per VBA nur für ein bestimmtes Feld zu erreichen, geben Sie in der Ereignisprozedur "Bei Fokuserhalt" des Feldes folgende Anweisungen ein:
With Me.Feldname
.SetFocus
.SelStart = 99999
.SelLength = 0
End With
"Feldname" ersetzen Sie durch den Namen des gewünschten Feldes. Diese Anweisungen aktivieren das Feld, setzen den Cursor an das Ende des Textes und legen eine Länge von "0" für die Markierung fest, so dass Sie sofort Eingaben vornehmen können. Für das Setzen des Cursors an das Ende des Textes geben wir eine Zeichenposition "99999" an, die in der Regel nicht vorhanden ist - dadurch korrigiert Access die Position automatisch auf das letzte Zeichen und man kann sich die Abfrage der Länge des aktuellen Textes sparen.