Home > Artikel > Ausgabe 11/2014 > Diagrammformulare

Diagrammformulare

Achtung: Sie sind nicht angemeldet. Wenn Sie Abonnent sind und sich anmelden, lesen Sie den kompletten Artikel, laden das PDF herunter oder probieren die Beispieldatenbank aus (sofern vorhanden).

Für die Auswertung von Daten unter Access reichen die Datenblattansichten von Abfragen oft nicht aus. Statistische Erhebungen lassen sich mit Diagrammen wesentlich anschaulicher auswerten. Werfen wir einen Blick auf die Möglichkeiten, die uns Access hier von Haus aus anbietet, ohne Umwege über Excel gehen zu müssen.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1412_Pivotdiagramme.mdb.

Es ist bei vielen Entwicklern gang und gäbe für die grafische Auswertung von Daten Excel-Diagramme heranzuziehen. Das ist indessen ein umständliches Unterfangen, denn Excel benötigt für Diagramme als Datenquelle ein Excel-Tabellenblatt.

Deshalb müssen Ergebnisse von Access-Abfragen erst nach Excel exportiert und dort weiterverarbeitet werden. Zwar lässt sich unter Excel auch eine direkte Verknüpfung zu einer Access-Datenbank anlegen, die Anwender Ihrer Datenbank werden jedoch froh darüber sein, wenn Sie Ihnen das Umschalten zwischen den beiden Office-Applikationen ersparen und Diagramme direkt in die Oberfläche von Access einbinden.

Microsoft Graph

Grundsätzlich besteht in allen Access-Versionen die Möglichkeit, ein Formular mit einem Diagramm zu bestücken. Bis Office XP kam hierfür ausschließlich Microsoft Graph zur Anwendung, das bei der Office-Installation ausdrücklich mitinstalliert werden musste. Es handelt sich dabei um eine ActiveX-Komponente, die sogar im Standalone-Modus ausgeführt werden kann, unter Access aber in Formulare oder Berichte eingebettet wird. Graph ist imgrunde ein Abkömmling des Excel-Diagramms und wird auf ähnliche Weise gehandhabt.

Damit Graph nicht über mehrere Schritte als ActiveX-Objekt einfügt werden muss, stellt Microsoft direkt über das Menü oder die Symbolleiste des Formularentwurfs das Diagramm-Objekt bereit. Beim Einfügen desselben startet ein Assistent, der Sie die Datenquelle auswählen und filtern lässt, sowie den gewünschten Typ des Diagramms festlegt. Die eigentliche Formatierung des Diagramms erfolgt erst nach dem Einfügen per Rechtsklick und Bearbeiten.

Die Anbindung von Graph an Access war jedoch stets undurchsichtig und leidet bis heute an OLE-Einbettungsproblemen. So lassen sich die Schriftgrößen der Diagrammbeschriftungen nicht sauber einstellen. Auch dann, wenn Sie in den Optionen eines Beschriftungselements die Automatische Skalierung deaktivieren, werden die Schriften nicht in der eingestellten Größe formatiert.

Bei 8-Punkt erscheint etwa eine Schrift, die eher nach 14-Punkt Fett aussieht. Diesem Verhalten ist nicht wirklich beizukommen – wahrscheinlich mit ein Grund, weshalb das Diagramm unter Access ein Nischendasein fristet.

Die grafische Qualität des Diagramms lässt darüber hinaus auch sonst zu wünschen übrig, wie etwa Bild 1 dokumentiert. Es zeigt das Formular frmBestellungenDiagramm der von Nordwind abgeleiteten Beispieldatenbank und wertet die monatliche Anzahl der Bestellungen über einer Zeitachse aus.

MS Graph-Diagramm der Beispieldatenbank

Bild 1: MS Graph-Diagramm der Beispieldatenbank

Pivot-Charts

Ab Access XP hat sich Microsoft einsichtig gezeigt und das Objektmodell von Formularen überarbeitet. Nun besteht die Möglichkeit das ganze Formular in den Modus PivotChart zu versetzen. Neben Formular-, Entwurfs- und Datenblattansicht ist das also ein ganz neuer Ansichtsmodus. Dabei wird das Formular scheinbar selbst zu einen Diagramm, was bedeutet, dass weder Kopf- und Fußbereich, noch Navigationssteuerelemente angezeigt werden können. Wenn Sie diese brauchen, dann verwenden Sie das Pivot-Chart-Formular als eingebettetes Unterformular in einem entsprechend gestalteten Hauptformular.

Scheinbar deshalb, weil es sich abermals um einen Trick handelt: Das Pivot-Chart ist nämlich mitnichten ein Access-Original, sondern lediglich ein weiteres ActiveX-Steuerelement, das die ganze Fläche des Formulars einnimmt. Microsoft griff diesmal zu den Office Web Components die eigentlich für die Darstellung von Diagrammen im Internet Explorer entwickelt wurden.

Die Datenanbindung fällt nun allerdings erheblich komfortabler aus und die Qualität der Diagramme liegt deutlich über der von Microsoft Graph. Ein Minuspunkt ist die mäßige Performance der Web Components, denn diese verwenden intern nicht das DAO-Datenmodell, sondern ADODB. Unter Access geht deshalb im Hintergrund eine Konvertierung der Daten vonstatten, die bei größerem Datenumfang zu spürbaren Denkpausen bei der Berechnung des Diagramms führt.

Auch wenn Microsoft versucht hat, die Chart-Komponente in den Formularentwurf zu integrieren, ist die Handhabung nicht selbsterklärend, weshalb wir die grundlegenden Verfahrensweisen im Folgenden Schritt für Schritt aufzeigen.

Bestellungen auswerten

Die Beispieldatenbank zum Beitrag wurde aus der Nordwind-Datenbank abgeleitet, die Kunden, Artikel und Bestellungen verwaltet. Ziel ist es, die Anzahl von Bestellungen und den Umsatz über einen Zeitraum in einem Diagramm auszuwerten.

Für diese Auswertung wird die Tabelle Kunden selbst nicht benötigt, so dass im Datenmodell nur drei Tabellen vorkommen (siehe Bild 2). Als Datenherkunft für das Pivot-Formular frmBestellungenChart wird die Abfrage qry_Bestellungen herangezogen (Bild 3), welche die Tabellen in ähnlicher Weise verknüpft. Eine Gruppierung der Daten wird in der Abfrage nicht benötigt, denn die nimmt das Pivot-Chart später selbst vor.

Entwurf der Abfrage qry_Bestellungen zur Auswertung der Bestellungen

Bild 2: Entwurf der Abfrage qry_Bestellungen zur Auswertung der Bestellungen

Tabellenbeziehungen der Beispieldatenbank

Bild 3: Tabellenbeziehungen der Beispieldatenbank

Fehlanzeige unter Access 2013

Sollten Sie Access 2013 verwenden, so müssen wir Sie enttäuschen. Denn in dieser Version sind Pivot-Charts dem Rotstift zum Opfer gefallen. Über die Gründe kann nur spekuliert werden. Wahrscheinlich möchte sich Microsoft prinzipiell von ActiveX-Komponenten verabschieden. Unter Access 2013 kann nur das unzureichende Graph-Diagramm benutzt werden, es sein denn, Sie installierten auf Umwegen die Office Web Components separat und fügten das Chart-Diagramm als ActiveX-Objekt in ein Formular ein.

Wie das geht, beschreiben wir später. Ist Ihnen die Installation der Web Components jedoch verbaut, so sollten Sie auf Diagramme unter Access eher verzichten und auf Excel ausweichen. Genau das empfiehlt Microsoft leider auch in der Beschreibung der Unterschiede zwischen Access 2013 und den Vorversionen...

Pivot-Chart-Entwurf

Der Entwurf des Formulars ist zunächst sehr einfach. Wie für ein Datenblatt geben Sie einfach die Datenherkunft an und füllen den Detailbereich mit allen für das Diagramm benötigten Datensteuerelementen (Textfelder). Tatsächlich ist es der kürzeste Weg, erst ein Autoformular Datenblatt auf Grundlage der Abfrage vom Access-Formularassistenten erstellen zu lassen (Bild 4) und dann im Formularentwurf schlicht die Eigenschaft Standardansicht auf PivotChart zu stellen. Über das Diagramm können Sie zu diesem Zeitpunkt noch keinerlei Angaben machen.

Das Pivot-Chart-Formular in der Entwurfsansicht

Bild 4: Das Pivot-Chart-Formular in der Entwurfsansicht

Der eigentliche Entwurf des Charts erfolgt erst in der Formularansicht, die sich nun aber in Menü, Symbolleisten oder Ribbon PivotChart-Ansicht nennt.

Schalten Sie sie ein, so ändert sich das Layout wie in Bild 5. Von den zugrundeliegenden Daten ist noch nichts zu sehen. Diese blenden Sie ein, indem Sie den Dialog der sogenannten Feldliste aufrufen.

...und hier in der PivotChart-Ansicht

Bild 5: ...und hier in der PivotChart-Ansicht

Das können Sie über das Kontextmenü des Diagramms oder über die in dieser Ansicht neu erschienene Menüleiste (Access 2003), beziehungsweise das Ribbon (Access 2007 ff.), bewerkstelligen – beide in Bild 6 dargestellt. Aus der Feldliste können Sie dann einfach per Drag And Drop die gewünschten Abfragedaten in eine der vier Drop-Zones ziehen, von denen im Entwurf erst nur die Bereiche Rubrikenfelder und Datenfelder interessieren. Sollten die Dropbereiche nicht sichtbar sein, so blenden Sie sie ebenfalls über Ribbon oder Menüleiste ein.

Ribbon und Menüleiste zur Steuerung der PivotChart-Ansicht

Bild 6: Ribbon und Menüleiste zur Steuerung der PivotChart-Ansicht

Das Ribbon zum PivotChart ist dabei deutlich übersichtlicher, als das Menü von Access 2003. Dort wurden nämlich die Einträge auf verschiedene Stellen verteilt, so dass etwa das Item Dropbereiche im Menü Ansicht zu finden ist, die Formatierungen des Diagramms im Menü PivotChart, oder alle vereint in der neuen Symbolleiste.

Die Feldliste (Bild 7) zeigt also alle Datenfelder der im Formularentwurf zuvor eingestellten Datenherkunft an, hat jedoch bereits selbständig über die Intentionen des Entwicklers nachgedacht und schlägt deshalb zum Bestelldatum zusätzlich die Gruppierung auf Wochen- oder Monatsebene vor.

Dialog Feldliste mit den verfügbaren Datenfeldern der Datenquelle

Bild 7: Dialog Feldliste mit den verfügbaren Datenfeldern der Datenquelle

Damit wird deutlich, dass das Chart die Daten selbst verwaltet und Gruppierungen oder Filterungen eigenständig vornehmen kann, was die Definition der Formulardatenquelle erleichtert. Leider arbeitet es dabei nicht sonderlich performant, was sich bei zahlreichen Datensätzen deutlich niederschlägt. Sie sollten deshalb, soweit möglich, die Datenherkunft in einer Abfrage vorfiltern und die Zahl der Datensätze minimieren.

Unsere Absicht war gewesen, die Bestellungen der Nordwind-Datenbank über einen Zeitraum auszuwerten. Also muss das Bestelldatum auf der X-Achse angeordnet sein, welche im Pivot-Chart mit Rubrikenfelder bezeichnet ist.

Zögen Sie allerdings den Eintrag Bestelldatum mit der Maus auf den Dropbereich der Rubrikenfelder, so würde sich die X-Achse in Hunderte von Daten unterteilen und könnte nachträglich nicht mehr nach Monaten und Jahren gruppiert werden. Umgekehrt funktioniert das sehr wohl: Öffnen Sie den Zweig Bestelldatum (Monatsauflösung) und ziehen Sie den Untereintrag Jahre auf die Rubrikenachse.

Schon findet sich unten eine Beschriftung und die Achse ist mit den Jahren 2004 bis 2006 unterteilt – das ist der Zeitraum aller Bestelldaten in der Beispieldatenbank. Der Bereich der Achse stellt sich also automatisch nach den Daten ein, was sich jedoch auch ändern lässt, wie wir später sehen werden. Die Achsenbezeichnung Jahre weist außerdem einen Dropdown-Pfeil auf, der ein Dialogfenster wie in Bild 8 öffnet. Über den Dialog kann der Bereich der Achse gesteuert, also eine Filterung auf Jahresebene durchgeführt werden.

Filterdialog der X-Achse

Bild 8: Filterdialog der X-Achse

Nun reicht uns die Unterteilung nach Jahren für die Statistik nicht aus. Wir hätten gleich den Untereintrag Monate der Feldliste in den Dropbereich ziehen können, es gibt aber einen Trick, um die Monatsgruppierung auf anderem Wege nachzuholen. Rechtsklicken Sie dazu auf die Bezeichnungsfläche Jahre und aktivieren im Kontextmenü (Bild 9) den Eintrag Erweitern. Dadurch entsteht eine weitere Achsenunterteilung in Quartale.

Kontextmenü

Bild 9: Kontextmenü

Wiederholen Sie den Vorgang, so tauchen auch die Monate auf. Das ließe sich bis auf Sekundenebene fortsetzen. Für unseren Zweck benötigen wir nur Jahre und Monate, nicht aber die Quartale. Diese lassen sich schnell entfernen: Entweder markieren Sie die Bezeichnungsfläche mit der Maus und drücken die ENTF-Taste, oder Sie ziehen sie mit der Maus soweit in irgendeine Richtung, bis das Löschen-Symbol erscheint.

Nachdem die Unterteilung der X-Achse festgelegt ist, schreiten wir zur Bestimmung der im Diagramm anzuzeigenden Daten, was sich durch Bestücken des Dropbereichs Datenfelder vollzieht. Um die Anzahl von Bestellungen zu ermitteln, kann etwa die ID jedes Datensatzes verwendet und anschließend gezählt werden. Ziehen Sie den Eintrag BestellID aus der Feldliste in den Dropbereich Datenfelder und haben damit – voilá! – schon ein vollständiges Diagramm fabriziert. Allerdings zeigt es noch nicht das, was beabsichtigt war: Statt der Anzahl von Datensätzen ermittelt es die Summe der ID-Werte.

Korrigieren Sie das, indem Sie auf die Datenbezeichnung Summe BestellID rechtsklicken und aus dem Kontextmenü die AutoBerechnen-Funktion Anzahl auswählen (siehe Bild 10). Sie erhalten nun das gewünschte Ergebnis.

Ändern der Aggregatfunktion für die Datenreihe

Bild 10: Ändern der Aggregatfunktion für die Datenreihe

Pivot-Charts formatieren

Das Diagramm zeigt jetzt bereits die korrekte Statistik, lässt aber im Layout noch zu wünschen übrig. Natürlich lassen sich fast alle Elemente des Diagramms, ähnlich, wie unter Excel, in ihrem Aussehen modifizieren. Dafür gibt es einen eigenen Dialog, das Eigenschaftenfenster. Bringen Sie es über das Menü Ansicht|Eigenschaften oder die Ribbon-Schaltfläche Eigenschaftenblatt in den Vordergrund (Bild 11).

Eigenschaften-Dialog des Pivot-Charts

Bild 11: Eigenschaften-Dialog des Pivot-Charts

Nachdem es einmal offen ist, lassen sich die Diagrammelemente auf zweierlei Arten formatieren. Entweder klicken Sie mit der Maus auf das gefragte Element/den Bereich, oder spezifizieren Sie es über die Combobox Auswählen auf der Registerseite Allgemein. Dabei ändern sich Zahl und Bezeichnung der weiteren Registerkarten des Dialogs. Über die Seiten des Dialogs lassen sich nun alle möglichen Einstellungen und Formatierungen zum gewählten Element vornehmen, seien es Linienformen, Farben, Füllungen, Schriftarten, oder auch Angaben zu Achsenbereichen.

Nehmen wir uns etwa die Formatierung der Y-Achse vor. Klicken Sie dazu auf irgendeine Zahl der Skala. Im Eigenschaftendialog wechselt die Combobox Auswählen ihren Inhalt auf Größenachse 1. Nun lassen sich auf den Registerkarten Schrift und Layout der Skala einstellen, die Gitterlinien des Diagramms, vor allem aber auch die Skalierung selbst. Diese hat sich automatisch auf einen durch die Datenwerte definierten Bereich festgelegt.

Über den Reiter Skalierung gelangen Sie zu den benutzerdefinierten Vorgaben für die Unterteilung der Skala. Spielen Sie dort einfach mit den Eingabefeldern herum – das Aussehen des Diagramms ändert sich jeweils unmittelbar. Merken Sie sich aber besser die zuvor eingestellten Werte, denn eine Rückgängig-Funktion sieht das PivotChart nicht vor!

Und an dieser Stelle gleich der Hinweis, dass Access beim Schließen des Formulars nicht nach Speicherung der Änderungen fragt!

Alle vorgenommenen Änderungen werden beim Schließen automatisch übernommen und ein Abbrechen ist nicht möglich.

Neben den Achsen können Sie beliebige andere Elemente des Charts durch Markieren mit der Maus modifizieren, aber auch neue Elemente hinzufügen.

Klicken Sie etwa auf die X-Achse und betätigen auf der Seite Allgemein der Eigenschaften den Button Titel hinzufügen, der anschließend automatisch in der Auswählen-Box erscheint und ebenfalls formatiert werden kann. Auch neue zusätzliche Achsen mit anderer Skalierung können so angelegt werden. Haben Sie des Guten zu viel getan, so markieren Sie ein Element und löschen es mit der ENTF-Taste.

Sie möchten die Bezeichnung der Datenfelder ändern? Dort steht bisher Anzahl BestellID, was eventuell missverständlich klingt. Klicken Sie also auf die Bezeichnungsschaltfläche, um die Eigenschaften des Elements zu ändern.

In diesem Fall werden Sie in den dort kein Eingabefeld finden, in dem sich der angezeigte Text bestimmen ließe.

Sie haben das Ende des frei verfügbaren Teil dieses Artikels erreicht!

Wenn Sie mehr lesen und auf viele weitere Artikel zugreifen möchten, melden Sie sich als Abonnent unter Login an. Falls nicht, bestellen Sie doch einfach ein Jahresabonnement!