Textfelder im Griff, Teil II: Markierungen

Textfelder sind eines der wichtigsten Steuerelemente zur Eingabe von Daten. Dementsprechend sollten Sie maximalen Komfort beim Umgang mit Textfeldern gewährleisten. Wie das aussieht Zum Beispiel so, dass der Benutzer so wenig Arbeit wie möglich hat – etwa durch das richtige Positionieren der Einfügemarke beziehungsweise Markierung. Dieser Artikel zeigt, welche Möglichkeiten die Markierung grundsätzlich bietet und wie Sie diese per VBA und mit anderen Einstellungen anpassen können.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1306_TextfelderMarkieren.mdb.

Textfelder markieren

Sie werden es bereits festgestellt haben: Beim Verschieben des Fokus auf ein Textfeld kann es zu verschiedenen Aktionen kommen. Entweder Access markiert den kompletten Inhalt vom ersten bis zu letzten Zeichen oder platziert die Einfügemarke ganz vorn oder ganz hinten im Textfeld. Ist das Textfeld leer, landet die Einfügemarke natürlich immer an der gleichen Stelle.

Wussten Sie, dass Sie dieses Verhalten beeinflussen können Es gelingt ganz einfach: Sie brauchen nur eine Einstellung in den Access-Optionen vorzunehmen. Diese finden Sie etwa unter Access 2010, wenn Sie den Befehl Optionen im Datei-Menü auswählen und dann im Optionen-Dialog zum Bereich Clienteinstellungen wechseln.

Dort finden Sie die Option Cursorverhalten bei Eintritt in Feld mit den folgenden Einstellungen (siehe Bild 2):

Beim Wechsel in ein Textfeld markiert Access den kompletten Inhalt.

Bild 1: Beim Wechsel in ein Textfeld markiert Access den kompletten Inhalt.

  • Ganzes Feld markieren
  • Zum Anfang des Feldes gehen
  • Zum Ende des Feldes gehen

Beim Wechsel zum Textfeld aus Bild 1 war beispielsweise die Option Ganzes Feld markieren eingestellt.

Einstellungen für das Verhalten beim Eintritt in ein Feld

Bild 2: Einstellungen für das Verhalten beim Eintritt in ein Feld

Damit kommen wir nun gleich zu einem wichtigen Punkt: Die Einstellung, die Sie in den Access-Optionen vornehmen, gilt für die aktuelle Sitzung und für alle von nun an begonnenen Sitzungen. Access erweckt zwar den Eindruck, dass man die Anwendung neu starten müsste, damit die änderung wirkt, aber dies ist nicht der Fall – wenn Sie etwa wünschen, dass die Einfügemarke beim Eintreten in ein Feld gleich am Ende des Inhalts landet, dann geschieht dies nach dem Einstellen der Option auf den Wert Zum Ende des Feldes gehen auch. Sollten Sie jedoch parallel weitere Access-Instanzen geöffnet haben, wirkt sich die änderung der Option nicht darauf aus.

Eintrittsverhalten per VBA

Sie können diese Eigenschaft auch per VBA einstellen. Um dies zu veranschaulichen, haben wir die notwendigen Codezeilen im Formular frmTextfeldmarkierungen untergebracht. Die Optionsgruppe ogrCursorverhalten aus Bild 3 hat drei Optionen mit den Werten 0, 1 und 2.

Einstellen des Cursorverhaltens per Formular/VBA

Bild 3: Einstellen des Cursorverhaltens per Formular/VBA

Die meisten Optionen von Access können Sie mit dem VBA-Befehl Get-Option einlesen und mit SetOption schreiben – so auch in diesem Fall. Dies nutzen wir zunächst beim öffnen des Formulars, um den Wert der Optionsgruppe entsprechend einzustellen. Dies erledigt die Ereignisprozedur, die durch das Ereignis Beim Laden ausgelöst wird (Eigenschaft auf [Ereignisprozedur] einstellen, dann auf die Schaltfläche mit den drei Punkten klicken und die im VBA-Editor erscheinende Prozedur ergänzen) – siehe Listing 1.

Private Sub Form_Load()
     Me!ogrCursorverhalten = GetOption("Behavior Entering Field")
End Sub

Listing 1: Cursorverhalten abfragen und darstellen

Wenn Sie die Option nun ändern, soll diese gleich in die entsprechende Access-Option übertragen werden. Dazu benötigen wir eine weitere Prozedur, die diesmal durch das Ereignis Nach Aktualisierung der Optionsgruppe ogrCursorverhalten ausgelöst wird (siehe Listing 2).

Private Sub ogrCursorverhalten_AfterUpdate()
     SetOption "Behavior Entering Field", Me!ogrCursorverhalten
End Sub

Listing 2: Cursorverhalten per VBA einstellen

Beim Einstellen der Option bleibt immerhin der Hinweis von Access aus, dass die Anwendung erst neu gestartet werden muss, damit die Option wirksam wird.

Nicht optimal

Ein Problem bleibt jedoch bestehen: Die änderung bezieht sich jeweils auf den aktuellen Rechner, und sie wirkt sich auch auf alle im Anschluss geöffneten Access-Anwendungen aus. Am besten wäre es daher, man würde gleich zu Beginn prüfen, welchen Wert die Option aktuell besitzt, den eigenen, gewünschten Wert per VBA einstellen und diesen anschließend auf den vorgefundenen Wert zurücksetzen.

Das hört sich wirklich kompliziert an und ist in vielen Fällen auch gar nicht nötig. Otto Normalverbraucher ist in der Regel mit den Standardeinstellungen zufrieden, und für Sonderfälle gibt es wesentlich elegantere Lösungen. Und damit können Sie das Verhalten der Einfügemarke in Textfeldern sogar noch viel genauer steuern!

Handbetrieb

Falls Sie es noch nicht wussten: Es gibt natürlich auch für den Benutzer genügend Möglichkeiten, die Markierung beziehungsweise die Position der Einfügemarke anzupassen:

  • Ein Doppelklick in den Text markiert das aktuelle Wort komplett.
  • Ein einfacher Klick auf das komplett markierte Textfeld hebt die Markierung auf und positioniert die Einfügemarke an der angeklickten Stelle.
  • F2 hebt die aktuelle Markierung auf und platziert die Einfügemarke am Ende des Textes oder markiert den kompletten Text, sofern dieser aktuell nicht komplett markiert ist.
  • Bei gedrückter Umschalttaste und den Tasten Nach links und Nach rechts erweitern Sie die aktuelle Markierung entsprechend.
  • Bei gleichzeitig gedrückter Strg-Taste wird die Markierung jeweils um ein Wort erweitert (also bis zum nächsten Leerzeichen beziehungsweise bis zum Ende des Textes).

Lokale Einstellung

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar