Farbiges Suchergebnis im Datenblatt

Nicht nur für Datenblätter, sondern auch für die Endlosansicht ist diese Lösung interessant: Sie erfahren hier, wie Sie die gesuchten Elemente in einer Listenansicht farbig hervorheben und somit das Suchergebnis sehen, ohne die übrigen Einträge herausfiltern zu müssen. Das alles funktioniert dank der bedingten Formatierung von Access.

Wäre es nicht schön, wenn Sie das Suchergebnis in der Datenblattansicht oder in der Endlosansicht gleich farbig hervorheben könnten, statt nur alle gefundenen Einträge anzuzeigen und die übrigen auszublenden (s. Abb. 1) Sicher hat letztere Variante eine Daseinsberechtigung, aber es gibt sicher Anwendungsfälle, in denen Sie einfach mal die gesuchten Elemente neben den übrigen farbig hervorheben möchten.

pic001.png

Abb. 1: Farbig markiertes Suchergebnis

Beispielformular

Um das Beispiel aus der Abbildung zu reproduzieren, brauchen Sie zunächst ein Haupt- und ein Unterformular, wobei das Unterformular sfmArtikel heißt an die Tabelle mit den gewünschten Daten gebunden ist (in diesem Fall an die Tabelle tblArtikel der Südsturm-Datenbank).

Fügen Sie alle Felder zur Entwurfsansicht hinzu und stellen Sie die Standardansicht auf Datenblatt ein. Nun erstellen Sie das Hauptformular frmArtikel und fügen das Unterformular hinzu. Außerdem benötigen Sie ein Feld zur Eingabe des gesuchten Ausdrucks.

Dieses Textfeld benennen Sie txtArtikelsuche. Legen Sie außerdem eine Ereignisprozedur für dieses Steuerelement an, das durch das Ereignis Bei änderung ausgelöst wird (s. Abb. 2).

pic002.png

Abb. 2: Dieses Ereignis sorgt für das Markieren des Suchergebnisses

Erreichen wollen wir eine bedingte Formatierung, wie wir sie auch über den entsprechenden Dialog des Steuerelements einstellen können (s. Abb. 3, hier unter Access 2010). Es soll also ein Ausdruck eingestellt werden, für den der Hintergrund des Steuerelements in diesem Fall orange eingefärbt werden soll.

pic003.png

Abb. 3: So sollen die Eigenschaften der bedingten Formatierung aussehen

Programmierung

Die eigentliche Arbeit erledigt dabei die Prozedur aus Listing 1. Sie deklariert zunächst drei Objekte:

Listing 1: Dynamisches Anpassen der bedingten Formatierung

Private Sub txtArtikelsuche_Change()
    Dim objFormatCondition As FormatCondition
    Dim txt As TextBox
    Dim str As String
    str = Me!txtArtikelsuche.Text
    Set txt = Me!sfmArtikel.Form!Artikelname
    If txt.FormatConditions.Count > 0 Then txt.FormatConditions(0).Delete
    If Not Len(str) = 0 Then
        Set objFormatCondition = txt.FormatConditions.Add(acExpression, acEqual, _
        "[Artikelname] Like ''" & str & "''")
        With objFormatCondition
        .BackColor = 967423
        End With
    End If
    End Sub
  • objFormatCondition: Speichert einen Verweis auf die später angelegte bedingte Formatierung, um deren Eigenschaften einstellen zu können
  • txt: Enthält einen Verweis auf das Steuerelement, dessen bedingte Formatierung geändert werden soll
  • str: Nimmt den Ausdruck auf, der als Kriterium für die bedingte Formatierung dient

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

Workplace

Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar