Access 2002 für Windows Grundlagen für Datenbankentwickler ACC2002D 00-0-03-75-05 Autor: Dr. Hansjörg Grafen Inhaltliches Lektorat: Sabine Kleinschmidt 1. Auflage: Juli 2001 (190701) Ó by HERDT-Verlag, Nackenheim, Germany Internet: http://www.herdt.com Alle Rechte vorbehalten. Kein Teil des Werkes darf in irgendeiner Form (Druck, Fotokopie, Microfilm oder einem anderen Verfahren) ohne schriftliche Genehmigung des Herausgebers reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. Diese Unterlage wurde mit großer Sorgfalt erstellt und geprüft. Trotzdem können Fehler nicht vollkommen ausgeschlossen werden. Verlag, Herausgeber und Autoren können für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. ACCESS Microsoft INHALTSVERZEICHNIS 1 Eine einfache Datenbankanwendung.......... 4 Access 2002 - Grundlagen für Datenbankentwickler 5.7 Tabellenstruktur ändern .................................56 Tabelleneigenschaften festlegen ....................57 1.1 Was Sie wissen sollten.....................................4 5.8 1.2 Was ist ein Datenbankprogramm?....................5 5.9 1.3 Tabellen und Beziehungen ...............................6 Tabellen speichern und Primärschlüssel festlegen.........................................................58 1.4 Abfragen...........................................................9 5.10 Sonstige Arbeiten mit Tabellen.......................60 1.5 Formulare und Berichte ..................................10 1.6 Schnellübersicht .............................................11 2 Datenbankgrundlagen................................. 12 2.1 Allgemeines zu Datenbanken .........................12 2.2 Sichten auf eine Datenbank............................13 2.3 Relationale Datenbanken ...............................15 2.4 Die erste Normalform .....................................17 2.5 Die zweite Normalform ...................................18 2.6 Die dritte Normalform .....................................19 2.7 Grundlagen zum Entity-Relationship-Modell ..............................20 2.8 Beschreibung des ER-Modells .......................22 2.9 Schnellübersicht .............................................24 2.10 Übung.............................................................25 3 Die Arbeitsoberfläche ................................. 26 3.1 Access starten und beenden ..........................26 3.2 Das Access-Anwendungsfenster ....................27 3.3 Personalisierte Menüs ....................................28 3.4 Symbolleisten anpassen.................................30 3.5 Schnell Hilfe zum Programm erhalten ............32 3.6 Schnellübersicht .............................................33 3.7 Übung.............................................................33 4 Grundlegende Arbeiten mit Datenbanken.......................................... 34 4.1 Datenbank öffnen und schließen ....................34 5.11 Schnellübersicht.............................................61 5.12 Übung ............................................................62 6 Feldeigenschaften........................................64 6.1 Grundlagen zu Feldeigenschaften..................64 6.2 Die Feldeigenschaften FELDGRÖSSE und DEZIMALSTELLEN .............................................65 6.3 Standardwerte festlegen.................................66 6.4 Die Feldeigenschaft FORMAT ..........................66 6.5 Die Feldeigenschaft EINGABEFORMAT .............69 6.6 Gültigkeitsprüfung während der Dateneingabe...........................................72 6.7 Nachschlagelisten ..........................................74 6.8 Schnellübersicht.............................................75 6.9 Übung ............................................................76 7 In der Datenblattansicht arbeiten ...............78 7.1 Aufbau der Datenblattansicht .........................78 7.2 Datensätze einfügen und löschen ..................80 7.3 Felder markieren und bearbeiten....................81 7.4 Änderungen rückgängig machen....................82 7.5 Rechtschreibprüfung in Textfeldern................83 7.6 Anzeige (Layout) der Tabelle verändern.........85 7.7 Spalten verschieben, fixieren und ausblenden..............................................87 7.8 Tabellenstruktur in der Datenblattansicht ändern............................................................88 7.9 Datensätze im AutoFormular eingeben ..........90 7.10 Schnellübersicht.............................................91 7.11 Übung ............................................................92 4.2 Grundlagen einer Access-Datenbank .............36 4.3 Datenbank mit dem Assistenten erstellen.......39 4.4 Datenbank manuell erstellen ..........................40 4.5 Datenbankobjekte bearbeiten.........................41 8.1 Feldinhalte suchen und ersetzen....................94 4.6 Objekte kopieren, verschieben und löschen ....................................................42 8.2 Datensätze sortieren ......................................96 8.3 Grundlagen von Filtern...................................96 8.4 Auswahlbasierter Filter...................................98 8.5 Formularbasierter Filter ..................................99 8.6 Ausdrücke formulieren ................................. 100 4.7 Objekte aus- und einblenden..........................44 4.8 Schnellübersicht .............................................45 4.9 Übung.............................................................45 5 Tabellen erstellen und Tabellenstruktur bearbeiten ....................... 46 5.1 Grundlagen zu Tabellen .................................46 5.2 Tabellen mit dem Tabellen-Assistenten erstellen..........................................................47 5.3 Tabellen in der Datenblattansicht erstellen .....49 5.4 Tabellen manuell erstellen und bearbeiten .....50 5.5 Feldname und Felddatentyp festlegen............52 5.6 Feldbeschreibung und automatisch Felder einfügen..........................................................55 8 Daten suchen, sortieren und filtern............94 8.7 "Filter nach"-Methode ................................... 101 8.8 Spezialfilter................................................... 102 8.9 Besonderheiten bei UND/ODER-Verknüpfungen......................... 103 8.10 Schnellübersicht........................................... 104 8.11 Übung .......................................................... 105 I Inhaltsverzeichnis 9 Indizierung.................................................. 106 13 Daten aus Tabellen und Abfragen drucken....................................................... 156 9.1 Grundlagen zur Indizierung .......................... 106 9.2 Mit Indizes arbeiten ...................................... 108 13.1 Tabellen oder Abfragen direkt drucken ........ 156 9.3 Besonderheiten des Primärschlüssels ......... 110 13.2 Die Seitenansicht......................................... 157 9.4 Schnellübersicht........................................... 112 13.3 Die Seiteneinstellungen ............................... 159 9.5 Übung .......................................................... 112 13.4 AutoBericht erstellen.................................... 160 13.5 Schnellübersicht .......................................... 161 13.6 Übung .......................................................... 162 10 Beziehungen zwischen Tabellen.............. 114 10.1 Grundlagen zu Beziehungen........................ 114 10.2 Beispiele für Beziehungen zwischen Tabellen........................................ 116 14.1 Grundlagen der Formularerstellung ............. 164 10.3 Referenzielle Integrität ................................. 117 14.2 AutoFormulare erstellen............................... 165 10.4 Das Beziehungsfenster ................................ 119 14.3 Formulare mit dem Assistenten erstellen ..... 166 10.5 Beziehungen erzeugen und löschen ............ 120 14.4 10.6 Vorhandene Beziehungen einsehen und bearbeiten.............................. 121 Hauptformulare mit Unterformular erstellen ....................................................... 168 14.5 Schnellübersicht .......................................... 170 10.7 Einstellungen bei referenzieller Integrität ..... 122 14.6 Übung .......................................................... 170 10.8 Unterdatenblätter verwenden ....................... 122 10.9 Schnellübersicht........................................... 124 10.10 Übung ......................................................... 124 11 Abfragen ..................................................... 126 14 Standardformulare erstellen .................... 164 15 Standardberichte erstellen ....................... 172 15.1 Grundlagen zu Berichten ............................. 172 15.2 Berichte mit dem Assistenten erstellen ........ 174 15.3 Gruppierte Berichte erstellen ....................... 175 11.1 Grundlagen zu Abfragen .............................. 126 15.4 Zusammenfassende Berichte erstellen ........ 176 11.2 Abfragearten ................................................ 127 15.5 Adressetiketten erstellen.............................. 177 11.3 Einfache Auswahlabfragen mit dem Assistenten erstellen .................................... 128 15.6 Schnellübersicht .......................................... 179 15.7 Übung .......................................................... 179 11.4 Einfache Auswahlabfragen manuell erstellen.......................................... 129 11.5 Abfragen speichern und öffnen .................... 132 11.6 Abfragekriterien eingeben ............................ 132 11.7 Weitere Möglichkeiten zur Formulierung von Abfragen................................................ 134 11.8 Spitzenwerte ................................................ 136 11.9 Berechnete Felder........................................ 137 11.10 Der Ausdrucksgenerator .............................. 138 11.11 Schnellübersicht........................................... 140 11.12 Übung ......................................................... 140 12 Weiterführende Abfragen ......................... 142 12.1 Möglichkeiten zur Erstellung von Abfragen................................................ 142 12.2 Auswahlabfragen mit mehreren Tabellen..... 143 12.3 Besonderheiten bei Abfragen mit Beziehungen .......................................... 144 12.4 Abfragen mit Aggregatfunktionen ................. 146 12.5 Abfragen mit Parametern ............................. 147 12.6 Aktualisierungsabfragen............................... 148 12.7 Tabellenerstellungsabfragen ........................ 148 12.8 Anfügeabfragen ........................................... 149 12.9 Löschabfragen ............................................. 150 12.10 Assistent zur Duplikatsuche ......................... 151 12.11 Assistent zur Inkonsistenzsuche .................. 152 12.12 Schnellübersicht........................................... 154 12.13 Übung ......................................................... 154 Stichwortverzeichnis...................................... 180 2 Access 2002 - Grundlagen für Datenbankentwickler 2 Datenbankgrundlagen In diesem Kapitel erfahren Sie à wie eine Datenbank aufgebaut ist à welche Sichtebenen auf eine Datenbank existieren à welche Begriffe bei relationalen Datenbanken eine Rolle spielen à was das Entity-Relationship-Modell (ER-Modell) ist à wozu Normalisierung dient und wie sie durchgeführt wird Voraussetzungen 2.1 ü Grundverständnis der Speicherung von Daten ü Grundlagen einer Datenbankanwendung unter Access Allgemeines zu Datenbanken Datenbanktypen Dieses Kapitel beschäftigt sich mit den Grundlagen von Datenbanken und ist teilweise vom Datenbankprogramm Access unabhängig. Es werden im Folgenden einige Grundbegriffe der Datenbanksprache vermittelt sowie einige Hilfsmittel und Techniken bei der Datenbankentwicklung vorgestellt. In vielen Fällen, wo Arbeitsabläufe EDV-unterstützt abgewickelt werden, ist die Speicherung einer großen Menge an Daten erforderlich. Ein Datenbankprogramm verwaltet diese Daten und ermöglicht, diese Daten zu lesen, zu ändern, zu löschen und neue hinzuzufügen. Lohn- und Gehaltsabrechnung Zuordnungsliste: Mitarbeiter in den Abteilungen Adressliste sortiert nach Wohnort PERSONALDATEN ABTEILUNGSDATEN KUNDENVERZEICHNIS Möglichkeiten der Datennutzung Wie die Daten letztendlich gespeichert werden, hängt einerseits vom Datenbanktyp, andererseits vom Datenbanksystem selbst ab. Es gibt verschiedene Typen von Datenbanken, von denen der relationale Datenbankaufbau der bekannteste ist. Daten werden jedoch nicht immer in Tabellen gespeichert und müssen auch nicht immer einen bestimmten, fest vorgegebenen Felddatentyp besitzen. 12 Datenbanktyp Bemerkungen Hierarchische Datenbanken Zwischen den Datensätzen besteht eine Rangordnung. Ein untergeordneter Datensatz gehört immer zu einem anderen, übergeordneten. Die Beziehungen zwischen den Daten sind immer vom Typ 1:n, sodass ein gerichteter Graph entsteht, der auch als Baum bezeichnet wird. Netzwerkdatenbanken Dieses Modell ist dem hierarchischen Modell ähnlich. Die Daten sind aber nicht in einem einheitlichen Baum angeordnet, sondern in einem vom Datenbankentwickler definierten Netz. Beziehungen werden als Sets (Mengen) bezeichnet. 2 Datenbankgrundlagen Objektorientierte Objektorientierte Datenbanken speichern keine Datensätze, sondern Objekte (Daten plus Datenbanken Operationen auf den Objekten). Zum Beispiel kann das Objekt Hochofen gespeichert werden. Das Objekt besitzt Eigenschaften wie aktuelle Temperatur und den Wirkungsgrad sowie Operationen auf den Daten wie Temperatur erhöhen. Relationale Datenbanken 2.2 Die relationalen Datenbanken stellen zur Zeit den häufigsten Datenbanktyp dar. Microsoft Access gehört dazu. Die Daten werden als Tabellen gespeichert, zwischen denen Beziehungen definiert werden. Für die Auswertung der Daten hat sich die Abfragesprache SQL durchgesetzt (structured query language - strukturierte Abfragesprache). Sichten auf eine Datenbank Unterschiedlicher Informationsbedarf Unterschiedliche Personengruppen, die mit einer Datenbank arbeiten, haben je nach Aufgabe unterschiedliche Sichten auf die Datenbank. Der Personalleiter benötigt beispielsweise Informationen über Personaldaten, während der Datenbankverwalter mit der Datenspeicherung und Datensicherheit beschäftigt ist. Die Details des physischen Datenbankentwurfs sind für den Personalleiter irrelevant. Sie werden vom Datenbankadministrator festgelegt und bei Bedarf gewartet. Aus dem logischen und physischen Datenbankentwurf ergibt sich die Datenbankarchitektur: Benutzersicht (externe Sicht) Lagerbestand (Formular 1) Umsätze (Formular 2) Logische Sicht Lagerbestand (Abfrage 1) Umsatz pro Kunde (Abfrage 2) Interne Sicht Artikeltabelle (Access-Datenbank) Kundentabelle (Access-Datenbank) Europäische Top 10-Kunden (Bericht) Top 10-Exportkunden (Abfrage 3) Rechnungen (Excel-Arbeitsmappe) Europäische Kunden (Abfrage 4) Ausländische Kunden (dBase-Datenbank) Unterschiedliche Sichten auf eine Datenbank Interne Sicht Die interne Sicht beschäftigt sich mit der physikalischen Anordnung der Daten auf den Datenträgern. Die Daten können auf verschiedenen Rechnern in unterschiedlichen Gebäuden und Städten verteilt sein. Daten, die später zum Beispiel als eine Tabelle zu sehen sind, müssen nicht zwangsläufig gemeinsam gespeichert werden. Logische Sicht Hier wird die Gesamtheit aller Daten mit ihren Beziehungen dargestellt. In der logischen Sicht setzt das Datenbankdesign ein: Welche Informationseinheiten werden wo verwaltet, und welche Beziehungen bestehen zu anderen Informationen. Benutzersicht Stellt die Sicht des Anwenders dar, der nur mit einem Teil der Daten arbeitet. Er kennt weder den internen Aufbau noch die Gesamtsicht der Datenbank, sondern nur die für ihn sichtbar gemachten Daten. Diese Daten können auf andere Weise verknüpft und zusammengestellt sein als in der logischen Sicht. Vorteile der Abgrenzung von interner, logischer und Benutzersicht þ Die Benutzer einer Datenbank müssen nicht wissen, wie die Daten physikalisch organisiert sind. Dadurch kann die physische Datenstruktur geändert werden, ohne dass sich das Datenbankdesign oder die Sicht der Benutzer ändert (zum Beispiel können die Daten auf mehrere Computer verteilt werden, weil die Datenmenge zu groß geworden ist). Insbesondere laufen die Anwendungsprogramme, die mit der Datenbank arbeiten, problemlos weiter. þ Auf der internen Ebene können unterschiedliche Tabellenformate (zum Beispiel Access, dBase, MySQL, Microsoft SQL Server oder Oracle) verwendet werden. Der Benutzer muss nicht wissen, woher die Daten kommen. 13 2 Access 2002 - Grundlagen für Datenbankentwickler þ Die Datenstruktur einer logischen Sicht ist speziell auf die Bedürfnisse und Berechtigungen der Benutzer ausgerichtet. Der Personalchef darf beispielsweise die Gehälter der Mitarbeiter sehen, während ein Angestellter der Personalverwaltung nur eine Sicht auf die Adressdaten der Angestellten hat. Logischer Datenbankentwurf Physischer Datenbankentwurf Der logische Entwurf beschreibt die Struktur der Daten und der Bindungen untereinander: ý Welche Daten werden wie zusammengefasst (zum Beispiel in Tabellen)? ý Wie sehen die Beziehungen zwischen den Daten aus (zum Beispiel referenzielle Integrität)? ý Einfügen der Business-Logik: Gültigkeitsprüfungen, Eingabeformate etc. Diese Logik steht dann automatisch jedem Nutzer der Daten zur Verfügung. Dadurch ist eine konsistente Datenhaltung gewährleistet. Der physische Entwurf beschäftigt sich mit dem Abspeichern der Daten: ý Wie werden die Daten auf dem Datenträger verteilt? ý Welche Zugriffsmöglichkeiten bestehen zu den Daten (Netzwerk, Internet, lokal, ...)? ý Optimierung der Abspeicherung der Daten für oft auftretende Suchoperationen ý Automatische Sicherungsmechanismen sind einzubauen (zum Beispiel Daten mehrfach, gespiegelt abspeichern - bei Ausfall eines Datenbankrechners existiert dann ein Ersatzrechner mit den gleichen Daten). Unter Access können Sichten als Abfragen eingerichtet werden, die den Benutzern die jeweils benötigten Daten aus den Tabellen heraussuchen und die übrigen verbergen. Datenbankmanagementsysteme Zur Verwaltung von Daten wird eine Software benötigt, die als Datenbankmanagementsystem (DBMS) bezeichnet wird. Hauptaufgabe dieses Systems ist es, Benutzeranfragen zu verarbeiten und die gewünschten Daten zurückzuliefern. Ein DBMS beschäftigt sich mit allen drei Sichten einer Datenbank. Versucht beispielsweise ein Benutzer, Daten zu einem Kunden abzufragen, führt das DBMS beispielsweise folgende Operationen durch: ý Die Anfrage wird in eine interne Vorgehensweise übersetzt, um den gewünschten Datensatz bereitzustellen. ý Die Benutzersicht wird in die logische Sicht übersetzt, und die dort benötigten Datenstrukturen werden ermittelt. ý Jetzt wird der physikalische Speicherort der Daten bestimmt. ý Der Zugriff auf die Daten erfolgt mit Operationen des Betriebssystems. ý Die Daten werden nun dem Benutzer übergeben. Das DBMS ist demnach für mehrere Transformationen der Sichten verantwortlich. Zusätzlich werden beispielsweise Berechtigungen der Benutzer berücksichtigt, Datenänderungen protokolliert, Überprüfungen bei der Dateneingabe vorgenommen oder beim Löschen von Daten berücksichtigt und ein Mehrbenutzerbetrieb unterstützt. Verteilte Datenbanken Verteilte Datenbanken speichern Daten in mehreren Datenbanken (zum Beispiel auf Computern in verschiedenen Städten) und besitzen Mechanismen zur Zusammenführung und Abfrage der verteilten Daten. Zum Beispiel besitzen die Filialen einer Bank die Kundendaten ihrer Kunden, die Zentrale kann aber auch auf alle lokalen Kundendaten zugreifen. Umgekehrt können den Filialen Daten aus der Zentrale zur Verfügung gestellt werden. Die jeweiligen Sichten verbergen die Herkunft der Daten vor den Benutzern. 14 Datenbankgrundlagen 2.3 2 Relationale Datenbanken Begriffe in relationalen Datenbanken Das relationale Datenmodell wurde 1970 von dem Mathematiker E. F. Codd entwickelt und mit Hilfe der Mengentheorie beschrieben. Dieses Modell bildet die Basis für relationale Datenbanken. Entitäten, Attribute und Tupel Unter einer Entität wird in der Datenbanksprache ein Objekt verstanden, über das Daten gesammelt werden sollen. Eine Entität könnte zum Beispiel eine Person oder ein Gegenstand sein. Im mathematischen Sinn entsprechen Entitäten den Elementen einer Menge. Die jeweils zu einer Entität vorhandenen Informationen werden Attributen zugeordnet. Attribute einer Person könnten zum Beispiel Name oder Geburtsdatum sein, Attribute eines Gegenstandes jede beliebige physikalische Eigenschaft oder der Wert. Während der Begriff "Entität" die Gesamtheit der betreffenden Informationen innerhalb der Datenbank bezeichnet, werden einzelne Ausprägungen, wie bestimmte Personen, Tupel genannt. Relationen und Tabellen Eine Relation ist in der Datenbanksprache eine Tabelle und damit eine Konstruktion aus Spalten und Zeilen. Datenbanktechnisch bezieht sich also eine Relation nicht auf die Verknüpfung zwischen Tabellen. In einem relationalen Datenbankdesign muss für jede Entität eine Relation (Tabelle) angelegt werden. Das englische Wort "Relation" bedeutet "Beziehung". Relationen in Datenbanken sind aber die Tabellen selbst und nicht die Beziehungen zwischen ihnen. In einer Tabelle werden die Daten gespeichert. Diese Daten stellen die Informationen dar, die Sie verwalten wollen. Spalten und Zeilen Eine Tabelle besteht aus Spalten, die auch Felder genannt werden und den Attributen entsprechen. Die Zeilen oder Datensätze einer Tabelle bilden die Tupel ab. Da die Attribute für die gesamte Aufbau einer Tabelle (Relation) Entität festgelegt wurden, ist der Aufbau aller Datensätze einer Tabelle gleich. Der Aufbau einer Tabelle wird auch die Struktur oder das Schema der Tabelle genannt. Die verschiedenen Datenbanksysteme (zum Beispiel Access, dBase, MySQL oder Paradox) haben unterschiedliche Tabellenformate, von denen die Anforderungen an die Namensgebung der Tabellen und Felder sowie die Arten der Datentypen der Felder abhängen. Notizen 15 2 Access 2002 - Grundlagen für Datenbankentwickler Schlüssel Primärschlüssel Das Relationenmodell fordert, dass jede Tabelle ein Attribut enthält, über das jeder Datensatz eindeutig identifiziert werden kann. In der Praxis kommen Attribute, die in jedem Fall eindeutig sind, selten vor. Beispiele wären Kraftfahrzeugkennzeichen oder eine Kombination aus Bankleitzahl und Kontonummer. Oft werden daher zusätzliche Attribute definiert, welche die Tupel fortlaufend oder nach einem Nummernkreis durchnummerieren. Sie können vor dem Benutzer verborgen bleiben und nur der internen Datenbankverwaltung dienen oder sichtbar sein, wie zum Beispiel Artikel- oder Kundennummern. Solche eindeutigen Felder werden auch auf der physikalischen Ebene benötigt und dienen unter Anderem dem schnellen Auffinden von Datensätzen in großen Tabellen. Sie werden Primärschlüssel genannt. Im technischen Sinne kann jede Tabelle nur einen Primärschlüssel haben. Die Tabelle erscheint nach diesem Schlüssel sortiert. Ein Primärschlüssel ändert normalerweise während der gesamten Existenz eines Datensatzes seinen Wert nicht. Unter Access ist es möglich, Tabellen ohne Primärschlüssel zu verwenden. Sie können auch Werte von Primärschlüsseln ändern. Für größere Projekte ist es aber sinnvoll, sich an die Regeln des Relationenmodells zu halten. Sekundärschlüssel Häufig sollen die Datensätze einer Tabelle in einer anderen Reihenfolge durchlaufen werden, als durch den Primärschlüssel vorgegeben, zum Beispiel nach Postleitzahlen. Dazu muss die gesamte Tabelle nach diesen Postleitzahlen sortiert werden. Bei großen Datensatzmengen kann dies eine lange Zeit in Anspruch nehmen. Um den Zugriff auf die Daten zu beschleunigen, können zusätzlich zum Primärschlüssel weitere Indizes angelegt werden, die auch als Sekundärschlüssel bezeichnet werden. Mit Sekundärschlüsseln ist es möglich, nach anderen Dateninhalten als dem Primärschlüssel zu suchen, ohne das alle Datensätze einer Tabelle durchlaufen werden müssen. Unter Access heißt ein Sekundärschlüssel Index. Fremdschlüssel Ein Fremdschlüssel ist ein Feld in einer Tabelle, welches eine Beziehung zu einem Schlüsselfeld einer anderen Tabelle herstellt. Beispielsweise befindet sich in einer Tabelle Aufträge in jedem Datensatz eine Kundennummer des Kunden, der den Auftrag ausgelöst hat. Diese Kundennummer identifiziert einen Kunden in der Kundentabelle eindeutig. Die Kundennummer in der Auftragstabelle stellt somit einen Fremdschlüssel ("fremder" Schlüssel einer anderen Tabelle) dar. Hilfsmittel und Methoden zum Datenbankentwurf Das Entwerfen einer Datenbank ist keine einfache Aufgabe. Sie müssen sämtliche Informationen sammeln, die in der Datenbank verwaltet werden, unterschiedliche Benutzersichten realisieren, eventuell die Daten auf mehreren Rechnern verteilen und so fort. Je nach verwendetem Datenbanksystem und Art der Daten müssen Sie sich für ein Datenmodell entscheiden. Entscheiden Sie sich für das relationale Datenmodell, werden die Daten in Tabellen gespeichert. Zwischen den Tabellen können Sie Beziehungen und Integritätsregeln definieren. 16 Relationales Datenmodell Darstellung der Daten in Tabellen, zwischen denen Beziehungen bestehen können Normalisierungsprozess Methode zur redundanzfreien Speicherung von Daten (keine mehrfache Speicherung) und zur Vermeidung fehlerhafter Datenerfassung beim Löschen, Ändern, Hinzufügen von Daten Entity-Relationship-Modell Grafische Darstellung aller relevanten Informationen zu den definierten Tabellen und den Beziehungen zwischen ihnen Integritätsregeln Dies sind Regeln, welche den logischen Aufbau und die Korrektheit der Datenbank garantieren. Datenbankmanagementprogramme können diese Regeln überwachen und die Daten bei Änderungen, Lösch- und Einfügevorgängen überprüfen. Datenbankgrundlagen 2 Normalisierung und ER-Modell Ein relationales Datenbankdesign wird mit Hilfe der so genannten Normalisierung erreicht. Dabei werden die Daten über mehrere Stufen, die so genannten Normalformen, auf Tabellen verteilt, bis keine Redundanzen und Inkonsistenzen mehr vorhanden sind. Das Entity-Relationship-Modell (ER-Modell) dient der grafischen Darstellung eines Datenbankmodells. Dadurch können die Verteilung der Daten auf die Attribute der Relationen und die Beziehungen der Relationen untereinander veranschaulicht werden. Mit Hilfe der Normalisierung und des ER-Modells kann die ganze Datenbankstruktur mit Papier und Bleistift entworfen werden, bevor irgendwelche Arbeiten am Computer vorgenommen werden müssen. 2.4 Die erste Normalform Eine rohe Datensammlung Die Abbildung zeigt die Tabelle einer kleinen CD-Sammlung. Der Übersichtlichkeit halber sind einige Informationen, die noch interessant sein könnten (etwa das Erscheinungsjahr einer CD), weggelassen worden. Der Weg, alle Daten in einer Tabelle unterzubringen, hat unverkennbar einige Nachteile. Was zuerst auffällt, ist, dass das Feld Lieder nicht jeweils einen, sondern mehrere Werte annehmen kann. Das hat Nachteile, weil ý beim Bearbeiten der Lieder umständlich im Innern des Feldes gearbeitet werden muss ý nach den Liedern nicht sortiert werden kann ý in einem Feld Speicherplatz für eine unbekannte Zahl von Werten bereitgehalten werden muss, was nicht immer gelingen wird und bei CDs mit wenigen Liedern zur Vergeudung von Speicherplatz führt. ý Wenn später zusätzlich Informationen zu den einzelnen Liedern gespeichert werden sollen, etwa die Spieldauer, wäre das so nicht oder nur schwer möglich. Um diesen Problemen aus dem Weg zu gehen, muss die Tabelle in die erste Normalform gebracht werden. Definition þ Eine Relation befindet sich dann in der ersten Normalform, wenn alle Attribute nur einen einzigen Wert aufweisen. Notizen 17 2 Access 2002 - Grundlagen für Datenbankentwickler Eine neue Entität Die Tabelle befindet sich deswegen nicht in der ersten Normalform, weil übersehen wurde, dass es sich bei den Liedern um eine eigene Entität handelt. Es wird also eine neue Tabelle Lieder benötigt, die für jedes Lied einen eigenen Datensatz enthält. Zusätzlich wurde in beiden Tabellen das Feld CDID hinzugefügt, das þ in der Tabelle CDs als Primärschlüssel dient þ das verknüpfte Datenfeld für die nun notwendige 1:nBeziehung zwischen den Tabellen CDs und Lieder ist. Darüber hinaus können Sie jetzt zu jedem einzelnen Lied noch Die neue Tabelle "Lieder" die Spieldauer speichern. Das neue Feld LiedID ist der Forderung geschuldet, dass jede Tabelle einen Primärschlüssel haben soll. In der Abbildung ist die Tabelle nach dem Feld LiedName sortiert, um zu zeigen, dass durchaus zwei oder mehr Lieder den gleichen Namen haben können, in diesem Fall Solitude. Die CD-Sammlung in der 1. Normalform Unter Access können Sie die Lieder einer einzelnen CD bequem im Unterdatenblatt der Tabelle CDs bearbeiten. Die Tabellen "CDs" und "Lieder" im Unterdatenblatt 2.5 Die zweite Normalform Redundanzen In einer CD-Sammlung sind für gewöhnlich mehrere CDs von jeweils dem gleichen Künstler beziehungsweise von der gleichen Band. In unserem Beispiel ist das der libanesische Jazzer Rabih Abou-Khalil. Sein Name ist daher mehrfach gespeichert. Dies hat die folgenden Nachteile: ý Es wird unnötig Speicherplatz belegt. Das kommt insbesondere dann zum Tragen, wenn Sie noch weitere Informationen über die Bands speichern wollen. ý Wenn Sie merken, dass Sie den Namen falsch geschrieben haben, müssen Sie ihn an mehreren Stellen ändern. Wenn Sie den Namen nur an einer Stelle falsch geschrieben haben, werden Sie beim Suchen und Sortieren in der CD-Tabelle kein richtiges Ergebnis erhalten. ý Es ist nicht möglich, Informationen über Bands zu speichern, zu denen keine CD vorhanden ist. Definition þ 18 Eine Relation befindet sich in der zweiten Normalform, wenn sie sich bereits in der ersten Normalform befindet und jedes Nichtschlüsselfeld vom Primärschlüssel abhängt. 2 Datenbankgrundlagen Realisierung Sie können dieser Forderung nachkommen, indem Sie eine neue Tabelle Künstler anlegen. Das Feld Bandname wird dafür aus der Tabelle CDs entfernt. Die Verbindung zwischen den Tabellen kann durch das neue Schlüsselfeld KünstlerID hergestellt werden. Dass dieses Datenmodell keine Unterscheidung zwischen Einzelkünstlern und Bands kennt, ist eine zulässige Vereinfachung. Die Tabellen "Künstler" und "Labels" Das Datenmodell kann aber dem Vorkommen von CD-Samplern gerecht werden, wenn Sie die neue Beziehung nicht zwischen den Tabellen Künstler und CDs, sondern zwischen Künstler und Lieder anlegen. Offenbar kommt es so der abzubildenden Wirklichkeit näher. Es gibt eine direkte Beziehung zwischen Künstlern und Liedern, die von der Zusammenstellung der CDs unabhängig ist. Das Datenmodell ist dennoch nicht vollständig. Die Möglichkeit, dass dasselbe Lied desselben Künstlers auf verschiedenen CDs enthalten sein kann, kann ohne Redundanz nicht abgebildet werden. Als Beispiel mag es dennoch genügen. Aus den gleichen Gründen wird das Feld Label aus der Tabelle CDs in eine neue Relation verschoben. In beiden neuen Tabellen können nun zusätzliche Informationen gespeichert werden, die weder von den Liedern noch von den CDs abhängen. 2.6 Die dritte Normalform Die CD-Sammlung in der 2. Normalform Abhängige Felder Es fällt auf, dass in der Tabelle Labels die Inhalte der beiden Felder Land-Kürzel und Land unmittelbar von einander abhängen. In solch einem Fall wird von transitiver Abhängigkeit gesprochen. Zugleich können Werte mehrmals vorkommen. Das hat eine Reihe von Nachteilen: ý Wenn in einem Datensatz der Wert des Feldes Länder-Kürzel geändert wird, muss auch der Wert des Feldes Land geändert werden. ý Die Werte für beide Felder müssen mehrfach gespeichert werden, wenn mehrere Labels aus dem gleichen Land in der Sammlung vorkommen. Notizen 19 15 Access 2002 - Grundlagen für Datenbankentwickler 15 Standardberichte erstellen In diesem Kapitel erfahren Sie à welche Berichtsarten in Access zur Verfügung stehen à wie Sie einen Bericht mit dem Assistenten erstellen à wie Sie einen gruppierten und einen zusammenfassenden Bericht erstellen à wie Sie einen Bericht für den Ausdruck von Etiketten erstellen Voraussetzungen ü Tabellenerstellung und -bearbeitung ü Daten drucken ü Beziehungen zwischen Tabellen 15.1 Grundlagen zu Berichten Vorteile von Berichten Mit Berichten haben Sie die Möglichkeit, Ihre Daten wirkungsvoll als gedruckte Dokumente darzustellen. Sie können die Daten des Berichts beliebig aus einer oder mehreren Tabellen zusammenstellen, gruppieren und optisch aufbereiten. þ Individuelle Gestaltungsmöglichkeiten mit Hilfe von Grafiken, OLE-Objekten und verschiedenen Farben þ Übersichtliche und leichte Datenauswertung þ Möglichkeit zur Gruppierung von Datensätzen Möglichkeiten zum Erstellen von Berichten ý AutoBericht: Access erstellt automatisch einen Bericht mit allen Datenfeldern der gewählten Tabelle oder Abfrage. ý Berichts-Assistent: In mehreren Schritten können Sie über Dialogfenster die Datenfelder auswählen, die Sie in den Bericht einfügen möchten, und die grafische Gestaltung des Berichts bestimmen. ý Diagramm-Assistent: Mit diesem Assistenten können Sie ein Diagramm in einem Bericht erzeugen. Das Diagramm wird dabei nach einer Datenänderung in der zu Grunde liegenden Tabelle oder Abfrage automatisch aktualisiert. ý Etiketten-Assistent: Mit diesem Assistenten können Sie Adressetiketten erstellen. ý Entwurfsansicht: In dieser Ansicht können Sie einen neuen Bericht ganz individuell gestalten und beispielsweise Grafiken oder Steuerelemente einfügen oder einen bestehenden Bericht bearbeiten. Das Konzept der Berichte ist dem der Formulare sehr ähnlich. Während dort der Schwerpunkt auf der Darstellung der Daten am Bildschirm liegt, liegt hier der Schwerpunkt auf dem Ausdruck auf Papier. 172 Standardberichte erstellen 15 Layoutmöglichkeiten eines Berichts Beim Erstellen eines Berichts können Sie zwischen verschiedenen Gestaltungsmöglichkeiten wählen. Einspaltige Darstellung Jedes Feld des Datensatzes wird auf einer neuen Zeile mit Name und Wert angezeigt. Die Datensätze werden einzeln untereinander ausgegeben. Tabellarische Darstellung Die Anzeige der Datensätze erfolgt zeilenweise in Tabellenform. Diese Darstellung ermöglicht die Ansicht mehrerer Datensätze auf einer Berichtsseite. Gruppierte Darstellung Haben Sie eine Gruppierungsfunktion für ein Datenfeld gewählt (beispielsweise Summe für die Anzahl der Bestellungen pro Artikel), können Sie zwischen verschiedenen Layoutmöglichkeiten zur Anzeige der gruppierten Daten im Bericht wählen. Blockdarstellung Die Datensätze werden blockweise nach den angegebenen Feldern zusammengefasst. Diagramm Hier wird ein Bericht erstellt, in dem die Daten in einem Diagramm grafisch dargestellt werden. Adressetiketten Sie können Etiketten im Endlosformat oder im Einzelblattformat für verschiedene Etikettengrößen erstellen und ausdrucken lassen. Notizen 173 15 Access 2002 - Grundlagen für Datenbankentwickler 15.2 Berichte mit dem Assistenten erstellen Der Berichts-Assistent Mit dem Berichts-Assistenten können Sie die gewünschten Datenfelder aus einer oder aus mehreren Tabellen auswählen. Sie haben zwischen folgenden Layoutmöglichkeiten die Auswahl: þ Einspaltige Darstellung þ Tabellarische Darstellung þ Blockdarstellung þ Gruppierte Darstellung in unterschiedlicher Form Zusätzlich können Sie zwischen verschiedenen vordefinierten Formatvorlagen wählen, die verschiedene Schriftarten und -farben enthalten. Voraussetzung: Um einen Bericht für zwei oder mehr Tabellen zu erstellen, muss eine Beziehung zwischen den Tabellen definiert sein. Þ Aktivieren Sie im Datenbankfenster die Objektkategorie BERICHTE, und klicken Sie auf das Symbol . Þ Markieren Sie anschließend den Eintrag BERICHTS-ASSISTENT, und bestätigen Sie mit OK. Access startet den Berichts-Assistenten. Schritt 1: Tabelle und Datenfelder wählen Þ Wählen Sie die gewünschte(n) Tabelle(n) oder Abfrage(n) aus. Þ Wählen Sie anschließend für jede Tabelle/Abfrage die Datenfelder aus, die der Bericht enthalten soll. Þ Bestätigen Sie mit WEITER. Schritt 2: Datenanzeige wählen Þ Bestimmen Sie, nach welcher Tabelle oder Abfrage der Bericht gruppiert werden soll. Das Dialogfenster erhalten Sie nur, wenn der Bericht mehr als eine Tabelle oder Abfrage enthält. Þ Bestätigen Sie mit WEITER. Um einen Bericht über zwei Tabellen zu erzeugen, brauchen Sie das verknüpfte Datenfeld nicht aufzunehmen. Der Assistent analysiert die Beziehungen der Tabellen und erzeugt im Hintergrund die benötigte Abfrage. Schritt 3: Gruppierungsoptionen festlegen Auswahl der Datenanzeige Þ Legen Sie in diesem Schritt fest, ob die Datensätze nach einem Datenfeld gruppiert werden sollen (vgl. Abschnitt 15.3). Þ Bestätigen Sie mit WEITER. Schritt 4: Sortierung festlegen 174 Þ Wählen Sie im ersten Listenfeld das Datenfeld aus, nach dem die Datensätze sortiert werden sollen. Þ Wählen Sie im zweiten Listenfeld das Datenfeld aus, nach dem die Daten anschließend sortiert werden sollen. 15 Standardberichte erstellen Þ Klicken Sie auf die Schaltfläche AUFSTEIGEND, falls Sie die Sortierrichtung ändern möchten. Þ Mit der Schaltfläche ZUSAMMENFASSUNGSOPTIONEN können Sie Daten zusammenfassen. Þ Bestätigen Sie mit WEITER. Schritt 5: Layout wählen Þ Aktivieren Sie das Optionsfeld = für das gewünschte Layout. = > Enthält der Bericht eine Tabelle oder Abfrage, können Sie nur zwischen den Optionen EINSPALTIG, TABELLARISCH und IN BLÖCKEN wählen. Þ Aktivieren Sie ein Optionsfeld > für die gewünschte Seitenausrichtung. Þ Bestätigen Sie mit WEITER. Layout und Seiteneinstellung Schritt 6: Format wählen Þ Wählen Sie Format aus. das gewünschte Þ Bestätigen Sie mit WEITER. Schritt 7: Berichtsnamen wählen Þ Geben Sie den Berichtsnamen ein. Þ Erzeugen Sie den Bericht mit der Erstellter Bericht in der Seitenansicht Schaltfläche FERTIG STELLEN. 15.3 Gruppierte Berichte erstellen Feldinhalte als Überschriften In einem gruppierten Bericht werden die Daten nach bestimmten Datenfeldern gruppiert dargestellt. Beispielsweise können Sie Personaldaten nach dem Land gruppieren. Innerhalb der Ländergruppen kann eine weitere Gruppierung nach Städten stattfinden. Ein gruppierter Bericht kann auch Daten aus mehreren Tabellen enthalten. Die Datensätze einer Detailtabelle können nach Zuordnung zu einem Datensatz der Mastertabelle gruppiert werden. Notizen 175 15 Access 2002 - Grundlagen für Datenbankentwickler Gruppierung festlegen Die Felder, nach denen die Datensätze gruppiert werden sollen, bestimmen Sie im 2. Schritt (Berichte für eine Tabelle) oder 3. Schritt (Berichte mit mehreren Tabellen) des Berichts-Assistenten. Þ Wählen Sie im Listenfeld das Datenfeld aus, nach dem die Datensätze gruppiert werden sollen, und betätigen Sie die Schaltfläche =, oder klicken Sie doppelt auf den Feldnamen. Þ Wiederholen Sie den Vorgang für alle Datenfelder, nach denen anschließend gruppiert werden soll. Þ Möchten Sie ein Gruppierungsfeld wieder aus dem Bericht entfernen, klicken Sie doppelt auf den Gruppierungsrahmen im Beispielbericht oder auf die Schaltfläche >. Þ = > ? @ Um die Reihenfolge der Gruppierung zu Datenfelder gruppieren ändern, markieren Sie rechts ein Feld und betätigen Sie dann eine der Schaltflächen PRIORITÄT ?. Gruppierungsoptionen festlegen Oft ist es sinnvoll, dass die Gruppierung nicht anhand des gesamten Feldinhalts stattfindet. Beispielsweise können Gruppierungen nach dem Anfangsbuchstaben des Nachnamens oder den ersten zwei Ziffern der Postleitzahl erfolgen. Bei Datenfeldern mit Datumsangaben oder numerischen Werten ist es häufig wünschenswert, die Datensätze nach bestimmten Zeitabschnitten oder Wertintervallen zu gruppieren. 1 Þ Nach Festlegung der Datenfelder für die einzelnen Gruppierungsebenen klicken Sie auf die Schaltfläche GRUPPIERUNGSOPTIONEN @. Sie erhalten eine Liste aller Datenfelder, die als Gruppenebene definiert wurden. Þ Wählen Sie für jede angezeigte Gruppenebene mit Hilfe des entsprechenden Listenfeldes = das Intervall, nach dem ein Gruppenwechsel stattfinden soll. Die möglichen Einstellungen hängen jeweils vom Datentyp des Feldes ab. Mit der Einstellung NORMAL erreichen Sie, dass eine neue Gruppe beginnt, sobald sich der Feldinhalt ändert. 15.4 Zusammenfassende Berichte erstellen Zählen, summieren, mitteln Der zusammenfassende Bericht bietet Ihnen die Möglichkeit, die numerischen Datenfelder von Datensatzgruppen auszuwerten. Beispielsweise können Sie für ein Zahlenfeld die Summe, den Mittelwert oder den minimalen/maximalen Wert berechnen und anzeigen lassen. Die Art der Berechnung bestimmen Sie im 3. Schritt (Berichte für eine Tabelle) oder 4. Schritt (Berichte mit mehreren Tabellen) des Berichts-Assistenten. Der Bericht muss mindestens eine Gruppierung enthalten. Þ Klicken Sie im Berichts-Assistenten auf die Schaltfläche ZUSAMMENFASSUNGSOPTIONEN. Þ Aktivieren Sie anschließend für jedes Feld die gewünschte Berechnungsart. Es stehen hier nur die Datenfelder zur Auswahl, die Zahlen enthalten. 176 15 Standardberichte erstellen Þ Bestimmen Sie mit den Optionsfeldern =, ob der Bericht die einzelnen Datensätze oder nur eine Zusammenfassung der gruppierten Datensätze enthalten soll. Þ Falls der prozentuale Anteil der Summen an der Gesamtsumme im Bericht eingefügt werden soll, aktivieren Sie das Kontrollfeld >. Þ Bestätigen Sie die Einstellungen mit OK. Þ Legen Sie alle weiteren Einstellungen wie gewohnt in den folgenden Dialogfenstern fest. = > Zusammenfassungsoptionen festlegen Zusammenfassender Bericht 15.5 Adressetiketten erstellen Briefe komfortabel adressieren Access verfügt über einen speziellen Assistenten zum Erstellen von Etiketten. Mit ihm können Sie beispielsweise Adressetiketten für Kundenbriefe erstellen. Notizen 177 15 Access 2002 - Grundlagen für Datenbankentwickler Þ Aktivieren Sie im Datenbankfenster die Objektkategorie BERICHTE, und klicken Sie auf das Symbol NEU. Þ Wählen Sie im Listenfeld die Tabelle oder Abfrage aus, mit deren Daten die Etiketten erstellt werden sollen. Þ Markieren Sie anschließend den Eintrag ETIKETTEN-ASSISTENT. Þ Starten Sie den Assistenten mit Ok. Schritt 1: Etikettengröße wählen Þ Mit Hilfe der Optionsfelder = und > bestimmen Sie die Maßeinheit und den Etikettentyp. Þ Wählen Sie in der Liste ? die Etikettengröße aus. ? Vergleichen Sie am besten den Eintrag auf der Verpackung Ihrer Etiketten mit der angezeigten Liste. Þ Falls die Liste Ihre Etikettengröße nicht enthält, definieren Sie über die Schaltfläche @ ein eigenes Etikettenformat. Þ Bestätigen Sie mit WEITER. = > @ Etikettengröße festlegen Schritt 2: Schrifteigenschaften definieren Þ Wählen Sie die Schriftart, -größe, -breite und -farbe aus. Þ Bestätigen Sie mit WEITER. Text für alle Etiketten Schritt 3: Etikettenaufdruck festlegen Þ Geben Sie den Text in den Entwurf ein, der auf allen Etiketten erscheinen soll. Datenfeldplatzhalter Þ Fügen Sie anschließend die wünschten Datenfelder ein. ge- Þ Betätigen Sie RETURN , um den Cursor im Etikettenentwurf in die Inhalt des Etikettenberichts eingeben nächste Zeile zu setzen. Þ Bestätigen Sie mit WEITER. Schritt 4: Sortierreihenfolge festlegen Þ Übernehmen Sie aus der Liste VERFÜGBARE FELDER die Felder in die Liste SORTIEREN NACH, nach denen Sie Ihre Etiketten sortieren möchten. Schritt 5: Etiketten benennen und erstellen Þ Þ Geben Sie den Berichtsnamen ein. Betätigen Sie die Schaltfläche FERTIG um die Etiketten zu erstellen. STELLEN, Ansicht des Etikettenentwurfs 178 15 Standardberichte erstellen 15.6 Schnellübersicht Sie möchten... Lösung Alternative einen AutoBericht mit allen Datenfeldern einer Tabelle erstellen EINFÜGEN - BERICHT, Eintrag AUTOBERICHT mit dem Assistenten einen Bericht mit bestimmten Datenfeldern einer Tabelle erstellen EINFÜGEN - BERICHT, Eintrag BERICHTS-ASSIS- einen Bericht für mehrere Tabellen erstellen Im 1. Schritt des Berichts-Assistenten Datenfelder aus mehr als einer Tabelle wählen -- einen gruppierten Bericht erstellen Im 3. Schritt des Berichts-Assistenten das Datenfeld wählen, nach dem die Datensätze gruppiert werden sollen -- einen zusammenfassenden Bericht erstellen Im 4. Schritt des Berichts-Assistenten die Schaltfläche ZUSAMMENFASSUNGSOPTIONEN wählen -- Adressetiketten erstellen EINFÜGEN - BERICHT, Eintrag ETIKETTENASSISTENT TENT und Eintrag AUTOBERICHT und Eintrag BERICHTS-ASSISTENT und Eintrag ETIKETTEN-ASSISTENT 15.7 Übung Übungsdatei: Casino15 Ergebnisdatei: Casino15-E = > Öffnen Sie die Datenbank Casino15. Erstellen Sie für die Tabelle Personal einen tabellarischen AutoBericht mit dem Namen PersonalBerichtInTabellenform. ? Erstellen Sie für die Tabelle Kundenverzeichnis einen einspaltigen AutoBericht mit dem Namen KundenverzeichnisBericht. Der Bericht ArbeitszeitenNachPersonalnummer soll alle Felder der Tabelle Arbeitszeiten enthalten und nach dem Feld PersonalNr sortiert sein. Nutzen Sie den Berichts-Assistenten zum Erstellen dieses Berichts. Wählen Sie das Layout TABELLARISCH und das Format FORMAL aus. Erstellen Sie mit dem Berichts-Assistenten einen Bericht, der alle Bestellungen je Kunde darstellt. Der Bericht soll die Felder KundenNr, Bestelldatum, KategorieNr und Portionen enthalten, nach KundenNr gruppiert und nach Bestelldatum sortiert werden. Wählen Sie für das Layout GLIEDERUNG 1 mit dem Format INFORMELL. Speichern Sie diesen Bericht unter dem Namen BestellungenNachKunden. Erstellen Sie einen zusammenfassenden Bericht im Blocklayout mit dem Namen MonatsBericht, in dem die Datensätze der Tabelle Bestellungen nach dem Monat des Lieferdatums gruppiert sind. Erstellen Sie weiterhin eine Zusammenfassung für jede Datensatzgruppe, welche die Summen der Portionen enthält. Der Bericht soll im Querformat angezeigt werden. Erzeugen Sie einen gruppierten Bericht BestellungenKundenÜbersicht im Querformat. Verwenden Sie das Layout ABGESTUFT mit dem Format WEICHES GRAU. Der Bericht soll die Felder Lieferdatum, Portionen, Bestelldatum und Bezahlt aus der Tabelle Bestellungen enthalten. Aus der Tabelle Kundenverzeichnis soll das Feld Name und aus der Tabelle Speisekarte der KategorieName enthalten sein. Gruppieren Sie den Bericht nach dem Lieferdatum je Monat und nach dem Feld Name. Drucken Sie alle Berichte. @ A B C D 179