Du steuerst blind, wenn Du nur Tabellen liest
Viele KMU haben Daten.
Aber keine Auswertung.
Kein Controlling, keine Kennzahlen, keine Tendenzen.
Dann gibt’s Fragen wie:
- „Wie viele Angebote wurden letzte Woche verschickt?“
- „Welcher Kunde bringt am meisten?“
- „Wie lange liegen Aufträge offen?“
Und keiner kann es schnell beantworten.
Das kostet Zeit. Und Umsatz.
Mein Fahrplan für klare Dashboards
Ich baue meine KPI-Auswertung immer so:
- Klare Zielgruppe (Geschäftsführung, Vertrieb, Produktion …)
- 5–7 KPIs pro Bereich, nicht mehr
- Berechnung in SQL
- Darstellung in Access-Formular oder Power BI
- Drilldown bis zum Einzelwert
Schritt 1: Die KPIs definieren
Kein Dashboard ohne Inhalt.
Beispiele aus dem Alltag:
Bereich | KPI | Einheit |
---|---|---|
Vertrieb | Anzahl Angebote letzte 30 Tage | Stück |
Vertrieb | Abschlussquote Angebote | Prozent |
Kunden | Top-10-Kunden nach Umsatz | Euro |
Aufträge | Ø Durchlaufzeit in Tagen | Tage |
Produktion | Fertigmeldungen je Woche | Stück |
Schritt 2: Die KPIs berechnen – direkt im SQL Server
Ich berechne alle Kennzahlen als View oder Funktion.
Das läuft performanter. Und ist nachvollziehbar.
Beispiel: Abschlussquote berechnen (T-SQL)
SELECT
CAST(COUNT(CASE WHEN Status = 'Beauftragt' THEN 1 END) AS FLOAT) /
NULLIF(COUNT(*), 0) * 100 AS AbschlussquoteProzent
FROM Angebote
WHERE Angebotsdatum >= DATEADD(DAY, -30, GETDATE());
Beispiel: Top-10-Kunden (T-SQL)
SELECT TOP 10
KundeID,
SUM(Gesamtbetrag) AS Umsatz
FROM Aufträge
GROUP BY KundeID
ORDER BY Umsatz DESC;
Diese Views ziehe ich direkt in Access oder Power BI rein.
Kein Rumgerechne im Frontend.
Schritt 3: Zugriff aus Access – ohne Umwege
In Access verknüpfe ich die Views per ODBC.
Dann baue ich ein Hauptformular mit Kacheln.
Jede Kachel zeigt eine Kennzahl.
Beim Klick: Detailauswertung.
Access-Kachel mit KPI (VBA + SQL)
Me.txtAngebote30Tage.Value = DLookup("Anzahl", "qry_KPI_Angebote30Tage")
Oder, wenn dynamisch:
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT COUNT(*) AS Anzahl FROM Angebote WHERE Angebotsdatum >= Date()-30", dbOpenSnapshot)
If Not rs.EOF Then Me.txtAnzahl = rs!Anzahl
rs.Close
Schritt 4: Power BI? Ja, aber richtig angebunden
Wenn’s grafisch sein soll, geh ich auf Power BI.
Aber mit SQL-Server-Datenquelle, nicht mit CSV-Import.
Kennzahlen in SQL, Darstellung in Power BI.
Die Trennung ist sauber und wartbar.
Schritt 5: Drilldown ermöglichen
Nur Balken auf dem Dashboard reicht nicht.
Ich baue immer eine Verbindung zur Detailtabelle.
Beispiel:
- Kachel „Offene Aufträge: 12“
- Klick => Formular öffnet sich mit genau diesen 12 Aufträgen
Access-VBA: Klick auf Kachel mit Filter
DoCmd.OpenForm "frmAufträge", , , "Status='Offen'"
Oder bei dynamischen Zeiträumen:
Dim Filter As String
Filter = "Auftragsdatum >= Date()-30"
DoCmd.OpenForm "frmAufträge", , , Filter
Reporting-Rhythmus festlegen
Ich lasse KPIs täglich aktualisieren – per SQL Job.
So läuft’s automatisch.
Wenn Access alleine arbeitet, plane ich das über AutoExec oder Taskplaner.
Beispiel: Access-KPI-Update beim Start
Private Sub Form_Load()
Call AktualisiereKPI
End Sub
Sub AktualisiereKPI()
Me.txtOffen = DCount("*", "qry_AufträgeOffen")
Me.txtTopKunde = DLookup("Kundenname", "qry_TopKunde")
End Sub
Mein Fazit
Wenn Du keine KPIs siehst, verlierst Du Geld.
Ich baue sie immer zuerst – nicht zuletzt.
No responses yet