André Minhorst, Duisburg
Bis zum Erscheinen von Access 2000 war einer der größten Wünsche der Access-Gemeinde die Formatierung einzelner Daten in Abhängigkeit von ihrem Inhalt. Dann war es endlich soweit: Microsoft erfüllte den Wunsch und spendierte Access eine Funktion namens Bedingte Formatierung (engl. Conditional Formatting). Damit lassen sich Daten in unterschiedlichen Schriften, Schriftarten oder Hintergrundfarben anzeigen – und das in Formularen und Berichten.
Mit der Einführung der bedingten Formatierung steigert Microsoft die Benutzerfreundlichkeit und Ergonomie von Access-Anwendungen enorm. Die Markierung von Daten mit bestimmten Eigenschaften ermöglicht das Ermitteln von wichtigen Daten aus größeren Datenmengen mit bloßem Auge, wo bisher Suchfunktionen und Abfragen nötig waren.
Wenn Sie beispielsweise gleichzeitig besonders teure und besonders billige Artikel in einem Formular anzeigen möchten, legen Sie einfach zwei Formatierungen für die entsprechenden Preisgrenzen fest – das Resultat zeigt Abb. 1.
Bild 1: Teure Produkte sind fett gedruckt und billige mit einer anderen Hintergrundfarbe markiert.
Der vorliegende Beitrag stellt Ihnen die grundlegende Anwendung der bedingten Formatierung vor und zeigt Ihnen anschließend, wie Sie diese Funktion mit VBA noch flexibler in Ihren Formularen und Berichten einsetzen können.
Beispieldatenbank
Die Beispieldaten liefert die Nordwind-Datenbank. Wenn Sie die nachfolgenden Beispiele nachvollziehen möchten, erstellen Sie einfach eine neue Datenbank und importieren Sie die Tabellen Artikel, Lieferanten und Kategorien aus der mit Access mitgelieferten Nordwind-Datenbank. Das erledigen Sie ganz einfach:
Access importiert nun die angegebenen Objekte. Erstellen Sie nun ein Beispielformular, mit dem Sie die nachfolgenden Beispiele ausprobieren können:
Bild 2: Das Beispielformular in der Datenblattansicht
Das Formular sieht zwar exakt wie eine Tabelle aus, aber es bietet wesentlich mehr Möglichkeiten: So lässt sich beispielsweise die bedingte Formatierung nicht auf Tabellen oder Abfragen, wohl aber auf Formulare in der Datenblattansicht anwenden.
Der Dialog zur bedingten Formatierung ist verhältnismäßig leicht zu durchschauen, sodass man diese Funktion durchaus auch Nicht-Accesslern zum Markieren von Daten bereitstellen kann – es gibt allerdings auch hier einige Fallstricke. In den nachfolgenden Abschnitten erfahren Sie alles über die Festlegung von Bedingungen für bestimmte Formatierungen.
Aller Anfang ist leicht …
Mit dem soeben erstellten Formular können Sie nach Belieben bedingte Formatierungen festlegen. Dazu klicken Sie einfach auf das Feld, in dem Sie bestimmte Werte hervorheben möchten, und rufen dann den Menübefehl Format ( Bedingte Formatierung auf.
Der nun erscheinende Dialog ist die Schaltzentrale der bedingten Formatierung (siehe Bild 3).
Bild 3: Festlegen einer bedingten Formatierung
Als erstes Beispiel legen Sie nun fest, dass alle Preise höher als 15 EUR gelb unterlegt und fett gedruckt werden. Dazu belassen Sie den Inhalt des ersten Kombinationsfeldes bei dem Wert Feldwert ist, wählen im zweiten Kombinationsfeld den Eintrag Größer als aus und geben als Vergleichswert im Textfeld ganz rechts den Wert 15 ein. Schließen Sie die Eingabe mit einem Klick auf die Schaltfläche OK ab und betrachten Sie das Ergebnis (siehe Bild 4).
Bild 4: Ergebnis der festgelegten bedingten Formatierung
Sie können nun für das gleiche Feld weitere Formatierungen festlegen. öffnen Sie erneut den Dialog zum Festlegen der bedingten Formatierung und klicken Sie auf die Schaltfläche Hinzufügen >>. Unter dem Bereich für die erste Bedingung erscheint ein weiterer Bereich. Geben Sie hier beispielsweise an, dass alle Preise unter 5 EUR in roter, fetter Schrift angezeigt werden sollen. Die entsprechende Bedingung sieht wie in Bild 5 aus. Sie erkennen bereits, dass sich mit wenig Aufwand aussagekräftige Ergebnisse erzielen lassen. Betrachten wir doch die vorhandenen Optionen ein wenig genauer, um alles aus den bedingten Formatierungen herauszuholen.
Bild 5: Festlegen einer zweiten Bedingung
Bild 6: Eine Bedingung mit unterer und oberer Grenze
Bild 7: Festlegen einer Bedingung durch einen Ausdruck
Hinweis
Die bedingte Formatierung lässt sich nur auf Text- und Kombinationsfelder anwenden.
Die Bedingung
Beim Anlegen einer neuen Bedingung besteht diese aus drei Teilen. Das gilt allerdings nur, solange im linken Kombinationsfeld der Eintrag Feldwert ist ausgewählt ist. Es gibt dort noch zwei weitere Einträge: Ausdruck ist und Feld hat Fokus.
Vergleich mit dem Feldwert
Bleiben wir doch zunächst beim Eintrag Feldwert ist: In dem Fall können Sie im zweiten Kombinationsfeld einen der Vergleichsoperatoren Zwischen, Nicht zwischen, Gleich, Ungleich, Größer als, Kleiner als, Größer als oder gleich oder Kleiner als oder gleich angeben.
Für die letzten sechs Möglichkeiten geben Sie im rechten Textfeld den gewünschten Vergleichswert an.
Die ersten beiden Ausdrücke benötigen zwei Werte für eine brauchbare Bedingung: die untere und die obere Grenze (siehe Bild 6).
Ausdrücke
Wer sich einmal mit dieser zweiten Möglichkeit zum Anlegen von Bedingungen auseinandergesetzt hat, wird vermutlich nicht mehr auf die erste zurückgreifen wollen: Diese Variante ermöglicht die Formulierung eigener Bedingungen unter Zuhilfenahme aller in der Tabelle vorkommenden Felder und aller in Access zur Verfügung stehenden Funktionen.
Mit das Einfachste, was Sie mit dieser Variante tun können, ist das Ersetzen einer „Feldwert ist…“-Bedingung. Zum Markieren aller Preise, deren Wert größer als 10,- EUR ist, verwenden Sie einfach den Ausdruck aus Bild 7.
Sie können allerdings noch einiges mehr damit anstellen: Wenn Sie beispielsweise wissen möchten, welcher Artikel in mehr als 20 Bestellungen berücksichtigt wurde, verwenden Sie den folgenden Ausdruck:
DomAnzahl("[Bestell-Nr]";"Bestelldetails";"[Artikel-Nr]=" & [Artikel-Nr])>20
Der Ausdruck zählt das Vorkommen der einzelnen Bestellnummern in der Tabelle Bestelldetails, und zwar für alle Bestellungen, die auch den aktuellen Artikel enthalten. Dass die Zählung sich auf die Artikel-Nr des jeweiligen Datensatzes beschränkt, liegt am letzten Teil der DCount-Funktion: „[Artikel-Nr]=“ & [Artikel-Nr]
Praxis-Tipp
Wenn Sie in Ausdrücken für die bedingte Formatierung Feldnamen verwenden, müssen Sie solche, die nicht ausschließlich aus Buchstaben bestehen, unbedingt in eckige Klammern einschließen – wie hier im Falle der Felder [Artikel-Nr] und [Bestell-Nr].
Feld hat den Fokus
Die dritte und letzte Möglichkeit für eine bedingte Formatierung ist Feld hat Fokus. Damit erreichen Sie, dass das Feld, auf dem der Fokus liegt, in der gewünschten Formatierung angezeigt wird.
Damit auch alle Felder beim Fokuserhalt markiert werden, müssen Sie die bedingte Formatierung natürlich auch für alle Felder festlegen.
Weiter unten erfahren Sie, wie Sie dies einfach per VBA erledigen und sich damit eine Menge Handarbeit sparen können.
Die Formatierung
Die bedingte Formatierung ermöglicht die individuelle Verwendung folgender Steuerelementeigenschaften:
Das große Textfeld links von den Formatierungsoptionen zeigt eine Vorschau auf das gewählte Format.
Anwendungsgebiete
Auch wenn sich dieser Beitrag auf die Beschreibung der bedingten Formatierung in Zusammenhang mit Formularen beschränkt, ist diese Funktion auch in Berichten verfügbar.
In Formularen können Sie sogar in allen zur Dateneingabe verwendbaren Formularansichten bedingte Formatierungen einfügen: in der Datenblattansicht, in der Formularansicht und in der Endlosansicht.
Löschen einer bedingten Formatierung
Bedingte Formatierungen lassen sich nicht deaktivieren, sondern nur löschen. Um eine von mehreren bedingten Formatierungen eines Steuerelements zu löschen, klicken Sie auf die entsprechende Schaltfläche. Es erscheint ein Dialog, in dem Sie die zu löschenden Bedingungen aktivieren und schließlich den Löschvorgang starten (siehe Bild 8).
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
den kompletten Artikel im PDF-Format mit Beispieldatenbank
diesen und alle anderen Artikel mit dem Jahresabo