Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 1/2003.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Daten visualisieren mit HTML

André Minhorst, Duisburg

Die Visualisierung von Daten unter Access ist zwar möglich, aber nur für bestimmte Arten von Daten und in recht eingeschränkter Form. Microsoft Graph sowie die Pivot-Ansichten von Daten bieten zwar die Möglichkeit, z. B. den Verlauf von bestimmten Zahlen über ausgewählte Zeiträume anzuzeigen, aber das Ausgabeformat ist weitgehend vorgegeben und erlaubt keine Interaktivität. Wenn Sie aber beispielsweise die Urlaubs- und Abwesenheitsdaten von Mitarbeitern grafisch aufbereiten möchten, haben Sie mit den Bordmitteln von Access keine Chance. Hier helfen nur viel Fantasie und der Einsatz ungewöhnlicher Werkzeuge.

Hinweis

Die Anwendung des im vorliegenden Beitrag beschriebenen Beispiels erfordert eine vorhandene Installation des Microsoft Internet Explorer ab Version 5.0 oder höher. (

Einleitung

Die Darstellung von Daten unter Access erfolgt in der Regel in geeigneten Formularen und Berichten, die entsprechende Steuerelemente für deren strukturierte Anzeige anbieten. Gelegentlich verlangt der Benutzer eine grafische Darstellung von Daten, beispielsweise des Verlaufes von Verkaufszahlen über einen bestimmten Zeitraum. In diesem Fall hilft Microsoft Graph sicher über die Runden.

Was aber, wenn Sie Ihre Daten nicht in das von Microsoft Graph geforderte Format bringen können, Sie aber dennoch eine grafische Anzeige der Daten benötigen? Oder wenn der Kunde auch noch wünscht, dass die Daten nicht nur grafisch veranschaulicht werden sollen, sondern der Benutzer auch noch interaktiv mit den grafisch aufbereiteten Daten arbeiten kann?

Sie ahnen es bereits: Dann haben Sie ein mächtiges Problem. Aber auch nur, wenn Sie nicht über den Tellerrand schauen und auch mal ungewöhnliche Mittel einsetzen möchten.

Aufgabenstellung

Eine passende Aufgabenstellung, die erstens eine individuelle grafische Darstellung von Daten und zweitens die Möglichkeit des interaktiven Eingriffs des Benutzers in die grafischen Darstellung erfordern könnte, finden Sie schnell: zum Beispiel die Urlaubsverwaltung aus der Ausgabe 6/2002 von Access im Unternehmen.

Hinweis

Der vorliegende Beitrag baut auf der Musterlösung Urlaubsverwaltung mit Access aus der Ausgabe 6/2002 von Access im Unternehmen auf. Da Sie das Datenmodell dieser Musterlösung weitgehend übernehmen können, finden Sie in diesem Beitrag nur Hinweise auf eventuell vorzunehmende Änderungen. Wenn Sie die Beispiele selbst nachvollziehen, können Sie die genannte Datenbank als Grundlage dafür verwenden. Der Beitrag enthält allerdings keine komplette Beschreibung der durchzuführenden Schritte. (

Visualisierung von Fehlzeiten

Die Urlaubsverwaltung erlaubt die Verwaltung von Fehlzeiten der Mitarbeiter wie Urlaub, Krankheit usw. Richtig wertvoll wird diese Anwendung, wenn sie z. B. auch noch einen grafischen Überblick über die Fehlzeiten der einzelnen Mitarbeiter im Jahresüberblick erlaubt.

Abb. 1: Ein Jahreskalender im Access-Formular

Zusätzlich soll die grafische Ansicht die Möglichkeit bieten, direkt die Detailinformationen zu den einzelnen Abwesenheiten anzuzeigen und zu bearbeiten - z. B. nach einem Mausklick auf einen der Tage, die innerhalb des gewünschten Zeitraums liegen.

Die Lösung: HTML

Natürlich ermöglicht Access mit Formularen und entsprechenden Steuerelementen die Entwicklung solcher Ansichten. Der Aufwand ist allerdings - je nach Anforderung - sehr hoch.

Die pure Anzeige der Jahres- oder Monatsübersicht eines Kalenders erfordert bereits die Anlage einer großen Menge von Steuerelementen (zumindest eines je Tag) inklusive Ereignisprozeduren, Zuweisung von Eigenschaften wie Text, Hintergrundfarbe usw.

Wirklich kompliziert wird die Angelegenheit, wenn solche Daten auch noch für mehrere Mitarbeiter gleichzeitig angezeigt werden sollen.

Access bietet nämlich nicht in allen Versionen die Möglichkeit, die Steuerelemente von verschiedenen Datensätzen mit unterschiedlichen Formaten zu versehen.

Grafische
Darstellung mit HTML

Ohne Probleme geht dies nur, wenn Sie die Elemente der grafischen Darstellung und deren Eigenschaften komplett dynamisch erstellen und zur Laufzeit ändern können.

Und hier kommt HTML ins Spiel: Diese eigentlich für Internetanwendungen verwendete Beschreibungssprache können Sie problemlos zur grafischen Darstellung von kästchen- und balkenförmigen Elementen verwenden.

Einzige Voraussetzung sind grundlegende HTML-Kenntnisse, mit denen Sie einfache HTML-Seiten erstellen und diese mit Texten und Tabellen füllen können. So kommt der eigentliche Körper der in diesem Beitrag vorgestellten Darstellung eines Jahreskalenders (s. Abb. 1) mit genau vier HTML-Elementen aus:

Dabei handelt es sich um den Tabellenkörper <table> bzw. </table>, die Elemente für die Tabellenzeilen und -spalten <tr> bzw. </tr> und <td> bzw. </td> und das Hyperlink-Element <a> bzw. </a>, wobei die beiden jeweils genannten Elemente den eigentlichen Inhalt einschließen.

Sie müssen die genannten Elemente nur noch in der gewünschten Reihenfolge zusammenstellen und die Lücken zwischen schließenden und öffnenden Elementen mit Inhalt füllen, in den HTML-Körper (engl.: body) einschließen und per Browser anzeigen. HTML ist auch nicht umsonst die am weitesten verbreitete Sprache zur Beschreibung von Inhalten im Internet - vor allem wegen seiner relativ einfachen Struktur.

Das Webbrowser-Steuerelement

‚Was, per Browser anzeigen?’, wird der aufmerksame Leser nun sagen - womit er eine berechtigte Frage stellt. ‚Access-Daten in HTML schreiben und dann auch noch einen Internet-Browser zu deren Anzeige verwenden? Da kann ich ja direkt eine Internetanwendung erstellen!’

Microsoft bietet glücklicherweise viele Möglichkeiten zur Interaktion zwischen seinen Anwendungen und im vorliegenden Fall klappt das besonders gut: Wenn Sie über einen Internet Explorer ab Version 5.0 verfügen, befindet sich auf der Festplatte Ihres Rechners auch ein Steuerelement, mit dem Sie ein Browserfenster in Access-Formulare integrieren können.

Hinweis

Das Webbrowser-Steuerelement kennen Sie möglicherweise bereits aus einer früheren Ausgabe von Access im Unternehmen. Der Beitrag Internetbrowser mit Bookmarkverwaltung behandelt die Erstellung eines eigenen Internetbrowsers mit Access und ist in Ausgabe 4/2001 zu finden. Da dort bereits einige Informationen - insbesondere über die Integration des Steuerelements - zu finden sind, wird an einigen Stellen auf diesen Beitrag verwiesen. (

DHTML - dynamisches HTML

Die Theorie sieht nun folgendermaßen aus: Sie erstellen eine HTML-Seite mit den gewünschten Daten und zeigen diese im Webbrowser-Steuerelement an. Der zweite Schritt ist kein Problem:

Das Objektmodell des Webbrowser-Steuerelements verfügt über eine Methode, um die gewünschte Internetseite anzuzeigen.

Sie wissen allerdings noch nicht, wie Sie die Internetseite mit den gewünschten Informationen ausstatten.

Komplette Seite speichern

Die erste Möglichkeit ist, die Seite ganz neu zu erstellen, komplett zu speichern und anschließend im Webbrowser-Steuerelement aufzurufen. Diese Variante erfordert allerdings eine zusätzliche Speicheroperation und soll daher der folgenden Alternative weichen.

Seite dynamisch zusammenstellen

Mit einem kleinen Trick können Sie dem Webbrowser-Steuerelement eine HTML-Datei zuweisen, die komplett in einer String-Variablen gespeichert ist.

Dazu initialisieren Sie das Webbrowser-Steuerelement zunächst mit einer leeren Seite. Anschließend schreiben Sie dynamisch die gewünschten HTML-Anweisungen in die angezeigte Seite.

Diese HTML-Anweisungen sollen zunächst nur das Gerüst enthalten - also die Tabellenstruktur mit den Kalenderelementen wie Monate, Wochen, Tage usw.

Zwei weitere Prozeduren dienen dem Füllen des Kalenders mit den anzuzeigenden Zeiträumen - im vorliegenden Fall also mit den Fehlzeiten - durch eine Färbung der Tabellenzellen, die dem gewünschten Zeitraum entsprechen sowie dem Leeren des Kalenders, also dem Entfernen aller farbigen Markierungen.

Beim Initialisieren der Fehlzeitenübersicht kommt nur die erste Prozedur zum Einsatz. Bei allen nachfolgenden Aktualisierungen - also z. B. dem Löschen einer Fehlzeit oder dem Wechsel des anzuzeigenden Mitarbeiters - kommen beide Prozeduren zum Einsatz. Die erste, um die aktuellen Markierungen zu entfernen, und die zweite, um die aktuellen Zeiträume anzuzeigen.

Die Aufteilung der Funktionalität auf drei Prozeduren dient der Performance. Da der Aufbau der Tabellenstruktur auch auf schnellen Rechnern einige Sekunden dauert, wird er nur beim Öffnen des Formulars durchgeführt.

Das Entfernen und erneute Hinzufügen der farbigen Markierungen erfolgt wesentlich schneller als die Zusammenstellung der kompletten Tabellenstruktur.

Praxis-Tipp

Wenn Sie die vorgestellte Technik in eine Anwendung integrieren, in der die Ansicht öfter geöffnet und wieder geschlossen wird, können Sie auf folgendem Weg Zeit sparen: Setzen Sie einfach die Eigenschaft Sichtbar des Formulars auf Nein, statt das Formular zu schließen. Wenn Sie es anschließend wieder sichtbar machen möchten, können Sie es ganz normal öffnen und sparen die Zeit zum Erstellen der Kalenderstruktur. (

Beispielformulare

Abb. 2: Entwurfsansicht des Formulars frmKalender

Die Beispieldatenbank zum vorliegenden Beitrag enthält drei neue Formulare, von denen hier nur das Formular frmKalender ausführlich beschrieben wird.

Das Formular frmKalender

Das Formular zur Anzeige der Fehlzeitenübersicht enthält die in Abb. 2 abgebildeten Steuerelemente. Tab. 1 enthält eine Übersicht über die Steuerelemente mit Namen und Funktion. Fügen Sie die Steuerelemente gemäß Abb. 2 hinzu und benennen Sie diese entsprechend Tab. 1.

Steuerelementname

Funktion

cboPersonalID

Kombinationsfeld zur Auswahl des gewünschten Mitarbeiters

txtJahr

Textfeld zur Eingabe des anzuzeigenden Jahres

cmdNeueAbwesenheit

Schaltfläche zum Anlegen einer neuen Abwesenheit

cmdFarbeinstellungen

Schaltfläche zum Öffnen des Dialogs zum Einstellen der Farben

ctlWebbrowser

Webbrowsersteuerelement zur Anzeige des HTML-Seite

Tab. 1: Steuerelemente des Formulars frmKalender

Das Kombinationsfeld cboMitarbeiterID hat als Datensatzherkunft die folgende Abfrage:

SELECT PersonalID, 
[Nachname] & ", " 
& [Vorname] AS Mitarbeiter
FROM tblPersonal;

Stellen Sie außerdem die Eigenschaften Spaltenanzahl und Spaltenbreiten auf die Werte 2 und 0 ein.

Beim Webbrowser-Steuerelement gibt es einige Besonderheiten. Sie finden diese im Beitrag Internetbrowser mit Bookmarkverwaltung. Die Größe des Webbrowser-Steuerelements brauchen Sie noch nicht anzupassen - warten Sie zunächst ab, welchen Platz der Inhalt der HTML-Seite benötigt. Gestalten Sie das Steuerelement zu Beginn möglichst groß und passen Sie es dann an die fertige Darstellung der Fehlzeiten an.

Verweise auf Objektbibliotheken

Für die Arbeit mit dem Objektmodell des Webbrowser-Steuerelements und mit DHTML sind entsprechende Verweise auf deren Objektbibliotheken erforderlich.

Der Verweis auf die Bibliothek Microsoft Internet Controls wird automatisch erstellt, wenn Sie das Webbrowser-Steuerelement in die Entwurfsansicht des Formulars ziehen. Den Verweis auf die Microsoft HTML Object Library müssen Sie von Hand erstellen.

Hinweis

Da die vorgestellten Techniken nicht ADO, sondern DAO verwenden, müssen Sie auch noch einen Verweis auf diese Bibliothek setzen. Weitere Informationen zum Erstellen eines Verweises auf eine Objektbibliothek finden Sie im Beitrag Verweise auf Bibliotheken setzen auf der Heft-CD. (

Abb. 3: Formular zur Bearbeitung der Abwesenheitstypen

Weitere Formulare der
Beispieldatenbank

Das Formular frmAbwesenheitenFarben verwendet die gleiche Technik wie das Formular frmKalender und dient der Bearbeitung und dem Anlegen von Abwesenheitsarten und deren im Formular frmKalender zu verwendenden Farben (s. Abb. 3).

Das Formular frmAbwesenheiten dient der Bearbeitung und der Neuanlage von Abwesenheitsdaten (s. Abb. 4). Seine Funktion ist relativ rudimentär und beinhaltet beispielsweise nahezu keine Validierung. Für weitere Informationen sehen Sie sich den Entwurf und den Quellcode des Formulars in der Beispieldatenbank an.

Die Funktionalität des Formulars frmAbwesenheitenFarben ist nicht ganz einfach. Sie baut aber im Wesentlichen auf die im Rahmen der nachfolgend vorgestellten Techniken auf und sollte anschließend anhand des Quellcodes des Formulars gut nachzuvollziehen sein.

DHTML in der Praxis

Bevor Sie mit der Programmierung des Kalenders beginnen, benötigen Sie noch einige Grundlagen zum Thema HTML/DHTML.

Abb. 4: Das Formular frmAbwesenheiten

Hinweis

Der vorliegende Beitrag kann kein umfassendes Grundlagenwissen zu HTML oder DHTML vermitteln. Daher finden Sie hier nur die notwendigsten Informationen, die Sie mit einigem Grundlagenwissen in die jeweiligen Gesamtzusammenhänge einordnen können -falls nicht, so tut es dem Nutzen des Beitrags allerdings keinen Abbruch. (

Aufbau der HTML-Seite

Wie oben beschrieben, stellen Sie die komplette HTML-Seite dynamisch zusammen. Aber bei aller Dynamik gibt es einige Elemente, die in jeder HTML-Seite enthalten sind (s. Quellcode 1). Für den restlichen Inhalt finden Sie in Quellcode 1 das Element <Inhalt> als Platzhalter.

Der Platzhalter wird später durch eine Tabellenstruktur mit den Monatsüberschriften und den Zahlen für die einzelnen Tage ersetzt. Die übrigen Elemente teilen dem jeweiligen Browser einige Randinformationen über die Seite mit. Eine Erläuterung dieser Elemente ist im Rahmen des vorliegenden Beitrags nicht erforderlich.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

    <head>

        <title></title>

    </head>

    <body>

        <Inhalt>

    </body>

</html>

Quellcode 1

<table>

    <tr>

        <td>Inhalt Zeile 1, Spalte 1</td>

        <td>Inhalt Zeile 1, Spalte 2</td>

    </tr>

    <tr>

        <td>Inhalt Zeile 2, Spalte 1</td>

        <td>Inhalt Zeile 2, Spalte 2</td>

    </tr>    <tr>

        <td>Inhalt Zeile 3, Spalte 1</td>

        <td>Inhalt Zeile 3, Spalte 2</td>

    </tr>

</table>

Quellcode 2

Verwendete HTML-Elemente

Die Darstellung des Kalenders per HTML erfordert im Wesentlichen nur einige wenige HTML-Elemente. Drei davon dienen der Strukturierung von Tabellen.

Aufbau von Tabellen mit HTML

Wenn Sie in HTML eine Tabelle anzeigen möchten, teilen Sie dies dem Browser durch das HTML-Element <table> mit. Anschließend folgt der Inhalt der Tabelle, gefolgt von dem schließenden HTML-Element </table>.

Zeilen und Spalten

Eine neue Zeile in einer HTML-Tabelle wird durch das Element <tr> eingeleitet und mit </tr> beendet.

Eine Spalte innerhalb einer Zeile hat einen ähnlichen Aufbau wie eine Spalte: Sie wird durch das Element <td> eingeleitet und mit </td> beendet.

Die Spalte ist das kleinste Element innerhalb einer HTML-Tabelle, daher enthält sie den eigentlichen Inhalt und entspricht damit einer Zelle.

Eine Tabelle mit drei Zeilen und zwei Spalten erhalten Sie mit dem HTML-Code aus Quellcode 2.

Der Inhalt wird ohne weitere Zeichen wie z. B. Anführungszeichen einfach zwischen die Elemente <td> und </td> platziert.

Hyperlinks

Wenn Sie von einer HTML-Seite aus eine andere aufrufen möchten, verwenden Sie dazu einen Hyperlink. Hyperlinks haben folgendes Format:

<a href="NaechsteSeite.htm">Beschreibung des Hyperlinks</a>

Hyperlinks haben also wieder ein öffnendes und ein schließendes Element wie Tabellen, Zeilen und Spalten. Das öffnende Element wird allerdings um eine Zusatzinformation ergänzt: den Namen der Seite, die bei der Betätigung des Hyperlinks aufgerufen werden soll. Sie werden später noch weitere ergänzende Eigenschaften zu den einzelnen Elementen wie z. B. die Breite von Tabellen und Tabellenspalten kennen lernen.

Hyperlinks haben noch eine Besonderheit: Sie können sie verwenden, um Informationen von einer Seite zur nächsten zu übergeben. Dazu ergänzen Sie den Hyperlink um das Fragezeichen-Symbol (?) und fügen der Adresse ein Paar aus Parameternamen und Wert, getrennt durch ein Gleichheitszeichen, hinzu, zum Beispiel:

<a href="NaechsteSeite.htm?
Parameter1=Wert1">Beschreibung des Hyperlinks</a>

Wenn Sie mehrere Parameter übergeben möchten, setzen Sie hinter den letzten Wert ein Kaufmanns-Und (&) gefolgt von dem nächsten Parameter.

Verwendung von DHTML

DHTML bietet die Möglichkeit, den kompletten Inhalt von HTML-Dokumenten dynamisch anzupassen sowie Elemente hinzuzufügen, zu löschen und deren Eigenschaften zu ändern.

Damit Sie mit DHTML einzelne Elemente einer HTML-Seite ansprechen können, müssen Sie ihnen einen Namen oder eine ID zuweisen.

Einige Elemente benötigen keine besondere Kennzeichnung, da sie innerhalb des Dokuments einzigartig sind - z. B. das den Inhalt umschließende Body-Element.

Die Zusammenstellung der Tabelle zur Darstellung des Kalenders aus Abb. 1 erfordert einige hundert HTML-Elemente einschließlich der Anpassung ihrer Eigenschaften.

Da das einzelne Erstellen jedes dieser Steuerelemente und die Anpassung ihrer Eigenschaften per DHTML einige Zeit erfordern würde, gehen Sie im Folgenden einen etwas anderen Weg:

Sie erstellen zunächst den kompletten HTML-Code für die Seite und schreiben ihn anschließend in die zuvor initialisierte leere Seite. Das geschieht mit der folgenden Methode der MSHTML-Bibliothek (vorausgesetzt das Webbrowser-Steuerelement heißt ctlWebbrowser):

ctlWebbrowser.Document.Write strHTML

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Verwandte Beiträge:

HTML-Editor-Steuerelement

Onlinehilfe mit dem HTML Help Workshop

Zugriff auf Daten in Formularen und Steuerelementen

Access-FAQ: Rund um Access

Kein Datensatz- und Positionswechsel bei Requery

Listenfeld und Details in einem Formular

Steuerelemente zur Laufzeit verschieben

Lookup-Daten verwalten

TreeView-Elemente im Griff

Ereignisprozeduren

Benutzerverwaltung

Individuelle Datenauswahl

Charts mit Access und Google

Arbeiten mit den DataGrid-Steuerelement

© 2003-2015 André Minhorst Alle Rechte vorbehalten.