Mittwoch, 22. November 2017

Home
Tipps
Bücher
Software
News / Links
Hilfe
Impressum

Sponsored by
QualityHosting

Tipp/Trick
Datensätze farbig hervorheben
Bei Berichten stellt Access eine spezielle Ereigniseigenschaft mit dem Namen BeimFormatieren zu Verfügung, um den Detailbereich eines Bericht für jeden Datensatz individuell zu formatieren. Dank dieser Eigenschaft ist es beispielsweise kein Problem, bestimmte Datensätze farbig hervorzuheben.

Leider steht bei Formularen keine solche Ereigniseigenschaft zur Verfügung, so das die beschrieben Formatierungen bei Endlosformularen nicht möglich sind. Auch der Versuch, die Hintergrundfarbe des Detailbereichs während der Laufzeit zu verändern, schlägt fehl. Die Änderung wirkt sich nämlich stets auf alle angezeigten Datensätze aus.

Um trotzdem einzelne Datensätze farbig hervorzuheben, verwenden Sie farbige OLE-Objekte, die relational mit einer Datentabelle verknüpft werden.
Die unten aufgeführte Abbildung zeigt, wie so etwas bei einer Rechnungsübersicht aussehen kann.

Voraussetzung für das Beispiel ist eine Tabelle mit dem Namen Status, in der die einzelnen OLE-Objekt zur Markierung der Datensätze angelegt werden. Die Tabelle enthält die beiden folgenden Datenfelder:

Datenfeld Felddatentyp
StatusNr Zahl
SatusGrafik OLE-Objekt

Das Feld StatusNr dient als Primärschlüssel der Tabelle.

In diesem Beispiel sollen die einzelnen Datensätze durch farbige Punkte markiert werden. Je nach Fälligkeit der Rechnung erscheint neben dem Datensatz ein grüner, gelber oder roter Punkt. Diese Punkte erstellen Sie am einfachsten mit Hilfe des Zeichenprogramms Paint, das zum Lieferumfang von Windows gehört. Das Einfügen der Objekt in das Feld StatusGrafik der Tabelle erledigen Sie über die Zwischenablage. Beachten Sie außerdem die folgende Zuordnung der Farbigkeit zu einer Statusnummer:

Statusnummer Farbe Bedeutung
1 Rot Zahlung ist überfällig
2 Geld Zahlung muss innerhalb der nächsten neun Tage erfolgen
3 Grün Zahlung erst in mehr als neun Tagen

Die zweite für das Beispiel erforderliche Tabelle heißt Rechnungen. Sie speichert einige für die zu bezahlenden Rechnungen interessante Daten. Für das Beispiel kommt es nur auf das Feld Zahlungsdatum an, da die Dringlichkeit einer Zahlung durch das Verhältnis vom Tages- zum Zahlungsdatum ermittelt wird.

Die Bewertung der Zahlungsdringlichkeit übernimmt eine VBA-Funktion namens StatusBestimmen. Die Prozedur erwartet das Zahlungsdatum als Parameter und gibt einen der Stati 1 bis 3 nach obiger Tabelle zurück. Geben Sie die VBA-Funktion in ein beliebiges Standardmodul ein:

Public Function StatusBestimmen(Zahlungsdatum As Variant) As Integer

Dim DifferenzInTagen As Integer

    If IsNull(Zahlungsdatum) Then Exit Function

    DifferenzInTagen = DateDiff("d", Date, Zahlungsdatum)

    If DifferenzInTagen < 0 Then StatusBestimmen = 1 'Rot
    If DifferenzInTagen >= 0 And DifferenzInTagen < 10 _ 
       
        Then StatusBestimmen = 2 'Gelb
    If DifferenzInTagen >= 10 Then StatusBestimmen = 3 'Grün

End Function

Bevor Sie die Tabellen Rechnungen und Status in einer Abfrage miteinander verknüpfen können, benötigen Sie in der Tabelle Rechnungen ein entsprechendes Datenfeld, dessen Werte mit der Statusnummer aus der Tabelle Status übereinstimmen. Der Entwurf eines solchen Datenfeldes erfolgt am einfachsten in einer Abfrage. Fügen Sie einer neuen Abfrage die Tabelle Rechnungen hinzu, und ziehen Sie das Sternchen aus der Feldliste in den Entwurfsbereich. Fügen Sie dann die folgende Spalte hinzu:

Status: StatusBestimmen([Zahlungsdatum])

Dieser Ausdruck definiert das neue Feld Status, dessen Wert sich aus der Berechnung der VBA-Funktion StatusBestimmen und dem aktuellen Zahlungsdatum ergibt. Speichern Sie die Abfrage unter dem Namen Rechnungen mit Status.

In einer zweiten Abfrage führen Sie die Tabellen Rechnungen und Status nun zusammen. Entwerfen Sie eine Abfrage und fügen Sie die Tabelle Status und die Abfrage Rechnungen mit Status hinzu. Die Verknüpfung der beiden Feldlisten erfolgt über eine Linie, die Sie vom Feld StatusNr der Tabelle Status auf das Feld Status der Abfrage Rechnungen mit Status ziehen. Um die Abfrage zu vervollständigen, ziehen Sie das Sternchen aus der Abfrage Rechnungen mit Status und das Feld StatusGrafik aus der Tabelle Status in den Entwurfsbereich.

Nachdem Sie die Abfrage unter dem Namen Formular Rechnungsübersicht gespeichert haben, können Sie sie als Datenherkunft für ein neues Endlosformular verwenden. Der Entwurf des Formulars erfolgt am einfachsten mit einem der Formularassistenten von Access. Als Ergebnis erhalten Sie eine Ansicht von mehreren Datensätzen, die jeweils gemäß der Dringlichkeit der Zahlung farbig markiert sind.

Aufgrund der Konzeption als relationale Verknüpfung von Tabellen, läßt sich dieses Beispiel problemlos erweitern. Sie müssen lediglich weitere farbige Objekte in der Tabelle Status speichern und die VBA-Funktion StatusBestimmen entsprechend erweitern.




Ein Service der TriniDat Software-Entwicklung GmbH - Am Wehrhahn 45 - 40211 Düsseldorf

  Suche
Suche starten
  Service
Leserbrief / Frage zu Access
Kontakt
  NewsLetter
NewLetter bestellen
NewsLetter abbestellen
  Partner-Seiten
HyperLink

www.trinidat.de


HyperLink

www.fulldotnet.de