Farbschema: Hell
Sie befinden sich hier: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Forms Object Library » how-to » Werte als Heatmap anzeigen

Werte als Heatmap anzeigen

Zeigen Sie, wie sich Werte über zwei Dimensionen verteilen, etwa Anmeldungen je Wochentag und Stunde, als Tabelle, deren Zellen nach ihrem Wert gefärbt sind: hell für wenige, dunkel für viele.

Voraussetzungen: WKL Forms Object Library 1.62 oder höher.

Lösungsüberblick

Eine Kreuztabellenabfrage liefert je Wochentag eine Zeile und je Stunde eine Spalte. Ein WklGrid zeigt die Abfrage an; je Stundenspalte färbt eine Farbskala-Regel (wrkColorScale) jede Zelle zwischen MinColor und MaxColor. Da jede Regel über die Werte ihrer eigenen Spalte skaliert, erhalten alle Regeln dieselben festen Enden (MinValue, MaxValue). So hat dieselbe Anzahl in jeder Spalte dieselbe Farbe.

Umsetzung

Zwei Abfragen: qryAnmeldungenJeStunde zählt je Wochentag und Stunde, die Kreuztabelle qryAnmeldungenHeatmap macht aus den Stunden die Spalten 00 bis 23 (mit 0 statt einer leeren Zelle).

-- qryAnmeldungenJeStunde
SELECT Weekday([AngemeldetAm], 2) AS Wochentag, HOUR([AngemeldetAm]) AS Stunde, COUNT(*) AS Anmeldungen
FROM tblAnmeldung
GROUP BY Weekday([AngemeldetAm], 2), HOUR([AngemeldetAm]);
 
-- qryAnmeldungenHeatmap
TRANSFORM Nz(COUNT([ID]), 0) AS Anmeldungen
SELECT Weekday([AngemeldetAm], 2) AS Wochentag
FROM tblAnmeldung
GROUP BY Weekday([AngemeldetAm], 2)
PIVOT Format(HOUR([AngemeldetAm]), "00") IN ("00","01","02","03","04","05","06","07","08","09","10","11",
                                             "12","13","14","15","16","17","18","19","20","21","22","23");
Private Sub Form_Load()
    Dim highest As Variant
    Dim h As Integer
    highest = DMax("Anmeldungen", "qryAnmeldungenJeStunde")    ' one scale for all columns
    With Me!Grid1.Object
        .RecordSource = "qryAnmeldungenHeatmap"
        .KeyField = "Wochentag"
        .FormatRules.Clear
        For h = 0 To 23
            With .FormatRules.Add(Format(h, "00"), wrkColorScale)
                .MinColor = RGB(255, 255, 255)
                .MaxColor = RGB(31, 78, 121)
                .MinValue = 0
                .MaxValue = Nz(highest, 1)
            End With
        Next h
    End With
End Sub

Hinweise

  • Ohne feste Enden reicht eine Farbskala vom kleinsten bis zum größten geladenen Wert ihrer Spalte. Für eine einzelne Spalte passt das; in einer Heatmap über mehrere Spalten würde so jede Stunde nach ihrem eigenen Höchstwert gefärbt.
  • MidColor ergänzt eine dritte Farbe, etwa Rot, Gelb und Grün um einen Zielwert (MidValue). Mit MidColor = -1 (Vorgabe) hat die Skala zwei Farben.
  • Zellen mit dunklem Hintergrund erhalten weiße Schrift. Eine ForeColor der Regel geht vor.
  • Eine Regel weiter oben in der Liste, die einen Hintergrund setzt, geht der Farbskala vor.
  • Im Windows-Kontrastmodus färbt die Farbskala nicht; die Zahlen in den Zellen müssen dann die Aussage tragen.
  • Damit die Farben in Excel erhalten bleiben, exportieren Sie wie angezeigt: ExportToXlsx Pfad, wemWysiwyg. Der Standardexport (wemDataAware) schreibt nur die Werte.

Verwandte Themen

de/wiki/msaccess/comctl/how-to/show-values-as-a-heat-map.txt · Zuletzt geändert: von Wolfgang van der Stille