Unsere Webseiten benötigen JavaScript. Dies scheint in Ihrem Browser jedoch deaktiviert zu sein.

News & Tipps zu Microsoft Access

Lesen Sie hier einige der besten Beiträge aus SmartTools Access Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Access.

Beitrag aus SmartTools Access Weekly

Ungebundene Steuerelemente korrekt aktualisieren

Access 365 2024 2021 2019 2016 2013 2010

Wenn Sie in Access-Formularen mit ungebundenen Textfeldern arbeiten, kann es passieren, dass diese Textfelder nach einem Datensatzwechsel noch die Inhalte des vorherigen Datensatzes anzeigen. Wir zeigen in diesem Tipp der Woche, wie Sie dieses Aktualisierungsproblem lösen. Beginnen wir dabei mit den Ursachen: In der Eigenschaft "Steuerelementeinhalt" eines ungebundenen Textfeldes "Komplettname" ist beispielsweise folgender Ausdruck eingetragen: =Me.Vorname & " " & Me.Nachname.

Es soll also aus den Feldern "Vorname" und Nachname" der zum Beispiel "Hans Müller" in ein Textfeld eingetragen werden. Wenn nun aber eines oder auch alle Felder keinen Inhalt aufweisen (= NULL), gibt es verschiedene Szenarien: Access weigert sich, den Ausdruck auszuwerten und das ungebundene Textfeld behält seinen ursprünglichen Wert oder Access wertet den Ausdruck korrekt aus, so dass sich beispielsweise bei einem fehlenden Vornamen nur der Feldinhalt "Müller" ergibt. Access zeigt diesen Inhalt aber nicht im ungebundenen Textfeld an, während ein "Debug.Print(Me.Komplettname)" oder "MsgBox Me.Komplettname" einen korrekten Inhalt "Müller" meldet. Es gibt also ein grundsätzliches Aktualisierungsproblem des Feldinhaltes und außerdem mit der Anzeige eines ansonsten korrekten Feldinhaltes.

Im ersten Schritt sorgen Sie dafür, dass der Ausdruck in "Steuerelementeinhalt" immer korrekt ausgewertet werden kann, indem Sie ihn folgendermaßen ändern:

=(Me.Vorname & "") & " " & (Me.Nachname & "")

Durch diese "Verknüpfung" der Feldinhalte mit einer leeren Zeichenkette ergibt sich immer mindestens eine leere Zeichenkette, so dass Probleme aufgrund der Verwendung von NULL nicht mehr auftreten und Feldinhalte wie erwartet aktualisiert werden können.

Sollte das Problem auch hiermit auftreten, gibt es zwei Möglichkeiten. Betrifft dieses Problem nur ein einziges Feld, lösen Sie es folgendermaßen:

  1. Öffnen Sie das Formular in der Entwurfsansicht.
  2. Stellen Sie die Eigenschaft "Beim Anzeigen" auf den Eintrag "[Ereignisprozedur]" ein und klicken Sie auf die Schaltfläche mit den drei Punkten hinter der Eigenschaft.
  3. Geben Sie im sich daraufhin öffnenden VBA-Editor folgende Anweisung ein oder fügen Sie sie bei vorhandenem Code an passender Stelle ein:
Komlettname.Requery
  1. Speichern Sie die Änderungen.

Diese Änderung sorgt bei einem Datensatzwechsel dafür, dass explizit ein "Requery" für das problematische Feld ausgeführt und dadurch zumindest der aktuelle Inhalt gelöscht wird, auch wenn sich anschließend kein neuer Feldinhalt bilden lässt.

Sind mehrere Felder betroffen, gehen Sie wie oben erläutert vor, verwenden aber die folgende Anweisung in der Ereignisprozedur:

Me.Recalc

Diese Anweisung sorgt dafür, dass Access den Inhalt aller berechneten und ungebundenen Textfelder explizit neu berechnet und so ebenfalls zumindest der aktuelle Inhalt gelöscht wird, auch wenn sich anschließend kein neuer Feldinhalt bilden lässt.