Access2

Aus Ecdlwiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Vorwort

Für was benutzt man eigentlich Access? Was ist Access? Diese Frage werden sich sicherlich viele MS Office-Benutzer schon einmal gestellt haben.

Access ist eine Datenbank. In der Hilfe von Access kann man nachlesen, dass eine Datenbank eine Ansammlung von Informationen zu einem bestimmten Thema ist.

Im Umgang mit Datenbanken und auch mit Access lässt sich der Nutzerkreis in zwei Gruppen aufteilen. Es gibt die Anwender einer Datenbank und die Entwickler und Programmierer einer Datenbank.

Die Anwender sind diejenigen, die die Informationen in eine Datenbank eintragen und auch auslesen. Sie müssen sich mit der Bedienung der Datenbanksoftware, in unserem Fall mit Access, auskennen.

Die zweite Gruppe, die Entwickler, planen und entwerfen die Datenbank und deren Bedienoberflächen. Sie müssen sich soweit mit Access auskennen, dass Sie die Werkzeuge zur Erstellung einer Datenbank und deren Bedienoberfläche benutzen können.

Im Modul Access wird zuerst auf die Bedienung einer bestehenden Datenbank eingegangen, da dies die häufigste Nutzungsvariante ist. Im zweiten Teil wird erklärt, wie man eine einfache Datenbank selbst erstellt.

Um erfolgreich mit dem Datenbankprogramm Access zu arbeiten, sollte man sich zuvor etwas mit Datenbanktheorie befassen. Der Versuch, einfach mit Access anzufangen, um dann nach und nach beim Arbeiten dazu zu lernen, wie dies bei vielen anderen Programmen möglich ist, schlägt hier höchstwahrscheinlich fehl.

Man sollte sich aber nicht abschrecken lassen, Access zum Einsatz zu bringen. Wer dieses Modul "Access" gewissenhaft durcharbeitet und die Beispiele gleich ausprobiert, der sollte im Anschluss daran das Programm erfolgreich benutzen können.

Was ist eigentlich eine Datenbank?

Eine Firma sammelt viele Daten

Nehmen wir als Beispiel eine traditionsreiche Firma, die seit Generationen Kunststoffspielzeug herstellt. Die Spielzeug GmbH macht ihre gesamte Buchhaltung noch wie vor hundert Jahren, per Hand. Es wird genau Buch gehalten, wie viel Kunststoffgranulat zur Herstellung von Spielzeug eingekauft wird. In einem anderen Buch werden die verkauften Spielzeuge verzeichnet. In den Büchern steht nicht nur die Warenmenge, sondern auch der Händlername, das Datum, der Ein- und Verkaufspreis, usw. Die Spielzeug GmbH pflegt zudem noch ihre Kunden- und Händlerdatei in einem Karteikasten. Alle Geschäftsprozesse und wichtigen Informationen der Firma werden also in Büchern, Karteikästen oder Ordnern gesammelt. Zählt man alle diese Bücher, Karteikästen und Ordner, so kommt man auf eine stattliche Anzahl - und in allen befinden sich wichtige Informationen. Neudeutsch spricht man an dieser Stelle von Daten. Eine Ansammlung von Daten kann man auch als Datenbank bezeichnen. Unter dem Begriff Datenbank versteht man aber auch, dass diese Unmenge von Daten nicht auf Papier gespeichert werden, sondern in elektronischer Form in einer Datenbank auf einem Computer oder Server.

Der Firmenchef der Spielzeug GmbH hat gerade die ersten Module des ECDL erfolgreich bestanden und ist am überlegen: Mit welchem Programm kann ich alle meine Daten am besten auf dem Computer verwalten?

Warum reicht die Arbeit mit einer Exceltabelle nicht aus?

Nun könnte man bzw. der Firmenchef auf die Idee kommen, alle Informationen in Listen und Tabellen einzutragen. Dafür ist Excel als Tabellenprogramm bestens geeignet. Dies ist aber nur eine gute Idee, wenn man über kleine Daten- bzw. Informationsmengen verfügt, die wenig miteinander zu tun haben. In der Realität werden aber in einer Firma bestimmte Datensätze in verschiedenen Abteilungen oder Arbeitsprozessen benötigt. Beispielsweise werden Kundenadressen mehrfach benutzt, da der Kunde im Jahr mehrfach Spielzeug bestellt. Oder die Kundenadresse wird von verschiedenen Abteilungen benötigt: vom Versand, der Auftragsannahme und von der Werbeabteilung. An dieser Stelle kommen nun die Stärken einer Datenbank zum Einsatz. Eine Datenbank ist genau genommen eine Ansammlung von Tabellen, in denen die Informationen so abgelegt werden, dass eine Information immer nur einmal gespeichert ist, aber in ganz unterschiedlichen Tabellen verwendet werden kann. Nehmen wir einmal an, dass die Kundenadressen im Kundenregister, im Versand, in der Warenbestellung und im Marketing gebraucht werden. Teilt nun ein Kunde bei einer Bestellung mit, dass sich seine Adresse geändert hat, müsste bei der Arbeit ohne Datenbank die Adresse in drei Tabellen geändert werden. Dies erfordert viel Sorgfalt, damit es nicht zu Fehlern führt. Viel geschickter ist es, EINE Tabelle zu nutzen, auf die alle zugreifen können. Adressänderungen von einer Abteilung werden somit für alle sofort sichtbar. Außerdem werden Datenbanktabellen so geplant, dass keine Daten doppelt eingetragen werden, sondern die Daten werden bei Bedarf aus mehreren Tabellen zusammengefügt. In einer Bestelltabelle ist meist nur die Kundennummer, die Artikelnummer, das Bestelldatum und das Versanddatum eingetragen. Diese Daten gehören inhaltlich zusammen und werden deshalb DATENSATZ genannt. Anhand der Kundennummer und der Artikelnummer des Datensatzes kann nun zur Rechnungsstellung die Adresse aus der Adresstabelle und die Artikelbezeichnung aus der Artikeltabelle ausgelesen und in der Rechnung zusammengefasst dargestellt werden.

Merkmale einer Datenbank

  • Daten werden nicht doppelt gespeichert, somit kann es nicht zu Versionskonflikten kommen.
  • Eine Datenbank ist eine Ansammlung von Tabellen, die miteinander in Beziehung stehen können.
  • In den Tabellen werden Informationen beliebiger Art abgelegt.
  • Jede Zeile einer Tabelle wird als Datensatz bezeichnet.

Mit einem Datenbankprogramm lassen sich Datenbanken verwalten

Die Verwaltung der Datenbank übernimmt ein Datenbankprogramm. Es hat die Aufgabe, Datensätze in die Tabelle hinein zuschreiben, diese zu löschen, Datensätze zu ändern, nach Wunsch aus der Tabelle auszulesen oder Datensätze verschiedener Tabellen miteinander so zu verknüpfen, dass wie im obigen Beispiel anhand einer Kundennummer die Kundenadresse auszulesen ist. Datensätze können beliebig abgefragt oder verknüpft werden. Die Verknüpfungen lassen sich dabei immer wieder beliebig bearbeiten, ohne dass der Datensatz dabei geändert wird. Dies ist ein sehr großer Vorteil für spätere Änderungen an einer Datenbank.

Wie funktioniert ein Datenbankprogramm

Die häufigste Art der Datenbank ist die relationale Datenbank, so auch Access. In ihr werden die Daten, wie oben beschrieben, in mehrere Tabellen gespeichert. Die Bezüge zwischen den einzelnen Datensätzen lassen sich durch zwei übereinstimmende Werte in beiden Tabellen herstellen (Beispiel: Kundennummern in der Kundentabelle und Kundennummer in der Bestelltabelle). Andere Datenbanktypen wie hierarchische Datenbanken, Netzwerkdatenbanken, objektorientierte Datenbanken oder objektrelationale Datenbanken werden hier nicht weiter besprochen. Datenbanksysteme sind so aufgebaut, dass die Daten unabhängig sind. Die Unabhängigkeit wir dadurch erreicht, dass die Daten physikalisch und softwaretechnisch an unterschiedlichen Orten gespeichert werden. In Anwendungsprogrammen wird die Verarbeitung der Daten vorgenommen, in der Datenbank werden die bearbeiteten Daten gespeichert. Um auf Daten aus einem Anwendungsprogramm zugreifen zu können, verstehen Datenbanksysteme eine Datenbanksprache. Gewöhnlich arbeiten relationale Datenbanksysteme mit einer Datenbanksprache, meist SQL (Structured Query Language). Mit dieser Datenbanksprache kann man Datensätze in die Datenbank eintragen oder manipulieren. Der Vorteil einer weit verbreiteten Datenbanksprache wie SQL liegt darin, dass man so die Daten mit vielen Programmen auswerten kann. Es ist quasi egal, ob ich die Daten in einem in Visual Basic, oder in Java geschriebenen Programm aufrufen möchte. Fast alle Programme beherrschen SQL. Genauso verbreitet ist die Möglichkeit, aus Internetanwendungen heraus auf Datenbanken per SQL zuzugreifen oder diese zu manipulieren. Fast jeder Web-Shop (Amazon, Ebay, ...) bedient sich dieser Technik.


Beispiel einer relationalen Datenbank

Eine sinnvolle Datenbank für den privaten Bereich ist die Verwaltung der eigenen CD- oder DVD-Sammlung, Mp3 und Hörbuchsammlung. In einer Tabelle werden die Titel , die Interpreten, der Inhalt, das Medium (CD, DVD, ...) gesammelt. Diese Tabelle lässt sich dann beliebig nach Titel, Inhalt oder Interpret durchsuchen. Damit man den Überblick behält, wem man seine Cd's und Hörbücher verliehen hat, wird die Datenbank um eine Ausleihe ergänzt. Dafür wird eine Nutzertabelle mit Name, Vornamen, Adresse, usw. benötigt, sowie eine Tabelle in der aufgelistet ist, wer gerade welches Medium ausgeliehen hat und wann es zurückgegeben wurde.


1. Tabelle: Medium

id_medium Titel Interpret / Autor Inhalt Medium
5 Potter Rowling
Buch

2. Tabelle: Nutzer

id_nutzer Vorname Nachname Telefon Mailadresse
8 Hans Buchwurm 0815 hans@dd.de

3. Tabelle: Ausleihe

Id_ausleihe id_medium id_nutzer ausgeliehen am zurück am
1 5 8 20.08.2008 30.8.2008
2 6 8 20.08.2008


In der Tabelle Ausleihe wird nun das Medium mit dem Nutzer verknüpft. Die Verknüpfung wird über die ID (Nummer, die in einer Tabelle nur einmal vorkommen darf) vorgenommen. In der Tabelle Ausleihe wird deshalb nicht der Name, sondern nur die ID-Nummer der Nutzertabelle und die der Tabelle Medium eingetragen.

Das hat den Vorteil, dass man beispielsweise den Fehler im Namen des Nutzers ändern kann, ohne dass es zu Fehlern in der Tabelle Ausleihe kommt.

Wo befindet sich eigentlich eine Datenbank?

Wie oben schon erwähnt, werden die Daten einer Datenbank ganz unabhängig vom Anwenderprogramm gespeichert. In der Praxis sieht das so aus, dass sich die Datenbank an einem zentralen Ort, meist auf einen Datenbankserver, befindet. Auf diesen Server können nun alle Anwender zugreifen und die Daten bearbeiten. Mittels der zentralen Verarbeitung kann man Daten verschiedener Versionen vermeiden. Datenbanken lassen sich aber auch lokal, also auf dem eigenen Computer, speichern. Dies ist dann sinnvoll, wenn die Datenbank immer nur von einem Rechner aus benutzt wird.

Access - Datenbanksoftware und Abfrageprogramm in einem

Das besondere an Access ist, dass das Programm eine Kombination aus Datenbank und Anwenderprogramm ist.

Benutzt man Microsoft Access ohne besondere Einstellungen, wird die Datenbank lokal auf dem Computer gespeichert. Man kann aber auch Datenbanken, die sich auf einem Server befinden, mit Access aufrufen.

Die Daten werden in Tabellen nach dem relationalen Prinzip gespeichert. Als Abfrageprogramm bietet Access eine Benutzeroberfläche an, die nach den eigenen Bedürfnissen erstellt werden kann.

Dies mag auf den ersten Blick von Vorteil sein, weil die Nutzung und die Datenspeicherung von einem Programm erledigt werden, führt aber in der Praxis des Öfteren zu Verwirrungen, weil das Programm nicht immer klar kennzeichnet, auf welcher Ebene man sich befindet.

Übung: Datenbank

  1. Was versteht man unter dem Begriff "Datensatz"?
  2. Nenne die wichtigen Merkmale einer Datenbank?
  3. Welche Aufgaben hat ein Datenbankprogramm?
  4. Für das Sportfest der Schule soll eine Datenbank entwickelt werden. Eignet sich dafür eine lokale Access Datenbank oder sollte man eine servergestütze Datenbank wählen? Begründung der Entscheidung!

Access: Einstellungen

Um als blinder Nutzer effektiv mit Access arbeiten zu können, sollte man einige Einstellungen setzen. Dies betrifft insbesondere zahlreiche Automatismen, die Access standardmäßig aktiviert.

Personalisierte Menüs

Personalisierte Menüs zeigen die Menüeinträge der Menüleiste nicht vollständig an, sondern immer nur eine reduzierte Auswahl. Wird ein nicht angezeigter Eintrag benötigt, so muss ein kleines Symbol am Ende jeder Menüliste angewählt werden. Dies führt zur Einblendung aller verborgener Einträge. Wenn standardmäßig verborgene Einträge häufig benutzt werden, werden sie in die Liste der ständig angezeigten Einträge aufgenommen, was dazu führt, dass sich die Struktur der Menüs während der Benutzung von Access permanent ändern kann. Sehenden Benutzern soll diese Funktion dabei helfen, in den Menüs die Übersicht zu bewahren, da nicht benötigte Funktionen gar nicht erst angezeigt werden. Für blinde Benutzer empfiehlt es sich hingegen, die klassische Vollansicht der Menüs einzustellen, da eine permanente Veränderung des Menüaufbaus dazu zwingt, bei jedem Aufruf eines Menüs alle Einträge lesen zu müssen. Rufen Sie zum Deaktivieren der personalisierten Menüs den Menüeintrag EXTRAS - ANPASSEN auf (ALT,X,P) und aktivieren Sie im Reiter OPTIONEN die Auswahl bei MENÜS IMMER VOLLSTÄNDIG ANZEIGEN.

Autokorrektur

Automatische Veränderungen während der Texteingabe bietet Access mit der Autokorrektur. Das sind zum einen automatische Änderungen des Textes - z.B. die Korrektur von einfachen Tippfehlern. Da es an der Braillezeile schnell vorkommt, dass man die automatischen Veränderungen des Textes nicht mitbekommt, ist es zu empfehlen, alle Autokorrektur-Einstellungen abzustellen. Im Menü EXTRAS - AUTOKORREKTUROPTIONEN (ALT,X,E) können diese Einstellungen vorgenommen werden.

Schalten Sie mit Ausnahme von "Unbeabsichtigtes Verwenden der FESTSTELLTASTE" alle Kontrollfelder aus.

Smarttags

Smarttags, auf deutsch "intelligente Etiketten", werden von Access automatisch eingeblendet. Sie bieten kontextbezogene Befehle an, die der Benutzer mit der Maus schnell setzen kann. Beim Einsatz eines Screenreaders führen Smarttags häufig zu Verwirrung, da sie teilweise recht unvermittelt erscheinen. Das auf dem Bildschirm für ein Smarttag angezeigte Symbol erscheint auch in einer Repräsentation auf der Braillezeile, wo es dem Anwender zunächst zusammenhanglos erscheint. Es empfiehlt sich daher, die Smarttags vollständig abzuschalten. Gehen Sie dazu wie folgt vor:

  1. Öffnen Sie eine bestehende Datenbank oder erstellen Sie eine neue. (Der notwendige Menüeintrag ist ohne eine geöffnete Datenbank nicht anwählbar.)
  2. Rufen Sie den Menüeintrag EXTRAS - OPTIONEN auf (ALT,X,O).
  3. Öffnen Sie den Reiter DATENBLATT.
  4. Springen Sie mit TAB oder direkt mit ALT-M auf das Kontrollfeld SMARTTAGS AUF DATENBLÄTTERN ANZEIGEN und deaktivieren Sie dieses.
  5. Öffnen Sie den Reiter FORMULARE/BERICHTE
  6. Springen Sie mit TAB oder direkt mit ALT-Z auf das Kontrollfeld SMARTTAG IN FORMULAREN ANZEIGEN und deaktivieren Sie dieses.

Erste Schritte

In diesem Kapitel lernt man, wie man Access startet und beendet, wie man eine Datenbank öffnet, wie man sie wieder schließt und wie das Programm Access allgemein aufgebaut ist. Im Abschnitt "Übung" kann man die Beispieldatenbank herunterladen und parallel zum Kapitel ausprobieren.

Access starten

Es gibt mehrere Möglichkeiten um Access zu starten.

  • In der Regel befindet sich in STARTMENÜ/PROGRAMME eine Verknüpfung auf das Programm mit dem Namen "Microsoft Office Access 2003"
  • Wer nicht so viel im Startmenü suchen möchte, der kann auch einfach "msaccess" in das Dialogfeld AUSFÜHREN eingeben und mit EINGABE bestätigen: WINDOWS-Taste, U, msaccess, EINGABE
  • Schließlich kann man Access auch starten, indem man eine Access Datenbank im Arbeitsplatz oder im Windows-Explorer öffnet. Eine Access Datenbank erkennt man an der Endung .mdb für "Microsoft Database".

Nach dem Start von Access mit der ersten oder der zweiten der oben genannten Methoden ist zunächst keine Datenbank geöffnet.

Eine Datenbank öffnen

Anders als bei anderen Office-Anwendungen lässt sich in Access immer nur eine Datenbank auf einmal öffnen.

Um eine Datenbank zu öffnen, gibt es verschiedene Möglichkeiten:

  • Man öffnet die Datenbank vom Arbeitsplatz aus.
  • Man öffnet die Datenbank aus Access heraus über das Öffnen-Dialogfenster - DATEI/ÖFFNEN (ALT,D,F bzw. STRG+O):

Hinweis:

Beim erstmaligen Aufrufen einer Access-Datenbank erhält man die "Sicherheitswarnung: Unsichere Ausdrücke sind nicht blockiert". Man hat nun die Möglichkeit unsichere Ausdrücke zu blockieren oder zuzulassen.Entscheidet man sich für blockieren, wird man beim künftigen Öffnen mittels einer "Sicherheitswarnung" gefragt ob man die Datenbank öffnen will. Die Entscheidung, ob blockieren oder nicht, sollte man entsprechend des eigenen Sicherheitsbedürfnisses treffen.

Datenbank schließen

Manchmal möchte man eine Datenbank schließen, ohne Access zu beenden. Über das Menü wählt man dazu: DATEI, SCHLIEßEN (ALT,D,C), oder man benutzt die Tastenkombination STRG+F4.

Access beenden

Zum Beenden von Access gibt es mehrere Möglichkeiten:

  • DATEI, BEENDEN (ALT,D,B)
  • ALT+F4

Es ist vor dem Beenden von Access nicht notwendig, den aktuellen Stand der Datenbank zu speichern. Alle Änderungen werden während der Benutzung der Datenbank automatisch gespeichert, sobald sie von Access angenommen werden. Allerdings weigert sich Access sich zu beenden, solange noch Fenster mit ungespeicherten Elementen geöffnet sind.

Übung

Aus Übungszwecken empfiehlt es sich die Beispieldatenbank herunterzuladen, um die "Ersten Schritte" nachvollziehen zu können. Download. Zur Vertiefung an der Beispieldatenbank sind folgenden Aufträge zu bearbeiten:

  1. Starte das Programm Access über das Dialogfeld Ausführen.
  2. Öffne die Datenbank CD_Verwaltung.mbd
  3. Schließe das Programm über die Menüsteuerung.

Neue Datenbank oder neues Datenbankprojekt erstellen

Mit der Tastenkombination STRG+N oder über das Menü DATEI, NEU (ALT,D,N) erstellt man in Access eine neue Datenbank oder ein Datenbankprojekt. Der Cursor springt in eine Liste am rechten Fensterrand, in den sogenannten Aufgabenbereich. (Wie auch in anderen Office_Anwendungen kann der Aufgabenbereich mit F6 jederzeit aufgerufen und auch wieder verlassen werden). Innerhalb des Aufgabenbereiches wählt man mit AB und AUF aus, was Access neu erstellen soll. Folgende Möglichkeiten stehen zur Auswahl:

  • Leere Datenbank - Erstellt eine eigenständige Datenbank.
  • Leere Datenbankzugriffsseite - Erstellt ein Formular, über welches auf Daten aus einer Datenbank zugegriffen wird.
  • Projekt aus bestehenden Daten - Ermöglicht es, Formulare, Berichte, Makros und Module zu erstellen, die auf eine extern gespeicherte Datenbank und die darin enthaltenen Daten zugreifen.
  • Projekt aus neuen Daten - Ermöglicht es, Formulare, Berichte, Makros und Module zu erstellen, die auf eine extern gespeicherte Datenbank zugreifen und dort ihre Daten abspeichern.
  • Aus bestehender Datei - Erstellt eine neue Datenbank, welche Objekte und Daten aus einer bereits bestehenden Datenbank übernimmt.
  • Vorlagen auf Office Online - Sucht auf einer Webseite der Firma Microsoft nach Vorlagen für Datenbanken.
  • Auf meinem Computer - Sucht auf dem Computer des Anwenders nach Vorlagen für Datenbanken.

Die Fülle der Möglichkeiten ist für den Einsteiger in Access meist sehr verwirrend. Diese werden meist einfach eine leere Datenbank erstellen wollen. Trotzdem sollte man den Unterschied zwischen einer (lokal) gespeicherten Datenbank und einem Datenbankprojekt kennen.

- Eine lokal gespeicherte Datenbank enthält alle Komponenten, welche sie für den Endanwender benutzbar macht. Dazu zählen Formulare, Berichte, Macros, Module sowie vor allem auch Datentabellen und Abfragen.

- Ein Datenbankprojekt kann Formulare, Berichte, Makros, Module enthalten, speichert aber selbst keinerlei Daten oder Abfragen. Die Daten, mit denen ein Datenbankprojekt arbeitet, liegen auf einem Datenbankserver, der diese meist über ein Computernetzwerk zur Verfügung stellt. Gerade bei großen Datenbanken kommt diese Technik oft zum Einsatz, da sich die Daten auf diese Weise zentral verwalten lassen und mehrere Datenbankanwendungen gleichzeitig auf die selben Daten zugreifen können. Die eigentliche Datenbanktechnik läuft bei einem Datenbankprojekt also auf dem Datenbankserver. Alle Elemente, über welche ein Mensch mit den Daten in Interaktion tritt, laufen auf dem Computer, auf welchem das Datenbankprojekt aufgerufen wird. Der erste Schritt zum Erstellen eines Datenbankprojektes ist daher die Angabe, auf welchen Datenbankserver das Projekt zugreifen soll.

Anders als in anderen Office-Anwendungen ist es nicht möglich, mit einer Datenbank zu arbeiten, bevor man diese gespeichert hat. Manuelles Zwischenspeichern ist nicht notwendig. Änderungen an der Datenbank werden unmittelbar gespeichert, können aber teilweise nicht rückgängig gemacht werden. Egal, ob man also eine Datenbank oder ein Datenbankprojekt erstellt, man muss über ein SPEICHERN-Dialogfeld einen Speicherort angeben.

In der Voreinstellung möchte Access neue Datenbanken in den Ordner EIGENE DATEIEN speichern. Der Cursor steht im Eingabefeld Dateiname, DB1.MDB wird als Dateiname vorgeschlagen.

Mit ALT+5 kann man einen neuen Ordner erstellen, ohne das SPEICHERN-Dialogfeld von Access verlassen zu müssen.

Wenn man auf dem Eingabefeld DATEINAME stehend die TAB-Taste drückt, findet man das Eingabefeld DATEITYP. Standardmäßig ist hier die Dateiendung *.mdb für Access-Datenbanken und *.adp für Access-Projekte eingestellt.

Will man in einen anderen Ordner wechseln, muss man im Dialogfeld mit UMSCHALT+TAB in die Listenansicht der Ordner und Dokumente wechseln. Mit den Pfeiltasten kann man den gewünschten Ordner anwählen. Durch Betätigen der Taste EINGABE gelangt man in den angewählten UNTERORDNER. Mit der RÜCK-Taste kommt man in den jeweils übergeordneten Ordner. Im neu gewählten Ordner gelangt man durch TAB in das kombinierte Eingabefeld "Dateiname". Dort wird der Dateiname eingetragen und anschließend mit der EINGABE-Taste die Speicherung ausgelöst.

Alternativ ist wie auch beim Öffnen einer Datenbank die genaue Angabe des Pfads der Datei im Eingabefeld DATEINAME möglich.

Das Access Anwendungsfenster

Nach dem Start präsentiert Access sein Anwendungsfenster. Dieses besteht aus...

  • ...einer Menüzeile am oberen Fensterrand
  • ...einem Such-Listen-Eingabefeld für die Hilfe am oberen Fensterrand rechts der Menüzeile
  • ...einer Symbolleiste am oberen Fensterrand unterhalb der Menüzeile
  • ...einem Aufgabenbereich mit situationsabhängigen Inhalten am rechten Fensterrand
  • ...einem Programmarbeitsbereich in dem Access nach dem Öffnen einer Datenbank seine Inhalte wie Tabellen oder Formulare darstellt
  • ...einer Statusleiste am unteren Bildschirmrand

Die Elemente des Anwendungsfensters sind bei der Arbeit mit Access (meist) alle sichtbar. Der Aufgabenbereich wird von Access bei Bedarf automatisch ein- oder ausgeblendet. Weitere Fenster werden im Programmarbeitsbereich je nach gegenwärtiger Arbeitssituation eingeblendet.

Datenbankfenster und Startformular

Beim Öffnen einer Datenbank wird entweder ein Startformular oder das Datenbankfenster (siehe Beispiel) angezeigt. Startformulare müssen vom Ersteller einer Datenbank gestaltet werden. Sie fassen die wichtigsten Funktionen einer Datenbank zusammen und sollen dem Anwender die Arbeit möglichst leicht machen. Startformulare richten sich damit auch an Endbenutzer, die von Datenbanken unter Umständen keinerlei Ahnung haben. Wird ein Startformular angezeigt, so wird das Datenbankfenster zwar ebenfalls geöffnet, es wird aber automatisch minimiert. Die Navigation erfolgt mit TAB. Fenster die man mit dem Startformular öffnet lassen sich ebenso mit DATEI/SCHLIEßEN (ALT,D,C) schließen.

Ist kein Startformular vorhanden oder wird es geschlossen, wird das Datenbankfenster angezeigt.

Es besteht aus...

  • ...einer Symbolleiste am oberen Fensterrand mit einer kleinen Auswahl an Befehlen wie zum Beispiel "Öffnen" oder "Neu".
  • ...einer Objektsymbolleiste am linken Fensterrand, die eine Liste von Überbegriffen der typischen Datenbankobjekte wie zum Beispiel "Tabellen", "Formulare", "Abfragen" usw. enthält.
  • ...dem Inhaltsbereich, in welchem sich, je nach dem in der Objektsymbolleiste gewählten Überbegriff, die konkreten Objekte und dazu passende Befehle befinden.
    • Beispiel: Ist in der Objektsymbolleiste der Überbegriff "Tabellen" gewählt, sieht man im Inhaltsbereich eine Übersicht der in der Datenbank enthaltenen Tabellen. Zusätzlich enthält die Liste dann drei Befehle zum Erstellen neuer Tabellen.

Wie eine Arbeitsmappe fasst das Datenbankfenster alle Komponenten der geöffneten Datenbank zusammen und stellt diese übersichtlich dar. Mit TAB kann man zwischen der Objektsymbolleiste und dem Inhaltsbereich wechseln und dort jeweils durch die einzelnen Elemente mit AB und AUF navigieren. Die Objektsymbolleiste enthält dabei gleich zwei anspringbare Positionen: die Objekte (Tabellen, Abfragen, Formulare etc.) und die Gruppen. In den Gruppen lassen sich einzelne Objekte einer Datenbank, die logisch zusammengehören, miteinander gruppieren. Wählt man in der Objektsymbolleiste später einen Eintrag unter GRUPPEN aus, so erscheinen im Inhaltsbereich nur die Einträge, die auch zu dieser Gruppe gehören. Vergleichbar ist dies mit dem Prinzip der Ordner und Dateien, das von der Dateiverwaltung her bekannt ist.

Die Symbolleiste erreicht man nur über den JAWS-Cursor, die in ihr enthaltenen Funktionen kann man aber auch über das Menü aufrufen.

Objekte im Datenbankfenster

Informationen werden innerhalb einer Datenbank in Tabellen abgelegt. Um die in den Tabellen enthaltenen Informationen aber auch verwalten und bearbeiten zu können, benötigt man eine Reihe von Werkzeugen. Sowohl die Tabellen als auch die Werkzeuge bezeichnet man als Datenbankobjekte. Die folgende Liste fasst die Datenbankobjekte von Access kurz zusammen:

  • Tabellen - In einer Tabelle werden Daten zu einem Thema gesammelt. Jede Zeile der Tabelle entspricht einem Datensatz. Ein Adress-Datensatz speichert beispielsweise innerhalb einer Zeile und auf verschiedene Spalten verteilt den Namen einer Person, seinen Wohnort, bestehend aus Straße, Hausnummer, Postleitzahl usw..
  • Abfragen - Mit Abfragen können eine oder mehrere Tabellen ausgewertet werden. Zum Beispiel könnte nach Kunden aus einem bestimmten Postleitzahlenbereich gesucht werden.
  • Formulare - Formulare erleichtern die Ansicht, die Eingabe und das Bearbeiteten von Daten. Anders als Tabellen lassen sie sich individuell gestalten und an die Bedürfnisse einer Nutzergruppe anpassen.
  • Berichte - Berichte fassen Daten aus Tabellen oder Abfragen übersichtlich zusammen. Sie sind vorwiegend zum Ausdrucken gedacht. So könnte man beispielsweise eine Liste aller Schüler ausdrucken, die gemeinsam eine Klasse besuchen.
  • Seiten - Access erlaubt es, Webseiten anzulegen, über die im Intra- oder Internet den Zugriff auf die Datenbank ermöglichen. Seiten sind den Formularen und Berichten sehr ähnlich.
  • Makros - Makros erlauben es, Arbeitsschritte in Datenbanken zu automatisieren.
  • Module - Access lässt sich mit Hilfe der bereits im Programmpaket enthaltenen Programmiersprache VBA (Visual Basic for Applications) um weitere Funktionen (sogenannte Module) erweitern.

Fragen zum Verständnis

  • Wofür setzt man ein Startformular ein?
  • Wie lautet der Fachbegriff für alle Angaben einer Zeile in einer Tabelle?
  • Worin liegt der Vorteil einer Abfrage gegenüber der Ansicht einer ganzen Tabelle?
  • Kann man in einem Bericht Änderungen am Datensatz vornehmen?

Arbeiten mit dem Datenbankfenster

Innerhalb des Datenbankfensters kann man auf vielfältige Weise mit den Objekten der Datenbank arbeiten. Die wichtigsten werden im folgenden beschrieben.

Datenbankobjekt auswählen

Möglichkeit 1:

  1. Springen Sie mit TAB in die Objektsymbolleiste.
  2. Wählen Sie mit AB und AUF die Gruppe, zu der das gesuchte Objekt gehört.
  3. Springen Sie mit TAB in den Inhaltsbereich.
  4. Navigieren Sie im Inhaltsbereich auf das gesuchte Objekt.

Möglichkeit 2:

  1. Rufen Sie den Menüeintrag ANSICHT - DATENBANKOBJEKTE (ALT,A,O) auf.
  2. Wählen Sie mit AB und AUF die Gruppe, zu der das gesuchte Objekt gehört. Oder benutzen Sie das entsprechende Tastaturkürzel (T für Tabellen, A für Abfragen, O für Formulare, B für Berichte, S für Seiten, M für Makros, U für Module).
  3. Navigieren Sie im Inhaltsbereich auf das gesuchte Objekt.

Datenbankobjekt öffnen

  1. Navigieren Sie auf das gewünschte Objekt.
  2. Drücken Sie EINGABE oder wählen Sie im Kontextmenü den Eintrag ÖFFNEN (APPLIKATIONSTASTE,F).

Hinweis: Objekte lassen sich auf zweierlei Arten öffnen: entweder in Ihrer Standardansicht oder in einer ENTWURFSANSICHT. Um die Entwurfsansicht eines Objektes zu öffnen, gehen Sie wie folgt vor:

  1. Navigieren Sie auf das gewünschte Objekt.
  2. Wählen Sie im Kontextmenü den Eintrag ENTWURFSANSICHT (APPLIKATIONSTASTE,W).

Datenbankobjekt schließen

Die Fenster der Datenbankobjekte lassen sich nicht wie üblich mit ALT+F4 oder über den Aufruf des Fensterrahmenmenüs mit ALT+LEERTASTE,S schließen. Versucht man dies, beendet sich Access gleich mit. Stattdessen müssen Datenbankobjektfenster über das Menü FENSTER (ALT,F) ausgeblendet werden.

Datenbankobejekt löschen

  1. Navigieren Sie auf das zu löschende Objekt.
  2. Drücken Sie ENTF oder wählen Sie den Menüeintrag BEARBEITEN - LÖSCHEN (ALT,B,L) oder wählen Sie im Kontextmenü den Eintrag LÖSCHEN (APPLIKATIONSTASTE,L).
  3. Bestätigen Sie die Sicherheitsabfrage im sich öffnenden Dialogfenster durch Wählen des Schalters JA (EINGABE oder J drücken).

Neues Datenbankobjekt erzeugen

Möglichkeit 1:

  1. Wählen Sie im Menüpunkt Einfügen (ALT,E) das von Ihnen gewünschte neu zu erzeugende Datenbankojekt mit AB und AUF aus, oder benutzen Sie das entsprechende Tastaturkürzel (T für Tabellen, A für Abfragen, F für Formulare, B für Berichte, T für Seite, K für Makros, M für Module, S für Klassenmodul, O für AutoFormular, E für AutoBericht).
  2. Folgen Sie den Anweisungen des Assistenten.

Möglichkeit 2:

  1. Wählen Sie die Objektgruppe, von der Sie ein neues Objekt erzeugen wollen.
  2. Drücken Sie ALT+U, um ein neues Objekt der gewählten Gruppe zu erzeugen.
  3. Folgen Sie den Anweisungen des Assistenten.

Datenbankobjekt kopieren

  1. Navigieren Sie auf das zu kopierende Objekt.
  2. Drücken Sie STRG+C oder wählen Sie den Menüeintrag BEARBEITEN - KOPIEREN (ALT,B,K) oder wählen Sie im Kontextmenü den Eintrag KOPIEREN (APPLIKATIONSTASTE,K).
  3. Drücken Sie STRG+V oder wählen Sie den Menüeintrag BEARBEITEN - EINFÜGEN (ALT,B,I).
  4. Geben Sie der Kopie des Objektes im sich öffnenden Dialogfenster einen Namen.
  5. Schließen Sie den Kopiervorgang mit EINGABE ab.

Ist das kopierte Objekt eine Tabelle, haben Sie im Dialogfenster weitere Möglichkeiten:

  1. Springen Sie im Dialogfenster mit TAB zu den EINFÜGEOPTIONEN und wählen Sie mit AB und AUF die passende Option. Sie haben drei Möglichkeiten:
    • STRUKTUR - diese Option kopiert den Aufbau der Tabelle, also die Spaltennamen mit den entsprechenden Datentypen für die Spalten.
    • STRUKTUR UND DATEN - diese Option kopiert sowohl den Aufbau der Tabelle als auch alle Datensätze.
    • DATEN AN VORHANDENE TABELLE ANFÜGEN - Fügt alle Datensätze der Tabelle an eine bereits vorhandene Tabelle an. Voraussetzung ist, dass die Struktur beider Tabellen identisch sind, ansonsten bricht Access den Kopiervorgang mit einer Fehlermeldung ab.
  2. Schließen Sie den Kopiervorgang mit EINGABE ab.

Datenbankobjekt umbenennen

  1. Navigieren Sie auf das Objekt, das Sie umbenennen möchten.
  2. Drücken Sie F2 oder wählen Sie den Menüeintrag BEARBEITEN - UMBENNEN (ALT,B,M) oder wählen Sie im Kontextmenü den Eintrag UMBENENNEN.
  3. Geben Sie einen Namen für das Objekt ein und übernehmen Sie ihn mit EINGABE.

Datenbankobjekt einer Gruppe hinzufügen

Möglichkeit 1:

  1. Navigieren Sie auf das Objekt, welches Sie einer Gruppe zuordnen wollen.
  2. Wählen Sie im Kontextmenü den Eintrag ZUR GRUPPE HINZUFÜGEN (APPLIKATIONSTASTE,U) und danach den Menüeintrag der gewünschten Gruppe.

Möglichkeit 2:

  1. Navigieren Sie auf das Objekt, welches Sie einer Gruppe zuordnen wollen.
  2. Wählen Sie im Menü BEARBEITEN - ZU GRUPPE HINZUFÜGEN (ALT,B,U) und danach den Menüeintrag der gewünschten Gruppe.

Neue Gruppe erzeugen

Wählen Sie im Menü BEARBEITEN - GRUPPEN - NEUE GRUPPE (ALT,B,N).

Gruppe löschen

Wählen Sie im Menü BEARBEITEN - GRUPPEN - GRUPPE LÖSCHEN (ALT,B,L).

Gruppe umbenennen

Wählen Sie im Menü BEARBEITEN - GRUPPEN - GRUPPE UMBENNEN (ALT,B,U).

Ansicht des Datenbankfensters ändern

Der Inhaltsbereich des Datenbankfensters kann auf vier verschiedene Arten dargestellt werden. Für den blinden Anwender ist die Voreinstellung in Listenform gut geeignet. Wer die Einstellung dennoch ändern möchte, kann dies über das Menü ANSICHT leicht tun. Es stehen die vom Windows-Explorer bereits bekannten Ansichten GROSSE SYMBOLE, KLEINE SYMBOLE, LISTE (Voreinstellung) und DETAILS zur Auswahl.

Übung mit der Nordwind.mdb

Microsoft Office kopiert bei der Installation von Access eine Beispieldatenbank auf den Computer. Diese Datenbank mit dem Namen "Nordwind.mdb" ist gewöhnlich im Verzeichnis C:\Programme\Microsoft Office\OFFICE??\SAMPLES zu finden. (Die Fragezeichen hinter Office stehen für die installierte Versionsnummer.) Es empfiehlt sich die Nordwind.mdb in den eigenen Ordner zu kopieren, damit man bei Bedarf schnell auf dieses zugreifen kann.

Übung:

  • Öffne die Nordwind.mdb. Es öffnet sich ein Startformular wie oben beschrieben.
  • Gehe in die Datenbankobjekte "Tabelle, Abfragen, Formulare und Berichte und vollziehe die oben beschriebenen Erklärungen nach. Navigiere im Startformular mit TAB.

Tabellen

Access speichert Informationen in Form von Tabellen. Eine Tabelle besteht aus horizontal verlaufenden Zeilen und vertikal verlaufenden Spalten. Jede Zeile einer Tabelle entspricht einem Datensatz. Spalten legen die Art der in einer Zelle gespeicherten Information fest. Im Schnittpunkt einer Zeile und einer Spalte liegt eine Zelle. Jede Zelle speichert eine Information. Tabellen werden individuell an die Erfordernisse der Informationen angepasst, die in ihnen gespeichert werden sollen. Eine Tabelle zum Speichern von Namen und Adressen könnte die folgenden Spaltenüberschriften haben:

ID, Name, Vorname, Anrede, Straße, Hausnummer, Postleitzahl, Ort

Eine mit Daten angefüllte Zeile, also ein Datensatz könnte wie folgt aussehen:

1, Mustermann, Max, Herr, Schlossstraße, 23, Ilvesheim

Bevor Informationen in einer Tabelle gespeichert werden können, muss die Struktur der Tabelle bestimmt werden: Wie viele Spalten soll die Tabelle haben, welche Werte sollen die Spalten aufnehmen können. Eine Tabelle hat daher zwei Ansichten:

  • Die Entwurfsansicht, in der die Struktur der Tabelle angelegt oder nachträglich verändert wird.
  • Die Datenblattansicht, in der Werte in die angelegten Felder eingegeben werden können.

Beim Öffnen einer Tabelle aus dem Datenbankfenster wird die Datenblattansicht geöffnet.

HINWEIS: Folgend empfiehlt es sich jeden beschriebenen Schritt anhand der Nordwind.mbd nachzuvollziehen. Fertigen Sie sich dazu eine Kopie der Nordwind.db. In dieser können beliebig Veränderungen vorgenommen werden.


Tabelle: Datenblattansicht

Die Datenblattansicht wird für das Eintragen und Verändern von Informationen benötigt. Die Navigation in ihr ist recht einfach.

  • AB und AUF wechselt zur nächsten Zeile, bzw. zum nächsten Datensatz.
  • RECHTS und LINKS wechselt die Spalte innerhalb eines Datensatzes. Befindet sich der Cursor in der letzten Spalte eines Datensatzes, so wechselt der Cursor beim Betätigen von RECHTS automatisch zur ersten Spalte des nächsten Datensatzes. Umgekehrt wechselt die Taste LINKS in der ersten Spalte zur letzten Spalte des vorausgehenden Datensatzes. Statt RECHTS und LINKS können auch die Taste TAB bzw. UMSCHALT+TAB verwendet werden.
  • Werte können mit der Tastatur direkt in die Tabelle eingegeben werden. Sie werden dabei unmittelbar in der Tabelle gespeichert. Je nach Struktur der Tabelle kann aber nicht in jedem Feld jeder Wert gespeichert werden. Ist durch die Struktur der Tabelle beispielsweise festgelegt, dass ein Feld nur einen Zahlenwert speichern kann und gibt der Anwender dennoch Textzeichen ein, so blendet Access beim Versuch, das Feld zu verlassen, ein Dialogfeld mit einer Fehlermeldung ein und besteht auf Korrektur des Fehlers.
  • Ist eine Spalte zu breit um alle Inhalte darzustellen (z.B. Memofelder) kann mit UMSCHALT+F2 das ZOOM-Dialogfeld aufgerufen werden, in dem alle in der Normalansicht nicht sichtbaren Werte in einem mehrzeiligen Eingabefeld angezeigt werden.
  • Jaws liest den Wert eines Feldes automatisch vor und zeigt ihn auf der Braillezeile an. Ebenso wird in der Voreinstellung die Spaltenüberschrift vorgelesen.
  • JAWS+C sagt die aktuelle Koordinate des Feldes (Bezeichnung von Spalte und Zeile) an.
  • JAWS+F1 ruft den Virtual Viewer von Jaws auf. Dieser sagt die Eigenschaften der Zelle an, in der sich der Cursor gerade befindet.

Arbeiten in der Tabellen-Datenblattansicht

Datensatz löschen

  1. Navigieren Sie in die Zeile des Datensatzes, den Sie löschen möchten.
  2. Wählen Sie den Menüeintrag BEARBEITEN - DATENSATZ LÖSCHEN (ALT,B,Ö).
  3. Beantworten Sie die Sicherheitsabfrage des erscheinenden Dialogfeldes mit JA.

Spalte löschen

Innerhalb der Datenblattansicht ist es möglich, direkt eine Spalte der Tabelle und alle Einträge dieser Spalte in allen Datensätzen zu löschen. Dieser Befehl sollte nur mit größter Vorsicht benutzt werden. Vor dem Löschen der Spalte wird zwar ein Dialogfeld mit einer Sicherheitsabfrage eingeblendet, aber dieses wird durch ein unachtsames Drücken von EINGABE automatisch mit JA beantwortet. Es ist anschließend nicht mehr möglich, die Aktion rückgängig zu machen.

  1. Navigieren Sie innerhalb eines beliebigen Datensatzes in die Spalte, die Sie löschen möchten.
  2. Wählen Sie den Menüeintrag BEARBEITEN - SPALTE LÖSCHEN (ALT,B,L).
  3. Beantworten Sie die Sicherheitsabfrage des erscheinenden Dialogfeldes mit JA.

Datensatz auswählen

Möchten Sie einen Datensatz oder vielleicht sogar alle Datensätze einer Tabelle auf einmal auswählen, etwa um sie über die Zwischenablage in eine andere Tabelle oder in ein anderes Dokument zu kopieren, gehen Sie wie folgt vor.

  1. Navigieren sie zum gewünschten Datensatz.
  2. Wählen Sie den Menüpunkt BEARBEITEN - DATENSATZ AUSWÄHLEN (ALT,B,W).

Um alle Datensätze auf einmal auszuwählen, drücken Sie STRG+A oder wählen Sie den Menüeintrag BEARBEITEN - ALLE DATENSÄTZE AUSWÄHLEN (ALT,B,A).

Datensatz sortieren

Die Darstellung jeder Tabelle lässt sich nach einer Spalte sortieren. In der Voreinstelliung wird jede Spalte in aufsteigender Reihenfolge nach dem Inhalt der ersten Spalte sortiert. Möchten Sie eine Sortierung nach einer anderen Spalte oder in einer anderen Reihenfolge, gehen Sie wie folgt vor:

  1. Navigieren Sie in die Spalte, nach der Sie die Tabelle sortieren möchten.
  2. Wählen Sie den Menüeintrag DATENSÄTZE - SORTIEREN (ALT,S,S) und entscheiden Sie sich für eine Sortierreihenfolge. AUFSTEIGEND SORTIEREN (ALT,S,S,U) sortiert von A nach Z, ABSTEIGEND SORTIEREN (ALT,S,S,A) von Z nach A.

Datensatz suchen

Für das Suchen eines Datensatzes stellt Access gleich eine Reihe unterschiedlicher Werkzeuge bereit. Diese unterscheiden sich beträchtlich in ihrer Komplexität und reichen von der einfachen Textsuche, wie man sie auch aus Anwendungen wie Microsoft Word kennt, bis hin zu komplexen Filterfunktionen.

Suchen und Ersetzen

Die einfache Textsuche SUCHEN sucht nach einer beliebigen Zeichenfolge. Die Funktion ERSETZEN im gleichnamigen Reiter erlaubt es zudem, die gefundenen Ergebnisse mit einer frei wählbaren Zeichenkette auszutauschen.

  1. Drücken Sie STRG+F oder wählen Sie den Menüeintrag BEARBEITEN - SUCHEN (ALT,B,S).
  2. Geben Sie im erscheinenden Dialogfeld SUCHEN UND ERSETZEN die Zeichenkette, nach der Sie suchen möchten, in das Eingabefeld (ALT+S) ein.
  3. Mit TAB können Sie weitere Einstellungsmöglichkeiten anspringen, über welche sich die Suche verfeinern lässt.
    • SUCHEN IN (ALT+C) - beschränkt die Suche auf eine bestimmte Spalte der Tabelle oder sucht bei Wahl des Tabellennamens als Suchort gleichermaßen in allen Spalten der Tabelle.
    • VERGLEICHEN (ALT+V) - steuert die Suche der Zeichenfolge innerhalb eines Feldes.
      1. GANZES FELD - Der Suchbegriff muss das ganze Feld einnehmen, in dem gesucht wird.
      2. TEIL DES FELDINHALTES - Der Suchbegriff muss im Feld an einer beliebigen Stelle vorkommen. Eine Suche nach 'BE' könnte BErgzabern, BamBErg, oder BErlin als Ergebnisse liefern.
      3. ANFANG DES FELDINHALTES - Der Suchbegriff muss am Anfang des Feldes stehen. Eine Suche nach 'BE' könnte BErgzabern oder BErlin als Ergebnisse liefern, nicht aber BamBErg.
    • SUCHEN (ALT+U) - entscheidet darüber, in welcher Richtung die Suche stattfinden soll. Ausgangspunkt ist immer der aktuelle Datensatz.
      1. ALLE - durchsucht alle Datensätze
      2. AUFWÄRTS - sucht vom aktuellen Datensatz aus in allen Datensätzen, die über ihm stehen.
      3. ABWÄRTS - sucht vom aktuellen Datensatz aus in allen Datensätzen, die unter ihm stehen.
    • GROSS-/KLEINSCHREIBUNG BEACHTEN (ALT+K)
    • FORMATIERUNG BEACHTEN (ALT+F) - beschränkt die Suche auf Ergebnisse, deren Formatierung (Textauszeichnung etc.) genau mit dem Suchbegriff übereinstimmt.
  4. Starten Sie den Suchvorgang mit EINGABE.

Um das Suchergebnis zu sehen, müssen Sie das Dialogfeld verlassen. Zur weiteren Suche muss es erneut mit STRG-F aufgerufen werden.

Möchten Sie Werte der Tabelle durch eine beliebige Zeichenkette ersetzen, wechseln Sie aus der Suche zum Karteireiter ERSETZEN, oder rufen Sie das Dialogfeld ERSETZEN direkt aus der Tabelle über den Menüeintrag BEARBEITEN - ERSETZEN (ALT,B,E) oder mit der Tastaturkombination STRG+H auf. Das Dialogfeld ERSETZEN ist im Aufbau weitgehend identisch zur Suche. Es enthält zusätzlich das Eingabefeld ERSETZEN DURCH (ALT+D), in welches man die Zeichenkette einträgt, durch welche die Suchergebnisse ersetzt werden sollen.

  • Der Schalter WEITERSUCHEN (ALT+W) sucht lediglich nach einem Eintrag, der dem Suchbegriff entspricht.
  • Der Schalter ERSETZEN (ALT+E) ersetzt den gefundenen Eintrag durch die gewählte Zeichenkette
  • Der Schalter ALLE ERSETZEN (ALT+T) ersetzt ohne weitere Rückfrage alle Einträge, die dem Suchkriterium entsprechen.

Auch die Funktion ERSETZEN muss mit Bedacht eingesetzt werden, da sich der Vorgang nicht rückgängig machen lässt.

Filter

Filter ermöglichen es, Datensätze mit gemeinsamen Eigenschaften aus einer großen Datenmenge herauszusuchen. Dabei kann der Benutzer die Eigenschaften frei wählen. Ein Unternehmen könnte seine Kundendaten zum Beispiel nach den Kriterien "Frau, jünger als 30, älter als 20, Wohnort Mannheim" filtern, um einen Werbe-Serienbrief an diese Zielgruppe zu versenden.

Formularbasierter Filter

Der formularbasierte Filter wird - wie der Name schon vermuten lässt - eher aus einem Formular heraus aufgerufen, lässt sich allerdings auch aus einer Tabelle starten. Die Idee dieses Filters ist es, den Anwender beim Finden seiner Filterkriterien dadurch zu unterstützen, dass er eine Auswahl von Filtermöglichkeiten angezeigt bekommt, aus denen er nur noch wählen muss. Genau diese Möglichkeit der Auswahl funktioniert beim Aufruf des formularbasierten Filters aus einer Tabelle heraus nicht. Stattdessen muss der Anwender seine Filterkriterien von Hand eingeben.

  1. Öffnen Sie die Tabelle, auf welche Sie Filterkriterien anwenden möchten.
  2. Wählen Sie den Menüpunkt DATENSÄTZE - FILTER - FORMULARBASIERTER FILTER (ALT,S,F,F).
  3. Alle Datensätze der Tabelle verschwinden. Die einzige verbleibende Zeile unterhalb der Spaltenüberschriften ist leer. Mit ALT+AB kann man aber in jedem Feld eine Ausklappliste öffnen, welche die Einträge IST NULL und IST NICHT NULL enthält.
    • IST NULL - setzt den Filter, dass dieses Feld im gesuchten Datensatz keinen Wert enthalten darf.
    • IST NICHT NULL - setzt den Filger, dass dieses Feld im gesuchten Datensatz unbedingt einen Wert enthalten muss.
  4. Weitere Filter können nur direkt über Text in die Felder unter den Spalten eingegeben werden, auf die das Filterkriterium angewendet werden soll. Mehr zum Formulieren von Filterausdrücken unter Access: Operatoren, Platzhalter und Bedingungsausdrücke.
  5. Um die gesetzten Filter auf die Daten in der Tabelle anzuwenden, wählt man den Menüpunkt DATENSÄTZE - FILTER/SORTIERUNG ANWENDEN (ALT,S,O).
  6. In der Tabelle werden nur noch diejenigen Datensätze angezeigt, die den Filterkriterien entsprechen.
  7. Von hier aus kann man entweder erneut den formularbasierten Filter über das Menü aufrufen und Veränderungen an den Filterkriterien vorzunehmen, oder man kann über den Menüeintrag DATENSÄTZE - FILTER/SORTIERUNG ENTFERNEN (ALT,S,N) alle Filter löschen und zur normalen und vollständigen Ansicht der Tabelle zurückkehren.
Auswahlbasierter Filter

Der auswahlbasierte Filter ist sehr leicht anzuwenden. Er verwendet den Wert des aktuell ausgewählten Feldes als Filterkriterium.

  1. Öffnen Sie die Tabelle, auf welche Sie Filterkriterien anwenden möchten.
  2. Navigieren Sie in das Feld, welches den Wert enthält, nach dem Sie die Tabelle filtern möchten.
  3. Wählen Sie den Menüpunkt DATENSÄTZE - FILTER - AUSWAHLBASIERTER FILTER (ALT,S,F,W).
  4. In der Tabelle werden nun nur noch diejenigen Datensätze angezeigt, die den Wert des Filterkriteriums in der entsprechenden Spalte enthalten.
  5. Die Funktion des auswahlbasierten Filters lässt sich wiederholt nacheinander anwenden und auch mit dem auswahlausschließenden Filter kombinieren. Dazu navigieren Sie innerhalb der gefilterten Ergebnistabelle zu einem anderen Feld und rufen die gewünschte Funktion über das Menü auf.
  6. Möchten Sie die Filter wieder entfernen, rufen Sie den Menüeintrag DATENSÄTZE - FILTER/SORTIERUNG ENTFERNEN (ALT,S,N) auf und kehren dadurch zur vollständigen Ansicht der Tabelle zurück.
Auswahlausschließender Filter

Der auswahlausschließende Filter funktioniert ähnlich wie der auswahlbasierte Filter. Statt eines Wertes, den jeder Datensatz enthalten MUSS, legen Sie hier fest, welchen Wert ein bestimmtes Feld in keinem Fall enthalten DARF.

  1. Öffnen Sie die Tabelle, auf welche Sie Filterkriterien anwenden möchten.
  2. Navigieren Sie in das Feld, welches den Wert enthält, nach dem Sie die Tabelle filtern möchten.
  3. Wählen Sie den Menüpunkt DATENSÄTZE - FILTER - AUSWAHLAUSSCHLIESSENDER FILTER (ALT,S,F,C).
  4. Die Funktion des auswahlausschließenden Filters lässt sich wiederholt nacheinander anwenden und auch mit dem auswahlbasierten Filter kombinieren. Dazu navigieren Sie innerhalb der gefilterten Ergebnistabelle zu einem anderen Feld und rufen die gewünschte Funktion über das Menü auf.
  5. Möchten Sie die Filter wieder entfernen, rufen Sie den Menüeintrag DATENSÄTZE - FILTER/SORTIERUNG ENTFERNEN (ALT,S,N) auf und kehren dadurch zur vollständigen Ansicht der Tabelle zurück.

Access: Übung Filter

Spezialfilter/-sortierung

Der Spezialfilter ist der mächtigste Filter in Access, seine Bedienung ist allerdings recht komplex. Mit ihm lassen sich alle Filterwünsche erfüllen und die Daten können im gleichen Arbeitsgang auch sortiert werden. Alle durch andere Verfahren gesetzte Filter lassen sich mit Hilfe des Spezialfilters nachbearbeiten und weiter verfeinern.

Der Spezialfilter wird über den Menüeintrag DATENSÄTZE - FILTER - SPEZIALFILTER/-SORTIERUNG (ALT,S,F,S) eingeschaltet. Dabei öffnet sich ein eigenes Filter-Fenster, welches dem Fenster gleicht, über welches Abfragen erstellt werden. Prinzipiell sind die Filterfunktionen von Access nichts anderes als Abfragen innerhalb einer einzigen Tabelle.

Das von links nach rechts langgezogene Fenster besteht aus zwei Bereichen, zwischen denen man mit F6 wechseln kann. Im oberen Teil wird die Tabelle angezeigt, auf welche die Filter angewendet werden sollen. Die Tabelle wird als sogenannte Feldliste angezeigt. Eine Feldliste zeigt die Spaltenüberschriften einer Datentabelle in Listenform, also in vertikaler Ausrichtung, an. Im unteren Teil des Fensters befindet sich der Kriterienbereich. Er besteht aus einer Tabelle. Die Zeilen der Tabelle sind wie folgt beschriftet:

  1. FELD:
  2. SORTIERUNG:
  3. KRITERIEN:
  4. ODER:

Die Spalten haben keine Beschriftung.

Um einen Filter zu erstellen, geht man wie folgt vor:

  1. Navigieren Sie mit den Pfeiltasten in ein freies Feld in der ersten Zeile der Tabelle. Jaws sagt ein Eingabefeld an.
  2. Mit ALT+AB öffnen Sie die Ausklappliste des Feldes. In ihr befinden sich alle Spaltenüberschriften der Tabelle, in der Sie filtern möchten. Mit AB und AUF navigieren Sie zu der Spaltenüberschrift, in der die zu filternden Daten stehen, drücken ESC und danach AB (!!! nicht EINGABE!!!). Kennen Sie den Namen der Spaltenüberschrift auswendig, können Sie ihn auch ohne die Ausklappliste einfach direkt in das Eingabefeld eingeben. Access unterstützt Sie bei der Eingabe, indem es versucht, anhand der bereits getippten Buchstaben zu erkennen, welche Spaltenüberschrift gewünscht ist und diese automatisch ergänzt. Übernommen wird der Eintrag durch Drücken von AB. (!!! erneut: nicht EINGABE!!!)
  3. Der Cursor sollte nun in der gleichen Spalte eine Zeile tiefer im Feld SORTIERUNG stehen. Hier gibt es verschiedene Möglichkeiten:
    • Soll keine Sortierung vorgenommen werden, lassen Sie das Feld frei und gehen mit AB in die nächste Zeile.
    • Wünschen Sie eine Sortierung, so legen Sie deren Art durch Öffnen der Ausklappliste mit ALT+AB fest. Zur Wahl stehen AUFSTEIGEND, ABSTEIGEND und KEINE SORTIERUNG. Drücken Sie anschließend ESC und dann AB. Selbstverständlich können Sie die Art der Sortierung auch wieder durch direkte Eingabe in das Eingabefeld durch Ausschreiben des entsprechenden Begriffes festlegen. Access unterstütz sie auch hierbei. Beenden Sie Ihre Eingabe in diesem Fall mit AB.
  4. Der Cursor steht nun im Feld KRITERIEN. Formulieren Sie hier Ihre Filterkriterien mit Hilfe von Operatoren und Platzhaltern (Siehe auch: Access: Operatoren, Platzhalter und Bedingungsausdrücke). Gehen Sie nach Ihrer Eingabe mit AB in die nächste Zeile.
  5. Sie befinden sich im Feld ODER. In diesem Feld können Sie mit Operatoren und Platzhaltern ein zweites Filterkriterium angeben, nach dem innerhalb der gewählten Spaltenüberschrift gesucht werden soll. Diese Funktion wird häufig zum Herausfiltern von Bereichen benötigt, zum Beispiel um Menschen zu finden, die jünger als 30, aber älter als 20 sind. Drücken Sie nun EINGABE und nicht AB. Der Cursor bleibt in der gleichen Zeile, springt aber eine Spalte weiter nach rechts.
  6. Sie haben nun zwei Möglichkeiten:
    • Sie navigieren in der freien Spalte wieder in die erste Zeile, um ein neues Filterkriterium zu definieren und wiederholen diesen Vorgang, bis Sie alle von Ihnen gewünschten Filter eingegeben haben.
    • Sie wenden den Filter auf die Tabelle an, indem Sie den Menüeintrag FILTER - FILTER/SORTIERUNG ANWENDEN (ALT,R,O) wählen. Sie können nach Betrachten des Filterergebnisses durch erneutes Aufrufen des Spezialfilters jederzeit Korrekturen vornehmen.

Möchten Sie die Filter wieder entfernen, rufen Sie den Menüeintrag DATENSÄTZE - FILTER/SORTIERUNG ENTFERNEN (ALT,S,N) auf und kehren dadurch zur vollständigen Ansicht der Tabelle zurück.


Access: Übung Spezialfilter

Tabelle: Entwurfsansicht

In der Tabellen-Entwurfsansicht von Access wird die Struktur einer Tabelle angelegt und bearbeitet. Die Tabellen-Entwurfsansicht kann auf unterschiedliche Weise aufgerufen werden:

  • aus dem Datenbankfenster:
    • Navigieren Sie auf eine bestehende Tabelle und drücken Sie die APPLIKATIONSTASTE. Wählen Sie ENTWURFSANSICHT (APPLIKATIONSTASTE,W).
    • Rufen Sie die Objektgruppe TABELLEN auf. Gehen Sie anschließend im Inhaltsbereich auf den Eintrag ERSTELLT EINE TABELLE IN DER ENTWURFSANSICHT.
    • Wählen Sie den Menüeintrag EINFÜGEN - TABELLE (ALT,E,T). Im sich öffnenden Dialogfeld wählen Sie ENTWURFSANSICHT und bestätigen mit EINGABE.
  • aus einer geöffneten Tabelle heraus: Wählen Sie den Menüeintrag ANSICHT - ENTWURFSANSICHT (ALT,A,W).

Die Entwurfsansicht besteht aus zwei Fensterbereichen, dem Feldeingabebereich in der oberen Fensterhälfte und dem Feldeigenschaftenbereich mit dem Informationsbereich in der unteren Bildschirmhälfte. Zwischen den beiden Bereichen kann mit der Taste F6 gewechselt werden.

Arbeiten in der Tabellen-Entwurfsansicht

Neue Tabelle erstellen

Die Grobstruktur einer neuen Tabelle wird über den Feldeingabebereich erstellt.

Der Feldeingabebereich besteht wiederum aus einer dreispaltigen Tabelle. Die erste Spalte trägt die Überschrift FELDNAME, die zweite Spalte die Überschrift FELDDATENTYP und die dritte Spalte die Überschrift BESCHREIBUNG. In jeder Zeile des Feldeingabebereichs kann die Spalte für eine Tabelle angelegt und definiert werden. Dazu gehen Sie wie folgt vor:

  1. Navigieren Sie in die Spalte FELDNAME.
  2. Wählen Sie einen sinnvollen Namen für die neue Spalte. Der Name sollte so gewählt sein, dass die Funktion der Spalte sofort aus ihm heraus ersichtlich ist.
  3. Navigieren Sie in die Spalte FELDDATENTYP.
  4. Öffnen Sie mit ALT+AB die Ausklappliste des Feldes und wählen sie mit AB und AUF den Feldtyp, den Sie für die Spalte wünschen. Sie können aus den folgenden Optionen wählen.
    • Text - Ermöglicht die Eingabe von bis zu 255 Zeichen, z.B. Text, Sonderzeichen und Zahlen.
    • Memo - Ermöglicht die Eingabe von längeren Texten, aber auch Sonderzeichen und Zahlen (65535 Zeichen).
    • Zahl - Es dürfen ausschließlich Zahlen eingegeben werden, wobei zwischen verschiedenen Zahlenarten unterschieden wird: Integer, Long Integer, Single, Double, Dezimal und Replikations ID.
    • Datum/Uhrzeit - Ermöglicht die Eingabe von Datumsangaben und Uhrzeiten. Verschiedene Arten der Darstellung sind dabei möglich.
    • Währung - Ermöglicht die Eingabe von Zahlen, die in der Darstellung um Währungszeichen wie z.B. € oder $ ergänzt werden.
    • Autowert - Nummeriert Datensätze automatisch. Der erste Datensatz erhält die 1, der zweite die 2 usw., kein zweiter Datensatz erhält die gleiche Nummer. In jeder Tabelle darf es nur eine Spalte vom Feldatentyp AUTOWERT geben.
    • Ja/Nein - Statt eines Zeichens wird ein Kontrollfeld in der Tabelle eingeblendet. Gesetzter Haken bedeutet JA, kein Haken bedeutet NEIN.
    • OLE Objekt - Ermöglicht das Einfügen von OLE Objekten. OLE Objekte sind Objekte anderer Anwendungen, aber auch Klänge oder andere binäre Daten.
    • Hyperlink - Ermöglicht die Eingabe von Hyperlinks, die aus Text, Zahlen und Sonderzeichen bestehen können.
    • Nachschlage Assistent - Ermöglicht die Übernahme von Werten aus anderen Tabellen oder die Auswahl mit Hilfe einer Liste oder eines Kombinationsfeldes.
  5. Navigieren Sie mit RECHTS in die Spalte BESCHREIBUNG. Sofern der Name der Tabelle aussagekräftig ist, kann das Feld BESCHREIBUNG frei bleiben. Gerade bei komplexen Datenbanken ist es aber durchaus sinnvoll, in das Feld BESCHREIBUNG eine kurze Erklärung über den Inhalt und die Funktion der Spalte aufzunehmen. Dies erleichtert es anderen Benutzern, die Struktur der Datenbank nachzuvollziehen.

Mit den oben beschriebenen Schritten ist eine Spalte der neuen Tabelle erstellt worden. Sie können nun weitere Einstellungen an der eben erstellten Spalte vornehmen oder eine weitere Spalte definieren, indem Sie die Schritte in einer neuen Zeile im Feldeingabebereich wiederholen.

Um die weiteren Eigenschaften einer Spalte zu bearbeiten, wechseln Sie mit F6 aus der Zeile des Feldeingabebereichs, in der Sie erstellt wurde zum zugehörigen Feldeigenschaftenbereich. Die in den Feldeigenschaften gesetzten Werte gehören jeweils zu einer Zeile aus dem Feldeingabebereich, ändern sich also in Abhängigkeit der Zeile, aus der heraus sie aufgerufen wurden. Der Feldeigenschaftenbereich besteht aus zwei Registerkarten, ALLGEMEIN und NACHSCHLAGEN. Auf jeder Registerkarte findet man eine einspaltige Tabelle. Die Zeilenbeschriftung gibt Aufschluss über die Werte, welche über die Felder beeinflusst werden können. Viele der Felder dürfen übrigens auch frei sein, wenn der Benutzer keinen Eintrag wünscht. Andere Felder müssen zwingend einen Wert enthalten. Manche Felder sind nur bei bestimmten Felddatentypen sichtbar, wundern Sie sich also nicht, wenn Sie nicht alle unten beschriebenen Felder sehen.

Auf der Registerkarte ALLGEMEIN finden Sie folgende Einstellungsmöglichkeiten:

  • FELDGRÖSSE - Wie viele Zeichen dürfen maximal in das Feld eingegeben werden? Bei Zahlen wählen Sie mit ALT+AB den gewünschten Zahlentyp (Integer, Double etc.)
  • FORMAT - Wie sollen die Feldinhalte später dargestellt werden? Hier können beispielsweise Währungssymbole oder ähnliches aus einer mit ALT+AB erreichbaren Ausklappliste gewählt werden.
  • DEZIMALSTELLENANZEIGE - Wie viele Dezimalstellen sollen bei Kommazahlen dargestellt werden?
  • EINGABEFORMAT - Legt ein Muster für alle Daten fest, die später in das Feld eingegeben werden sollen. Über die APPLIKATIONSTASTE und den Eintrag AUFBAUEN (APPLIKATIONSTASTE,A) lässt sich ein Assistent starten, der bei der Festlegung des Eingabeformates hilft.
  • BESCHRIFTUNG - Wie soll das Feld in Tabellen, Berichten und Formularen bezeichnet werden?
  • STANDARDWERT - Welchen Wert soll das Feld bei einem neu angelegten Datensatz anfänglich haben? Über die APPLIKATIONSTASTE und den Eintrag AUFBAUEN (APPLIKATIONSTASTE,A) lässt sich der AUSDRUCKSGENERATOR aufrufen. Dieser versucht beim Finden eines Wertes oder beim Aufbau eines Ausdrucks zu helfen, ist aber eher für fortgeschrittene Benutzer gedacht.
  • GÜLTIGKEITSREGEL - Mit der Gültigkeitsregel kann man einstellen, welche Daten bei der Eingabe angenommen und welche abgewiesen werden. Auf diese Weise lassen sich Fehler durch falsch eingegebene Daten vermeiden. Über die APPLIKATIONSTASTE und den Eintrag AUFBAUEN (APPLIKATIONSTASTE,A) lässt sich erneut der AUSDRUCKSGENERATOR zur Unterstützung aufrufen.
  • GÜLTIGKEITSMELDUNG - Welche Meldung soll der Anwender erhalten, wenn er versucht, ungültige Daten einzugeben?
  • EINGABE ERFORDERLICH - Muss das entsprechende Feld zwingend einen Wert enthalten? Hier können die Werte JA und NEIN aus einer mit ALT+AB erreichbaren Ausklappliste gewählt werden.
  • LEERE ZEICHEN - Soll eine leere Zeichenfolge (= doppelte Anführungszeichen hintereinander "") als gültiger Eintrag akzeptiert werden?
  • INDIZIERT - Soll ein Suchindex zum schnelleren Auffinden der Daten bei größeren Tabellen für diese Spalte erstellt werden? (Mögliche Einstellungen sind: NEIN, JA (DUPLIKATE MÖGLICH), JA (OHNE DUPLIKATE)).
  • UNICODE-KOMPRESSION
  • IME-MODUS
  • IME-SATZMODUS
  • SMARTTAGS

Anfänger sollten die Felder INDIZIERT, UNICODE-KOMPRESSION, IME-MODUS, IME-SATZMODUS und Smarttags auf den voreingestellten Werten belassen.

Auf der Registerkarte NACHSCHLAGEN befindet sich in der ersten Zeile eine Ausklappliste, welche Sie mit ALT+AB öffnen können. Je nach dem, welches Feld man in der Ausklappliste angewählt hat, können unterhalb neue Einträge erscheinen. Da die Funktion NACHSCHLAGEN aber bereits zu den fortgeschritteneren Funktionen zählt, wird sie hier nicht weiter beschrieben.

Zeilen löschen

Eine Zeile in der Entwurfsansicht entspricht einer Tabellen-Spalte in der Datenblattansicht. Wird eine bestimmte Spalte der Tabelle nicht mehr benötigt, so kann man diese durch das Löschen der zugehörigen Zeile in der Entwurfsansicht entfernen. Alle Einträge, welche die Tabelle in der entsprechenden Spalte enthielt, werden dadurch unwiederbringlich mitgelöscht. Gehen Sie dazu wie folgt vor:

  1. Navigieren Sie in die Zeile der Entwurfsansicht, welche der Spalte in der Datenblattansicht entspricht, die Sie löschen möchten.
  2. Wählen Sie den Menüeintrag BEARBEITEN - ZEILEN LÖSCHEN (ALT+B+C) oder wählen Sie im Kontextmenü den Eintrag ZEILEN LÖSCHEN (APPLIKATIONSTASTE,L).
  3. Beantworten Sie die Sicherheitsabfrage des erscheinenden Dialogfeldes mit JA.

Zeile einfügen

Eine Zeile in der Entwurfsansicht entspricht einer Tabellen-Spalte in der Datenblattansicht. Wird in der Datenblattansicht eine neue Spalte zwischen zwei bereits existierenden Spalten benötigt, so können Sie dies durch das Einfügen einer neuen Zeile zwischen zwei bestehenden Zeilen in der Entwurfsansicht erreichen.

Gehen Sie dazu wie folgt vor:

  1. Navigieren Sie in die Zeile der Entwurfsansicht, welche der Spalte in der Datenblattansicht entspricht, vor der Sie eine neue Spalte einfügen möchten.
  2. Wählen Sie den Menüeintrag EINFÜGEN - ZEILEN (ALT+E,E) oder wählen Sie im Kontextmenü den Eintrag ZEILEN EINFÜGEN (APPLIKATIONSTASTE,E).
  3. Füllen Sie die neu entstandene Zeile mit den von Ihnen gewünschten Werten.

Primärschlüssel festlegen

Um die Datenfelder einer Spalte als Primärschlüssel festzulegen, gehen Sie wie folgt vor:

  1. Navigieren Sie in die Zeile der Entwurfsansicht, welche der Spalte in der Datenblattansicht entspricht, die Sie als Primärschlüssel festlegen wollen.
  2. Wählen Sie den Menüeintrag BEARBEITEN - PRIMÄRSCHLÜSSEL (ALT+B,P) oder wählen Sie im Kontextmenü den Eintrag PRIMÄRSCHLÜSSEL (APPLIKATIONSTASTE,P).

Möchten Sie aus irgendeinem Grund den Primärschlüssel wieder entfernen, wiederholen Sie den oben beschriebenen Vorgang.

Möchten Sie einer anderen Spalte den Primärschlüssel zuweisen, so entfernen Sie ihn bitte zunächst und weisen ihn danach der neuen Spalte zu.

Gültigkeitsprüfung während der Eingabe

Um Fehler bei der Dateneingabe zu vermeiden, ist es sinnvoll für fehleranfällige Datenfelder eine Gültigkeitsprüfung während der Dateneingabe zu definieren. Access macht dies für die Datentypen DATUM/UHRZEIT, ZAHL, WÄHRUNG und JA/NEIN in begrenztem Umfang bereits automatisch. So protestiert es bei dem Versuch, Buchstaben in ein Zahlenfeld einzutippen oder moniert unklar eingegebene Datumsangaben. Für weitergehende Gültigkeitsprüfungen oder eine Gültigkeitsprüfung bei TEXT kann man in der Entwurfansicht innerhalb der Feldeigenschaften beim Eintrag GÜLTIGKEITSREGEL sehr genaue Regeln formulieren. Bei Verstößen gegen eine Gültigkeitsregel kann ebenfalls in der Entwurfsansicht der Text der Fehlermeldung über den Eintrag GÜLTIGKEITSMELDUNG definiert werden. Gut formulierte Fehlermeldungen helfen dem Anwender später, seinen Fehler zu begreifen und in Zukunft zu vermeiden.

Gültigkeitsregeln werden aus den gleichen Operatoren und Platzhaltern aufgebaut, die auch bei Filtern und Abfragen eingesetzt werden. (Mehr unter Access: Operatoren, Platzhalter und Bedingungsausdrücke.) Zusätzlich steht eine Funktion DATUM() zur Verfügung, welche bei Vergleichsoperationen immer automatisch das aktuelle Datum einträgt. Sollen für ein Feld gleichzeitig mehrere Regeln gelten, so kann man diese durch die Operatoren UND, ODER, NICHT, und ZWISCHEN miteinander verknüpfen. Bei der Eingabe sollten folgende weitere Regeln beachtet werden:

  • Zahlenangaben werden direkt hinter den Vergleichsoperator geschrieben, z.B. <= 3
  • Datums- und Zahlenangaben werden von Zahlzeichen/Rauten umgeben, z.B. < #11.09.2001#
  • Text wird von Anführungszeichen umgeben, z.B. > "A"
  • Logische Angaben werden ohne Anführungszeichen durch JA und NEIN eingegeben, z.B. <> NEIN

Weitere Beispiele:

  • WIE "E*" - Sucht alle Einträge, die mit E beginnen.
  • WIE "[!E]" - Akzeptiert alle Zeichen außer E.
  • WIE "[A-G]" - Akzeptiert nur die Buchstaben A, B, C, D, E, F und G.
  • WIE "[AG]*" - Akzeptiert alle Einträge, die mit A oder G beginnen.
  • WIE "A?????" - Akzeptiert alle Einträge, die mit A anfangen und 5 Zeichen lang sind.
  • WIE "####" - Akzeptiert eine Zeichenkette aus vier Ziffern.
  • ZWISCHEN 1 UND 10 - Akzeptiert Werte von 1 bis 10.
  • > #11.09.2001# und < Datum() - akzeptiert Datumsangaben die zwischen dem 11. September 2001 und dem aktuellen Datum liegen.

Mit Index / Indizes arbeiten

Indizes definieren und bearbeiten Sie am einfachsten in der Tabellen- Entwurfsansicht.

Einfachen Index erstellen
  1. Navigieren Sie in die Zeile der Entwurfsansicht, welche der Spalte in der Datenblattansicht entspricht, für die Sie einen Index erstellen möchten.
  2. Wechseln Sie mit F6 in die FELDEIGENSCHAFTEN und navigieren Sie zum Eintrag INDIZIERT.
  3. Öffnen Sie mit ALT+AB die Ausklappliste und wählen Sie die Art des Index, den Sie erstellen möchten (JA (Duplikate möglich) oder JA (Ohne Duplikate)).
Indexfenster

Das Indexfenster gibt Ihnen eine Übersicht über alle in einer Tabelle bestehenden Indizes. Um es zu öffnen, wählen Sie in der Tabellen-Entwurfsansicht den Menüeintrag ANSICHT - INDIZES (ALT,A,N). Das Indexfenster besteht aus zwei Fensterteilen, zwischen denen Sie mit der Taste F6 wechseln können: einer dreispaltigen Tabelle im oberen Fensterbereich und den Indexeigenschaften (bestehend aus drei Eingabefeldern). Leider wird dieser Wechsel nicht durch eine JAWS-Ansage kenntlich gemacht, man muss sich an den jeweils gefundenen Feldern orientieren. Die dreispaltige Tabelle hat folgende Spaltenüberschriften:

  • INDEXNAME - Hier vergeben Sie einen Namen für den Index, z.B. Primärschlüssel. In vielen Fällen können Sie als Indexnamen aber auch den Feldnamen vergeben, auf den sich der Index bezieht. Lediglich bei zusammengesetzten Indizes empfiehlt sich ein eigenständiger Name.
  • FELDNAME - Hier öffnen Sie mit ALT+AB die Ausklappliste und wählen das Feld (die Spalte), für das ein Index eingerichtet werden soll.
  • SORTIERREIHENFOLGE - Hier öffnen Sie mit ALT+AB die Ausklappliste und legen die Sortierreihenfolge (AUFSTEIGEND / ABSTEIGEND) fest.

Aus der Zeile, in der Sie einen Index definiert haben, wechseln Sie mit F6 zu den Indexeigenschaften. Folgende Optionen können Sie hier jeweils über eine Ausklappliste definieren, die Sie wie üblich mit ALT+AB öffnen:

  1. PRIMÄRSCHLÜSSEL - JA definiert den Index als Primärschlüssel. Ist bereits ein Primärschlüssel in der Tabelle vorhanden, so wird dieser automatisch in einen Index ohne Duplikate umgewandelt. Ist ein bestehender Primärschlüssel bereits Teil einer oder mehrerer Beziehungen, so wird der Wechsel von Access zurückgewiesen.
  2. EINDEUTIG - Der Eintrag JA legt fest, dass der Index keine Duplikate enthalten darf. Dies ist beispielsweise Voraussetzungen für einen Primärschlüssel. Enthält die Spalte aber Duplikate, so verweigert Access die Einstellung JA. Der Eintrag NEIN erlaubt Duplikate.
  3. NULLWERTE IGNORIEREN - Der Eintrag JA schließt leere Datenfelder vom Index aus. Für den Primärschlüssel ist nur der Eintrag NEIN erlaubt.

Das Indexfenster schließen Sie mit ALT+LEERTASTE,X oder mit ALT+F4.

Zusammengesetzten Index definieren

Ein zusammengesetzter Index besteht aus mehreren untereinander definierten Indizes, die unter einem gemeinsamen Indexnamen zusammengefasst sind. Gehen Sie zu seiner Erstellung wie folgt vor:

  1. Definieren Sie den Index des ersten Datenfelds wie bei einem einfachen Index, und vergeben Sie dabei einen sinnvollen Indexnamen.
  2. Wechseln Sie mit AB in die nächste Zeile. Ist diese nicht frei, fügen Sie bitte mit APPLIKATIONSTASTE,E eine neue Zeile ein.
  3. Lassen Sie das Feld INDEXNAME frei und definieren Sie alle anderen Felder und die Indexeigenschaften entsprechend Ihrer Wünsche.
  4. Wiederholen Sie den letzten Schritt, wenn Sie dem Index noch mehr Datenfelder hinzufügen möchten. Diese werden später bei der Indexerstellung durch Access in der Reihenfolge abgearbeitet, in der sie definiert wurden.
Index löschen
Einfachen Index löschen
  1. Navigieren Sie in die Zeile der Entwurfsansicht, welche der Spalte in der Datenblattansicht entspricht, in der Sie den einfachen Index löschen möchten.
  2. Wechseln Sie mit F6 in die FELDEIGENSCHAFTEN und navigieren Sie zum Eintrag INDIZIERT.
  3. Öffnen Sie mit ALT+AB die Ausklappliste und wählen Sie mit ALT+AB als Indextyp NEIN.
Beliebigen Index löschen
  1. Wählen Sie in der Tabellen-Entwurfsansicht den Menüeintrag ANSICHT - INDIZES (ALT,A,N).
  2. Navigieren Sie mit AB und AUF in die Zeile, die den Eintrag zu dem Index enthält, den Sie löschen möchten.
  3. Löschen Sie den Eintrag über das Kontextmenü ZEILEN LÖSCHEN (APPLIKATIONSTASTE,L).

Übung: Umgang mit Tabellen

In der folgenden Übung soll die Beispieldatenbank "Cd_Verwaltung.mbd" um eine neue Tabelle ergänzt werden. In der neuen Tabelle sollen die Kosten der Medien aufgelistet werden.

  1. Lege eine neue Tabelle mit dem Namen „Tabelle_Kosten_Medien“ an. (Die Unterstriche dienen dabei der klare Kennzeichung der Lücke. Dies vermeidet Fehler bei der händiger Korrektur an der Datenbank.)
  2. In der Tabelle sollen folgende Datensätze mit den Feldnamen angelegt werden:
    • id_Kosten
    • id_Medium
    • Herkunft
    • Kaufdatum
    • Preis
  3. Bestimmen Sie die Feldnamentypen.
  4. Bestimmen Sie den Primärschlüssel, bzw. den Index.
  5. Legen Sie in den Feldern Datum, Preis und id_Medum eine Gültigkeitsprüfung an.

Operatoren, Platzhalter und Bedingungsausdrücke

Ein Operator ist Symbol oder ein Wort, mit dem man Access mitteilt, was ein Filter oder eine Abfrage genau tun soll. Er vergleicht unterschiedliche Werte und trifft anhand dieses Vergleiches die Entscheidung, ob ein Datensatz im Ergebnis erscheint oder nicht. Platzhalter ermöglichen es, Vergleiche auch mit Werten vorzunehmen, von denen Teile unbekannt oder für die Abfrage bzw. den Filter nicht relevant sind. Aus Operatoren und Platzhaltern werden sogenannte Bedingungsausdrücke aufgebaut, die es erlauben, spezielle Ansichten der in der Datenbank gespeicherten Daten zu erstellen.

Operatoren

Der geläufigste Operator ist der Operator GLEICH, mathematisch "=". Er vergleicht zwei Werte miteinander und stellt fest, ob diese identisch oder unterschiedlich sind. Kombiniert man den GLEICH-Operator mit einem bestimmten Wert, so entsteht ein Bedingungsausdruck, wie zum Beispiel Haarfarbe = blond. In einer Tabelle, in der Personen und ihre Haarfarbe gespeichert sind, würde dieser Bedingungsausdruck als Filter angewendet alle brünetten, rothaarigen und andersfarbigen aussortieren und nur blonde Personen übriglassen. Der auswahlbasierten Filter nutzt ausschließlich den GLEICH-Operator.

Das Gegenstück zum GLEICH-Operator ist der UNGLEICH-Operator, mathematisch " <> ". Ein mit ihm formulierter Bedingungsausdruck findet alle Werte, die nicht dem Vergleichswert entsprechen. Im oben genannten Beispiel würde Haarfarbe <> blond alle blonden Personen aussortieren, alle anderen Personen aber in der Tabelle belassen. Der auswahlausschließende Filter nutzt ausschließlich den UNGLEICH-Operator.

Access setzt für den GLEICH- und den UNGLEICH-Operator eigene Begriffe ein.

  • Ein Bedingungsausdruck mit dem GLEICH-Operator wird in Access mit dem Wort WIE eingeleitet. Innerhalb des Filter-Fensters in der Zeile Kriterium könnte beispielsweise ' Wie "Mannheim" ' stehen. Access prüft in diesem Fall zunächst in der ersten Zeile, auf welche Spalte sich die Bedingung bezieht und führt dann den Vergleich durch.
  • Der UNGLEICH-Operator wird mit dem Wort NICHT eingeleitet. Um alle Mannheimer aus einer Tabelle herauszufiltern, würde als Bedingungsausdruck in der passenden Spalte ' Nicht "Mannheim" ' stehen.

Sowohl der GLEICH- als auch der UNGLEICH-Operator lassen sich auf Text und auf Zahlen anwenden. Andere Operatoren können hingegen nur auf Zahlen angewendet werden. Zu diesen Oparatoren gehören:

  • < Kleiner als - Beispiel: Finde alle Personen, die kleiner als 180 cm sind: Spalte Körpergröße: < 180
  • > Größer als - Beispiel: Finde alle Einkommen, die größer als 60000€ sind: Spalte Einkommen: > 60000
  • <= Kleiner gleich - Beispiel: Finde alle Personen, die 80 Jahre oder jünger sind: Spalte Lebensalter: <= 80
  • >= Größer gleich - Beispiel: Finde alle Postleitzahlen, die größer als 30000 sind: Spalte Postleitzahl: >= 30000

Aus Operatoren aufgebaute Bedingungsausdrücke lassen sich durch UND- und ODER-Anweisungen auch miteinander kombinieren.

Beispiele:

  • UND - Finde alle Personen im Postleitzahlenbereich 3 (von 30000-39999): Spalte Postleitzahl: >=30000 UND <40000
  • ODER - Finde alle Personen, die in Ilvesheim oder in Marburg wohnen: Spalte Wohnort: Wie "Ilvesheim" ODER Wie "Marburg"

Platzhalter

Um in einem Bedingungsausdruck mit einem ungenauen Suchwert arbeiten zu können, benötigt man Platzhalter. Mit diesen kann nach Werten gesucht werden, die einem Suchwert nur ähnlich sind, ihm aber nicht exakt entsprechen müssen. Vor allem bei der Arbeit mit Texten kommt Platzhaltern eine große Bedeutung zu, wie das folgende Beispiel zeigt: Nehmen Sie an, Sie suchen in Ihrer Kundendatenbank einen Herrn Meier, oder war es Meyer, oder Maier oder vielleicht sogar Mayer? Sie wissen es nicht genau. Sie könnten nun einen Filter für Ihre Datenbankabfrage definieren, der mit der ODER Verknüpfung nach jeder Schreibweise des Namens sucht. Wie "Meier" ODER Wie "Meyer" ODER Wie "Maier" ODER Wie "Mayer". Leichter ist es aber für die strittigen Buchstaben Platzhalter zu verwenden. Eine entsprechende Anfrage sähe dann so aus: Wie "M[ae][iy]er". Die eckigen Klammern sind Platzhalter. Die in Ihnen enthaltenen Buchstaben teilen Access mit, welche Zeichen an dieser Position stehen dürfen um die Bedingung des Bedingungsausdruckes noch zu erfüllen.

Neben den Klammern gibt es noch weitere Platzhalter, die in der folgenden Tabelle aufgelistet sind:

  • * - ersetzt beliebig viele Zeichen - Feld Name: M* - findet alle Namen die mit "M" beginnen: Müller, Meier, Menuras
  •  ? - ersetzt ein beliebiges alphabetisches Zeichen - Feld Name: Me?er - findet Namen wie Meier, Meyer, Meler, Mener ...
  • # - ersetzt ein beliebiges numerisches Zeichen - Feld Postleitzahl: 682## - findet die Postleitzahlen von 68200 bis 68299
  • [] - ersetzt das Zeichen, das in Klammern steht - Feld Name: Ma[iy]er - findet die Namen Maier und Mayer, nicht aber die Namen Maler oder Maser
  • [!] - ersetzt ein Zeichen, das in den Klammern nicht enthalten ist - Feld Name: Ma[!iy]er - findet Namen wie Maler und Maser, nicht aber Mayer und Maier
  • [-] - ersetzt ein Zeichen innerhalb eines Bereiches - Feld Name: Ma[a-l]er - findet Namen wie Mager, Maier, Maler, nicht aber Mayer

Regeln zur Eingabe von Bedingungsausdrücken

Damit Access Werte dem richtigen Typ zuordnen kann, müssen bei den Bedingungsausdrücken einige Regeln beachtet werden. Access kann beispielsweise den Wert 68549 als Zahl oder als Text interpretieren. Je nach dem, wie dieser Wert interpretiert wird, stehen unterschiedliche Operatoren zur Verfügung oder müssen unterschiedliche Platzhalter verwendet werden. Die Operatoren <, >, <=, >= lassen sich beispielsweise nur auf Zahlen anwenden. Soll ein Platzhalter für ein einzelnes Zeichen verwendet werden, so muss bei einer Zahl ein # und bei einem Buchstaben ein ? eingegeben werden. Der Wert 28.02.80 kann als Zahl oder als Datum interpretiert werden.

Folgende Regeln ermöglichen die Eingabe eindeutiger Werte:

  • Zahlen: Wird eine Zahl eingegeben, so wird sie als Zahl interpretiert. Beispiel: 68549
  • Texte: Texte müssen von Anführungszeichen "umgeben" sein. Eine Zahl in Anführungszeichen wird als Text, größer oder kleiner Vergleiche sind nicht möglich: Beispiel: "68549"
  • Datums und Uhrzeitangaben: Um ein Datum oder eine Uhrzeit einzugeben muss der Wert von Zahlzeichen # umgeben werden. Beispiel: #28.02.80#

Access: Übung mit Operatoren und Platzhaltern

Primärschlüssel

Der Primärschlüssel ist das Datenfeld einer Tabelle, welches einen Datensatz eindeutig identifiziert. In der ganzen Tabelle darf dieses Datenfeld kein zweites mal in der Spalte mit dem Primärschlüssel vorkommen. Üblicherweise ist das Datenfeld, welches den Primärschlüssel enthält, vom Typ ZAHL und wird über den Datentyp AUTOWERT automatisch mit Werten befüllt. Zahlen eignen sich als Primärschlüssel besonders gut, da Computer sie sehr schnell verarbeiten können und eine durchgängige und eindeutige Nummerierung Menschen aus dem Alltag, zum Beispiel durch den Personalausweis, bekannt ist. Dennoch kann ein Primärschlüssel auch aus dem Datentyp TEXT oder DATUM bestehen. Wichtig ist aber auch hier, dass kein Datenfeld mit Primärschlüssel den gleichen Wert haben darf wie ein anderes. Für die Spalte mit dem Primärschlüssel wird automatisch ein Index ohne Duplikate erstellt, um Operationen mit der Tabelle zu beschleunigen und um stets kontrollieren zu können, dass kein Wert doppelt vergeben ist. Sobald Sie eine Tabelle mit Primärschlüssel öffnen, wird diese automatisch nach dem Primärschlüssel sortiert. Für jede Tabelle kann nur ein Primärschlüssel vergeben werden. Zwingend erforderlich ist er aber nicht. Access akzeptiert auch Tabellen ohne ihn.

Index / Indizes

Innerhalb der Spalten einer Tabelle stehen Werte bei ihren zugehörigen Datensätzen. Innerhalb der einzelnen Spalten folgen die Werte aber keiner Sortierung. Wird ein bestimmter Wert gesucht, zum Beispiel für einen Filter oder eine Abfrage, so muss jeder Einzelwert der Spalte mit dem gesuchten Wert verglichen werden. Dies ist bei großen Tabellen mit tausenden Einträgen eine aufwändige Arbeit und benötigt viel Rechenleistung und Zeit. Ein Index kann diese Zeit drastisch reduzieren.

Der Index ist eine Datenstruktur, die innerhalb einer Tabelle zusätzlich zu einer bestehenden Spalte angelegt wird, um den Datenzugriff zu beschleunigen. Dazu werden alle Werte der Spalte gesammelt und in sortierter Reihenfolge in der Datenstruktur abgelegt. Neben den Werten speichert der Index die zugehörigen Adressen der Herkunftsspalte. Vereinfacht gesagt ist ein Index also eine zusätzliche nach Werten sortierte Tabelle mit zwei Spalten. Das folgende (vereinfachte) Beispiel zeigt, wie dadurch der Suchaufwand drastisch reduziert wird.

Stellen wir uns eine Tabelle mit eintausend Datensätzen vor, aus welcher ein Wert aus einer Spalte gesucht wird. Für unser Beispiel wissen wir jetzt einfach, dass der gesuchte Werte in der 720sten Zeile steht. Der Computer weiß es aber nicht, wenn er mit seiner Suche beginnt. Existiert kein Index, so vergleicht er den Suchwert mit dem Wert in der ersten Zeile unserer Spalte. Die Werte sind unterschiedlich, also setzt der Computer seine Suche durch den Vergleich mit dem Wert in der zweiten Zeile fort. Wieder hat er keinen Erfolg, weshalb er den Vorgang in der dritten, vierten, fünften Zeile wiederholt. Wie wir wissen, wird der Computer erst nach 719 Fehlversuchen Erfolg haben. Aufhören kann er deshalb aber noch nicht mit seiner Suche. Vielleicht kommt der Wert ja zwischen der 721sten und der 1000sten Zeile erneut vor. Insgesamt muss der Computer also 1000 Werte miteinander vergleichen, um sein Ergebnis präsentieren zu können. Wäre bekannt, dass der gesuchte Wert nur ein einziges mal in der Spalte vorkommt, so wären immer noch 720 Vergleiche notwendig gewesen. Existiert für die Spalte allerdings ein Index, so lässt sich die Suche deutlich verkürzen. Im Index stehen die Werte in sortierter Reihenfolge, sagen wir in aufsteigender Reihenfolge von minimal 1 bis maximal 1000. Egal, welchen Wert man an einer beliebigen Stelle findet, weiß man, dass alle vorausgehenden Werte kleiner oder gleich dem dortigen Werten sein müssen. Der Computer beginnt seine Suche nun nicht am Anfang sondern in der Mitte, sagen wir an der Stelle 500. Er vergleicht nun nicht nur, ob die Werte übereinstimmen, sondern er vergleicht ob sein gesuchter Wert größer oder kleiner ist als der Wert an der 500sten Stelle. Ist der gesuchte Wert größer, so muss der Computer von hier aus nur noch alle Werte jenseits der 500sten Stelle durchsuchen, ist er kleiner, muss er alle Werte unterhalb der 500sten Position durchsuchen. Die Suchmenge wurde also bereits halbiert. Für seinen nächsten Vergleich wählt der Computer einen Wert, der in der Mitte der verbliebenen Suchmenge liegt. Erneut prüft er, ob der dort gefundene Wert größer oder kleiner ist. Erneut wurde dadurch die Suchmenge halbiert. Nach diesem Muster setzt der Computer seine Suche fort, bis er den gesuchten Wert gefunden hat. Da im Index neben dem Wert auch die Adresse des Wertes in der ursprünglichen Tabelle gespeichert ist, kann der Computer sofort sein Ergebnis präsentieren. Ist bekannt, dass der Wert mehrfach in der Spalte vorkommen kann, muss er ggf. noch überprüfen, ob die Nachbarwerte ebenfalls dem gesuchten Wert entsprechen. Insgesamt benötigt die Suche mit dem Index aber deutlich weniger Vergleiche als die Suche ohne Index und benötigt daher auch weniger Zeit und Rechenaufwand.

Das oben stehende Beispiel vernachlässigt sicherlich, dass für die Erstellung des Indexes ebenfalls Rechenzeit und innerhalb der Datenbank Speicherplatz benötigt wird. Die Erstellung eines Indexes lohnt sich daher nur für Spalten mit vielen Werten, die häufig durchsucht werden müssen. Bei der Dateneingabe ergibt sich bei indizierten Spalten zudem jedesmal eine kleine Zeitverzögerung, da nicht nur der Wert in die Tabelle eingetragen, sondern auch gleichzeitig jedes Mal der Index aktualisiert werden muss. Bei größeren Eingabeoperationen kann es daher sinnvoll sein, den Index kurzzeitig zu entfernen und dann nach Abschluss der Eingabe wieder zu aktivieren. Da moderne Computer Daten sehr schnell verarbeiten können, werden Sie beim Entwurf einer Datenbank zwischen einer indizierten und einer nicht indizierten Spalte bei der Suche vielleicht keinen fühlbaren Unterschied bemerken. Bitte bedenken Sie aber, dass Datenbanken schnell anwachsen können und sich mit gestiegenem Datenaufkommen zunächst nur kleine Zeitvorteile rasch deutlicher bemerkbar machen.

Access kennt verschiedene, miteinander kombinierbare Arten von Indizes:

  1. Index mit Duplikaten - Ein solcher Index kann mehrere identische Werte enthalten.
  2. Index ohne Duplikate - Ein solcher Index kann einen bestimmten Wert nur einmal enthalten. Ein bekanntes Beispiel für ein solcher Index ist der Primärschlüssel.
  3. Einfacher Index - Der Index beschränkt sich auf ein Datenfeld (eine Spalte).
  4. Zusammengesetzter Index - Benötigt ein Datensatz mehrere Felder, so sortiert Access erst nach dem ersten Indexfeld. Findet es dabei Duplikate, wird zusätzlich nach dem zweiten Indexfeld sortiert.

Beziehungen

Sowohl Tabellenkalkulationen wie Excel, als auch Datenbanksysteme wie Access speichern und bearbeiten Informationen in Form von Tabellen. Während die Hauptaufgabe einer Tabellenkalkulation aber beim Bearbeiten von Werten innerhalb einer Tabelle liegt, werden bei Datenbanksystemen zahlreiche Tabellen über sogenannte Beziehungen miteinander in Verbindung gebracht und gemeinschaftlich ausgewertet bzw. bearbeitet. Beziehungen zwischen einzelnen Tabellen sind notwendig wenn ...

  • ... Sie Daten aus unterschiedlichen Tabellen miteinander verbinden wollen.
  • ... Sie Daten aus unterschiedlichen Tabellen mit Abfragen auswerten wollen.
  • ... Sie Berichte oder Abfragen aus mehreren Tabellen anfertigen wollen.
  • ... Sie über ein Formular Datensätze verschiedener Tabellen bearbeiten wollen.

Beim Entwurf einer Datenbank muss genau überlegt werden, wie sich die zu speichernden Daten am besten auf verschiedene Tabellen aufteilen lassen, und in welcher Beziehung diese Tabellen zueinander stehen werden. Ziel ist es dabei Redundanzen, also doppeltes Speichern der gleichen Information, zu vermeiden.

Master- und Detailtabelle

Stehen zwei Tabellen in Beziehung zueinander, so kann man zwischen Mastertabellen und Detailtabellen unterscheiden. Die Hauptdatensätze stehen in der Mastertabelle, die untergeordneten Datensätze in der Detailtabelle. Die Mastertabelle stellt mit ihrem Primärschlüssel den Fremdschlüssel der Detailtabelle. Was in der Theorie sehr kompliziert klingt ist in der Praxis deutlich einfacher. Stellen wir uns eine Tabelle mit allen Lehrern einer Schule vor. In dieser Lehrertabelle sind für jeden Lehrer der Vor- und Nachname, sowie seine Personalnummer gespeichert. Als Primärschlüssel dient die Personalnummer, da diese für jeden Lehrer eindeutig ist. Diese Tabelle soll nun mit einer Tabelle in Beziehung gesetzt werden in der Überstunden verwaltet werden. Jede Zeile der Überstundentabelle enthält das Datum und die Anzahl der an einem Tag durch einen bestimmten Lehrer geleisteten Überstunden. Um die Überstunden dem richtigen Lehrer zuordnen zu können, wird neben dem Datum und der Anzahl der Überstunden als Fremdschlüssel die Personalnummer des zugehörigen Lehrers aus der Lehrertabelle gespeichert. Die beiden Tabellen sind dadurch in Beziehung gesetzt. Mastertabelle ist die Lehretabelle. Sie enthält den Primärschlüssel, über welchen die Verknüpfung möglich wird. Detailtabelle ist die Überstundentabelle. Sie übernimmt den Primärschlüssel Personalnummer als Fremdschlüssel.

Beispiele für Beziehungen

Schauen wir uns unterschiedliche Beziehungen am Beispiel einer Schule an:

  • EINE Schule hat MEHRERE Mitarbeiter
  • EINE Schule hat MEHRERE Abteilungen
  • EIN Mitarbeiter kann in MEHREREN Abteilungen arbeiten
  • EIN Mitarbeiter hat EINE Personalnummer
  • EIN Lehrer hat MEHRERE Schüler
  • EIN Schüler hat MEHRERE Lehrer
  • EINE Klasse hat MEHRERE Schüler
  • EINE Klassenstufe hat MEHRERE Klassen
  • EINE Schule hat MEHRERE Klassenstufen

Bei den oben genannten Beispielen lassen sich drei verschiedene Arten von Beziehungen unterscheiden:

Eins-zu-eins-Beziehung (1:1)

EIN Mitarbeiter hat EINE Personalnummer

Bei einer Eins-zu-eins-Beziehung (1:1) existiert zu jedem Datensatz aus der Mastertabelle GENAU EIN Datensatz aus der Detailtabelle. Prinzipiell brächte man für diesen Fall überhaupt keine Beziehung erstellen und könnte die Informationen beider Tabellen in einer einzigen führen. Eins-zu-eins-Beziehungen werden vor allem dann verwendet, wenn einzelne Tabellen kompakt und übersichtlich gehalten werden sollen, oder wenn aus Datenschutzgründen gewisse Detailinformationen bei einer allgemein einsehbaren Tabelle einzelnen nicht berechtigten Personen vorenthalten werden sollen.

Eins-zu-viele-Beziehungen (1:n)

EINE Schule hat MEHRERE Mitarbeiter

Die Eins-zu-viele-Beziehung (1:n) ist die am häufigsten vorkommende Beziehungsart in Datenbanken. Zu jedem Datensatz aus der Mastertabelle können mehrere untergeordnete Datensätze in einer Detailtabelle existieren. Jedem Datensatz der Detailtabelle ist umgekehrt aber nur genau ein wert in der Mastertabelle zugeordnet.

Viele-zu-viele-Beziehung (m:n)

  • EINE Abteilung besteht aus MEHREREN Mitarbeitern
  • EIN Mitarbeiter kann in MEHREREN Abteilungen arbeiten

Zu jedem Datensatz aus einer Tabelle können mehrere Datensätze aus einer anderen Tabelle zugeordnet sein und umgekehrt. Um eine solche Beziehung innerhalb einer Datenbank zu realisieren wird eine zusätzliche Tabelle benötigt, in welcher der Primärschlüssel aus den Schlüsseln beider Tabellen zusammengesetzt wird.

Referentielle Integrität

Durch Beziehungen werden zwischen Tabellen lose Verbindungen geschaffen. Ändern sich innerhalb einer Tabelle die Daten, über welche eine Beziehung zu einer anderen Tabelle besteht (z.B. durch Löschung eines Datensatzes), so werden diese Veränderungen nicht an die andere Tabelle weitergegeben. Hieraus können Probleme entstehen, da vielleicht aus einer Tabelle heraus auf einen Datensatz in einer anderen Tabelle verwiesen wird, der gar nicht mehr existiert. Derartige Fehler können relativ leicht entstehen. Nehmen wir an ein Lehrer geht in den Ruhestand und wird in der Schuldatenbank aus der Tabelle mit Lehrernamen gelöscht. Die mit der Lehrertabelle verknüpfte Überstundentabelle enthält aber immer noch Verweise auf den nun nicht mehr in der Lehrertabelle existierenden Lehrer. Es ist eine Inkonsistenz innerhalb der Daten enstanden. Ein oder mehrere Datensätze in der Überstundentabelle können nicht mehr zugeordnet werden.

Um derartige Probleme zu vermeiden, kann bei der Erstellung von Beziehungen zwischen einzelnen Tabellen zusätzlich die sogenannte referentielle Integrität definiert werden. Sie verhindert das Löschen von Datensätzen, die noch mit anderen Datensätzen in Verbindung stehen. Beim Versuch den Lehrer im oben genannten Beispiel aus der Lehrertabelle zu löschen würde bei aktiver referentieller Integrität Access den Löschbefehl verweigern.

Zusätzlich zur referentiellen Integrität lässt sich die Option Lösch- und Aktualisierungsweitergabe wählen. Diese bewirkt, dass Änderungen an einer Tabelle an mit Ihr in Beziehung stehende Tabellen weitergereicht werden. Wird beispielsweise ein Datensatz gelöscht, wie zum Beispiel der Lehrer im bekannten Beispiel, so werden automatisch auch alle Datensätze in den untergeordneten Tabellen mitgelöscht, die auf diesen Lehrer verwiesen. Würde ein Lehrer aus irgendeinem Grund eine neue Personalnummer erhalten (welche in unserem Beispiel als Primäschlüssel diente), so würde diese Veränderung an alle untergeordneten Tabellen weitergegeben werden.

Vorüberlegungen und Bedingungen zur Definition von Beziehungen

  • Verbundene Datenfelder müssen nicht den gleichen Feldnamen besitzen.
  • Verbundene Datenfelder müssen im Felddatentyp und in der Feldgröße übereinstimmen.
    • Möchten Sie Datenfelder über den Feldatentyp AUTOWERT verknüpfen, so müssen Sie in der Detailtabelle den Felddatentyp ZAHL mit der Feldgröße LONG INTEGER für das zu verknüpfende Feld einstellen.
  • Eine Indizierunge der verknüpften Datenfelder beschleunigt die Arbeit mit Abfragen, Formularen und Berichten.
  • Beziehungen können auf mehreren Spalten basieren. Diese müssen allerdings einen eindeutigen Index besitzen.
  • Bei Beziehungen mit referenzieller Integrität muss die Mastertabelle einen Primärschlüssel oder einen eindeutigen Index ohne Duplikate besitzen und die Beziehung muss auf diesem Schlüssel basieren.

Beziehungen erstellen, bearbeiten und löschen

Um Beziehungen in Access bearbeiten wechseln Sie vom Datenbankfenster über den Menüpunkt EXTRAS - BEZIEHUNGEN (ALT,X,H) in das Beziehungsfenster.

Das Beziehungsfenster stellt die Beziehungen zwischen den Tabellen einer Datenbank grafisch dar. Jede Tabelle wird in Form eines kleinen Fensters angezeigt, in dem die Spaltenüberschriften in einer Liste untereinander angeordnet sind. Um auch in umfangreichen Datenbanken übersichtlich zu bleiben lassen sich Tabellen wahlweise ein- oder ausblenden. Beziehungen zwischen Tabellen werden durch Linien dargestellt, welche zwischen den verbundenen Datenfeldern der Tabellen verlaufen. Über zusätzlich Symbole wird die Art der Beziehung (1:1, 1;n) visualisiert. Sehende Benutzer können durch einfaches Ziehen mit der Maus eine Linie zwischen zwei Datenfeldern erzeugen und dadurch eine neue Beziehung erstellen.

Um Beziehungen ohne Maus bearbeiten zu können sind gute Kenntnisse über die Struktur der Tabellen innerhalb der Datenbank wichtig. Bevor man das Beziehungsfenster aufruft, sollte man genau wissen welche Tabellen man wie miteinander verbinden möchte. Erster Schritt ist immer das Einblenden der Tabellen, die man miteinander in Beziehung setzen möchte.

Tabellen im Beziehungsfenster einblenden

Das Beziehungsfenster ist bei seinem ersten Aufruf leer und zeigt keine Tabellen an. Um Tabellen einzublenden und mit ihnen weiterarbeiten zu können ...

  1. ... wählen Sie den Menüpunkt BEZIEHUNGEN, TABELLEN ANZEIGEN (ALT,Z,T).
  2. Im sich öffnenden Dialogfenster TABELLE ANZEIGEN gibt es drei Registerkarten (TABELLEN, ABFRAGEN, BEIDE) und zwei Schalter (HINZUFÜGEN, SCHLIESSEN), sowie ein Listenfeld. Die Registerkarten erlauben es auszuwählen, ob im Listenfeld nur Tabellen, nur Abfragen, oder eben beides angezeigt werden soll.
  3. Mit AB und AUF navigiert man durch das Listenfeld und sucht eine der Tabellen aus, die man bearbeiten möchte.
  4. Mit TAB springt man auf den Schalter HINZUFÜGEN. Ohne weitere Rückmeldung wird dadurch die eben selektierte Tabelle in das Beziehungsfenster übernommen.
  5. MIT UMSCHALT+TAB springt man zurück in das Listenfeld und sucht mit AB und AUF die nächste Tabelle, die man wieder über den Schalter HINZUFÜGEN in das Beziehungsfenster übernehmen kann.
  6. Hat man alle Tabellen, die man zum Erstellen von Beziehungen benötigt in das Beziehungsfenster übernommen, schließt man das TABELLE ANZEIGEN Dialogfenster über den Schalter SCHLIESSEN.

Alle Tabellen, die in das Beziehungsfenster übernommen wurden, lassen sich nun weiterbearbeiten. Um die Übersicht zu bewahren, empfiehlt es sich immer nur wenige, vielleicht sogar nur zwei für eine Beziehung benötigte Tabellen einzublenden. Umgekehrt verhält es sich, wenn Sie die bestehenden Beziehungen innerhalb einer Datenbank erkunden möchten. In diesem Fall können Sie direkt aus dem Beziehungsfenster heraus alle Tabellen auf einmal einblenden. Dies geschieht über den Menüeintrag BEZIEHUNGEN - ALLE ANZEIGEN (ALT,Z,L).

Innerhalb des Beziehungsfensters können Sie mit TAB zwischen einzelnen eingeblendeten Tabellen hin- und herwechseln. Mit AB und AUF können sich innerhalb einer dort dargestellten Tabelle durch die Listeneinträge navigieren. Jaws sagt dabei eventuell existierende Beziehungen zu anderen Tabellen an.

Tabellen aus dem Beziehungsfenster entfernen

Das Entfernen von Tabellen aus dem Beziehungsfenster ist sehr einfach. Navigieren Sie mit TAB auf die Tabelle, die Sie entfernen möchten und drücken Sie anschließend ENTF. Alternativ können Sie auch den Menüeintrag BEZIEHUNGEN - TABELLE AUSBLENDEN (ALT,Z,A) verwenden. Wenn Sie sich nicht sicher sind in welcher Tabelle sich der Cursor gerade befindet, drücken Sie AB oder AUF um auf einen anderen Eintrag innerhalb des Tabellenfensters zu gelangen. Jaws sagt nach dem Listeneintrag den Namen der Tabellen an.

WICHTIG: Durch das Entfernen der Tabellen aus dem Beziehungsfenster werden die Tabellen und evtl. bestehende Beziehungen nicht gelöscht. Sie lediglich nicht nur mehr zu sehen.

Neue Beziehung erstellen

Beziehung ohne Einsatz von JAWS-Befehlen erstellen
  1. Um eine neue Beziehung zwischen zwei Tabellen zu erstellen blenden Sie die Tabellen zunächst im Beziehungsfenster ein.
  2. Wählen Sie den Menüeintrag BEZIEHUNGEN - BEZIEHUNGEN BEARBEITEN (ALT,Z,B).
  3. Wählen Sie im sich öffnenden Dialogfeld BEZIEHUNGEN BEARBEITEN den Schalter NEUE ERSTELLEN (ALT,N)
  4. Erneut öffnet sich ein Dialogfeld. Das jetzt aktive Dialogfeld NEUE ERSTELLEN besteht aus vier Ausklapplisten.
  5. Zunächst wählen Sie in der Ausklappliste LINKER TABELLENNAME (ALT+L) die Tabelle aus, die Mastertabelle für die neu zu erstellende Beziehung sein soll und springen dann mit TAB weiter.
  6. In der Ausklappliste RECHTER TABELLENNAME (ALT+R) wählen Sie die Tabelle aus, die Detailtabelle werden soll und springen dann weiter mit TAB.
  7. In der Ausklappliste LINKER SPALTENNAME (ALT+S) wählen Sie die Spalte der Mastertabelle aus, die den Schlüssel, enthält auf der die Beziehung basieren soll und springen dann wieder weiter mit TAB.
  8. In der letzten Ausklappliste RECHTER SPALTENNAME (ALT+P) wählen Sie die Spalte der Detailtabelle aus, die den Fremdschlüssel enthält.
  9. Springen Sie mit TAB zum OK Schalter und betätigen Sie diesen. Sie kehren zum Dialogfeld BEZIEHUNGEN BEARBEITEN zurück.
  10. Im Dialogfeld BEZIEHUNGEN BEARBEITEN steht der Cursor nun auf dem Auswahlschalter REFERENTIELLE INTEGRITÄT. Wenn Sie diese für die neue Beziehung wünschen drücken Sie LEERTASTE.
    • Wenn Sie referentielle Integrität angewählt haben, werden die Auswahlschalter AKTUALISIERUNGSWEITERGABE AN VERWANDTE FELDER und LÖSCHWEITERGABE AN VERWANDTE DATENSÄTZE freigegeben, die Sie mit TAB anspringen und mit LEERTASTE auswählen können.
  11. Um den Erstellungsvorgang für die neue Beziehung abzuschließen springen Sie mit TAB zum Schalter ERSTELLEN und bestätigen Sie mit EINGABE.
Beziehung mit Einsatz von JAWS-Befehlen erstellen
  1. Um eine neue Beziehung zwischen zwei Tabellen zu erstellen blenden Sie die Tabellen zunächst im Beziehungsfenster ein.
  2. Innerhalb des Beziehungsfensters können Sie mit TAB zwischen einzelnen eingeblendeten Tabellen hin- und herwechseln. Mit AB und AUF können sich innerhalb einer dort dargestellten Tabelle durch die Listeneinträge, welche die Spalten der jeweiligen Tabelle repräsentieren, navigieren. Jaws sagt dabei eventuell existierende Beziehungen zu anderen Tabellen an.
  3. Navigieren Sie zur Tabelle, die Sie als Mastertabelle definieren möchten.
  4. Wählen Sie mit AB und AUF die Spalte aus, nach der Sie die Beziehung erstllen möchten und drücken Sie dann STRG+UMSCHALT+C.
  5. Navigieren Sie nun mit TAB zur Tabelle, die Sie als Detailtabelle definieren möchten.
  6. Wählen Sie mit AB und AUF die Spalte aus, nach der Sie die Beziehung erstellen möchten und drücken Sie dann erneut STRG+UMSCHALT+C.
  7. Jaws sagt jede Auswahl, sowie das erfolgreiche Erstellen einer Beziehung an und öffnet dann das BEZIEHUNGEN BEARBEITEN Dialogfeld.
  8. Im Dialogfeld BEZIEHUNGEN BEARBEITEN steht der Cursor nun auf dem Auswahlschalter REFERENTIELLE INTEGRITÄT. Wenn Sie diese für die neue Beziehung wünschen drücken Sie LEERTASTE.
    • Wenn Sie referentielle Integrität angewählt haben, werden die Auswahlschalter AKTUALISIERUNGSWEITERGABE AN VERWANDTE FELDER und LÖSCHWEITERGABE AN VERWANDTE DATENSÄTZE freigegeben, die Sie mit TAB anspringen und mit LEERTASTE auswählen können.
  9. Um den Erstellungsvorgang für die neue Beziehung abzuschließen springen Sie mit TAB zum Schalter ERSTELLEN und bestätigen Sie mit EINGABE.

Beziehungen bearbeiten

  1. Um eine bestehende Beziehung zwischen Tabellen zu bearbeiten, blenden Sie die Tabellen zunächst im Beziehungsfenster ein.
  2. Wählen Sie den Menüeintrag BEZIEHUNGEN - BEZIEHUNGEN BEARBEITEN (ALT,Z,B). Es öffnet sich das Dialogfeld BEZIEHUNGEN BEARBEITEN.
  3. Der Cursor befindet sich nun in der Ausklappliste TABELLE/ABFRAGE (ALT+T).
  4. Mit ALT+AB öffnen Sie die Ausklappliste. Navigieren Sie mit AB und AUF die Mastertabelle, deren Beziehungen Sie bearbeiten möchten und bestätigen Sie mit EINGABE.
  5. Der Cursor springt zur Ausklappliste VERWANDTE TABELLE/ABFRAGE (ALT+L).
  6. Mit ALT+AB öffnen Sie die Ausklappliste. Navigieren Sie mit AB und AUF die Detailtabelle, deren Beziehungen Sie bearbeiten möchten und bestätigen Sie mit EINGABE. Access zeigt in dieser Ausklappliste nicht alle Tabellen an, sondern nur die Tabellen, zu denen von der vorher gewählten Mastertabelle auch tatsächlich Beziehungen bestehen.
  7. Der nächste Druck auf TAB springt in eine zweispaltige Tabelle. Die linke Spalte dieser Tabelle zeigt die Spalte der Mastertabelle an, über welche die Beziehung besteht. Diese lässt sich mit ALT+AB ändern. Die rechte Spalte der Tabelle zeigt die Spalte der Detailtabelle an, über welche die Beziehung besteht. Auch diese lässt sich mit ALT+AB ändern.
  8. Da es möglich ist, dass innerhalb einer Tabelle Beziehungen über mehrere/unterschiedliche Spalten definiert sind, kann man innerhalb der Tabelle mit Pfeiltasten navigieren und in der zweiten und weiteren Zeilen weitere Beziehungen mit ALT+AB definieren. Dies wird in der Regel aber nur selten benötigt.
  9. Der nächste Druck auf TAB bringt Sie zum Auswahlschalter REFERENTIELLE INTEGRITÄT. Wenn Sie diese für die neue Beziehung wünschen drücken Sie LEERTASTE.
    • Wenn Sie referentielle Integrität angewählt haben, werden die Auswahlschalter AKTUALISIERUNGSWEITERGABE AN VERWANDTE FELDER und LÖSCHWEITERGABE AN VERWANDTE DATENSÄTZE freigegeben, die Sie mit TAB anspringen und mit LEERTASTE auswählen können.
  10. Um den Erstellungsvorgang für die neue Beziehung abzuschließen springen Sie mit TAB zum Schalter ERSTELLEN und bestätigen Sie mit EINGABE.

Beziehungen löschen

Beziehungen lassen sich blind nur über eine JAWS-Funktion löschen.

  1. Um eine bestehende Beziehung zwischen Tabellen zu löschen, blenden Sie die Tabellen zunächst im Beziehungsfenster ein.
  2. Navigieren Sie im Beziehungsfenster zur Detailtabelle, deren Beziehung Sie löschen möchten.
  3. Wählen Sie mit AB und AUF die Spalte aus, nach der die Beziehung erstellt wurde und drücken Sie dann STRG+ENTF.
  4. JAWS sagt das erfolgreiche Löschen der Beziehung an.

Hinweis: Es ist auch möglich eine Beziehung von der Mastertabelle aus zu löschen. Dieses Vorgehen birgt aber die Gefahr mehr als nur die gewollte Beziehung zu löschen. Von einer Mastertabelle können mehrere Beziehungen zu verschiedenen Detailtabellen über das gleiche Feld bestehen. Durch das Löschen mit STRG+ENTF werden diese alle zusammen entfernt, sofern ihre Tabellen im Beziehungsfenster eingeblendet waren und nicht nur die gewünscht alleine. Werden Beziehungen von der Detailtabelle aus gelöscht, kann dies nicht passieren.

Beziehungsfenster schließen

Bitte beachten Sie, dass Sie das Beziehungsfenster, ebenso wie alle anderen in Access geöffneten Fenster nicht mit ALT+F4 oder über ALT+LEERTASTE,X schließen können ohne Access damit zu beenden. Stattdessen blenden Sie das Beziehungsfenster über den Menüeintrag FENSTER - AUSBLENDEN (ALT,F,B) aus.

Unterdatenblätter

Unterdatenblätter sind eine erweiterte Darstellungsform der Mastertabelle bei miteinander verknüpften Tabellen oder Abfragen. Ein Tabelle mit Unterdatenblatt zeigt sowohl die Datensätze der Mastertabelle, als auch die zugehörigen Detailinformationen aus der Detailtabelle gemeinsam an. Sie können so direkt gemeinsam bearbeitet werden.

Sind zwei Tabellen, bzw. Abfragen über eine 1:1 oder 1:n Beziehung miteinander verbunden, so lässt sich in der Tabellenansicht der Mastertabelle für jeden Datensatz ein Unterdatenblatt mit den zu diesem Datensatz gehörigen Einträgen der Detailtabelle anzeigen. Visuell dargestellt wird die Existenz eines Unterdatenblattes durch ein kleines Pluszeichen noch vor der ersten Spalte. Man kann das Unterdatenblatt entweder mit STRG+UMSCHALT+AB für jeden Datensatz einzeln öffnen (und mit STRG+UMSCHALT+AUF wieder schließen), oder über den Menüeintrag FORMAT - UNTERDATENBLATT - ALLES EINBLENDEN (ALT,T,R,B) die Unterdatenblätter für jeden Datensätze anzeigen lassen. Über den Menüeintrag FORMAT - UNTERDATENBLATT - ALLES AUSBLENDEN (ALT,T,R,A) blendet man alle Unterdatenblätter wieder aus.

Pro Tabelle bzw. Abfrage ist immer nur die Anzeige eines Unterdatenblattes möglich, auch wenn vielleicht Beziehungen zu weiteren anderen Detailtabellen bestehen. Ist dies der Fall, fragt Access beim ersten Öffnen der Mastertabelle nach, zu welcher Tabelle das Unterdatenblatt angezeigt werden soll.

Orientierung innerhalb einer Tabelle mit angezeigtem Unterdatenblatt ist für blinde Mensche etwas erschwert, da außerhalb der normalen Tabellenstruktur nun weitere Tabellen mit eigenen von der Haupttabelle abweichenden Spalten eingeblendet werden. An der Navigation mit Hilfe der Pfeiltasten ändert sich nichts

Unterdatenblätter manuell erzeugen

  1. Öffnen Sie aus dem Datenbankfenster eine Tabelle in der Datenblattansicht, für die Sie manuell ein Unterdatenblatt erzeugen möchten.
  2. Wählen Sie den Menüeintrag EINFÜGEN - UNTERDATENBLATT (ALT,E,R).
  3. Im sich öffnenden Dialogfeld UNTERDATENBLATT EINFÜGEN gibt es drei Registerkarten: TABELLEN, ABFRAGEN, BEIDE. Mit RECHTS und LINKS können Sie zwischen diesen Registerkarten wechseln. Je nach gewählter Registerkarte werden in einer Liste im Dialogfenster nur Tabellen, nur Abfragen oder eben beides gleichzeitig angezeigt. Drücken Sie nun TAB.
  4. Das Dialogfenster zeigt nun eine Liste der Tabellen an, die Sie als Unterdatenblatt einfügen können. Wählen Sie die gewünschte mit AB und AUF aus und drücken Sie anschließend TAB.
  5. Sie befinden Sich nun in der Ausklappliste VERKNÜPFEN VON (ALT,V): Wählen Sie mit AB und AUF die Spalte der Detailtabelle aus, die den Fremdschlüssel enthält nach dem verknüpft werden soll. Drücken Sie anschließend TAB.
  6. Sie befinden Sich nun in der Ausklappliste VERKNÜPFEN NACH (ALT,N): Wählen Sie mit AB und AUF die Spalte der Mastertabelle aus, die den Primärschlüssel enthält nach dem verknüpft werden soll.
  7. Schließen Sie den Vorgang durch Drücken des OK Schalters ab.

Übung: Beziehungen und Unterdatenblatt

  1. Welche Arten von Beziehungen gibt es?
  2. Welche Beziehung ist zu wählen, wenn ..
  3. Was ist ein Unterdatenblatt und wie kann man es lesen?
  4. Wo kann man die Beziehungen der Tabellen erstellen und anschauen?

Abhängige Daten im Aufgabenbereich anzeigen

Eine komplexe Datenbank besteht aus zahlreichen Tabellen, Abfragen, Formularen, Berichten usw.. All diese Datenbankobjekte stehen in der Regel irgendwie miteinander in Verbindung, sind teilweise voneinander abhängig. Das bedeutet, dass Änderungen an einem Datenbankobjekt ungewollte Auswirkungen auf ein anderes Objekt haben können. Daher ist es wichtig, stets die Abhängigkeiten im Blick zu behalten. Dies gilt vor allem beim Löschen von Objekten.

Abhängigkeiten zwischen Objekten lassen sich in Access über den Aufgabenbereich betrachten.

  1. Navigieren Sie zunächst auf ein Objekt im Datenbankfenster für welches Sie die Abhängigkeiten überprüfen möchten.
  2. Rufen Sie den Menüeintrag ANSICHT - OBJEKTABHÄNGIGKEITEN (ALT,A,N) auf und wechseln anschließend mit F6 in den Aufgabenbereich.
  3. Der Cursor steht im Aufgabenbereich auf einem Optionsfeld. Sie können mit AB und AUF wählen, ob Sie in der Darstellung der Abhängigkeiten diejenigen Objekte sehen wollen, die von dem im Aufgabenbereich gewählten Objekt abhängen (OBJEKTE, DIE VON MIR ABHÄNGEN), oder diejenigen Objekte von denen das im Aufgabenbereich gewählte Objekt selbst abhängt. (OBJEKTE, VON DENEN ICH ABHÄNGE). Mit TAB gelangen Sie zur Darstellung der Abhängigkeiten.
  4. Die Abhängigkeiten zwischen den Objekten werden in einer Baumstruktur angezeigt, wie sie vom Windows-Explorer her bekannt sein dürften. Überpunkte werden durch die verschiedenen Objektgruppen wie Tabellen, Abfragen, Formulare etc. gebildet. Sie navigieren mit AB und AUF durch die Liste und können ausgeblendete/geschlossene Objekte durch RECHTS sichtbar machen, bzw. durch links schließen/ausblenden. Möchten Sie sich ein Objekt näher anschauen, so navigieren Sie auf seinen Eintrag und drücken Eingabe. Mit F6 können Sie nun direkt aus dem Aufgabenbereich heraus zu dem jeweiligen Objekt wechseln.

Abfragen

Abfragen erlauben es die in einer Datenbank gespeicherten Informationen auszuwerten und strukturiert auszugeben. Eine Abfrage ist eine Darstellungsform, eine spezielle Sicht auf Daten. Ein Filter ist die Sonderform einer Abfrage, bei der nur eine einzelne Tabelle ausgewertet wird. Im Unterschied zu Filtern beschränken sich Abfragen allerdings nicht auf eine einzelne Tabelle, sondern arbeiten mit mehreren miteinander in Beziehung stehenden Tabellen. Wer aber verstanden hat wie man Filter erstellt wird mit dem Erstellen von Abfragen ebenfalls keine Probleme haben.

Abfragen lassen sich wie Tabellen speichern und öffnen. Dargestellt werden sie wie Tabellen, man kann in ihnen sogar Daten verändern und löschen. Im Gegensatz zu echten Tabellen speichern Abfragen selbst aber keinerlei Daten. Die Daten, die sie darstellen, werden bei jedem Öffnen oder Ausführen einer Abfrage neu aus den in den Tabellen gespeicherten Daten erzeugt. Ändert man innerhalb einer Abfrage Werte, so werden diese Änderungen an die Tabellen aus der die Werte stammen weitergereicht und dort geändert. Lediglich eine Sonderform der Abfragen, die Tabellenerstellungsabfrage erzeugt aus den durch eine Abfrage zusammengestellten Daten eine eigenständige, neue Tabelle.

Innerhalb von Access kennen Abfragen drei grundlegende Darstellungsformen (fünf mit den hier nicht behandelten PIVOT-Ansichten).

  1. Die Entwurfsansicht erlaubt es Abfragen zu definieren.
  2. Die SQL-Ansicht erlaubt es eine Abfrage mit Hilfe der Datenbanksprache SQL in Textform zu definieren.
  3. Die Datenblattansicht zeigt das Ergebnis einer ausgeführten Abfrage in Tabellenform an.

Abfragen Datenblattansicht

Die Datenblattansicht stellt das Ergebnis einer Abfrage in Tabellenform dar. Die Navigation in dieser Abfragen-Tabelle unterscheidet sich nicht von der Navigation innerhalb einer Daten-Tabelle. Mit den Pfeiltasten navigiert man durch die Datensätze, kann über das Menü zusätzliche Filter aufrufen oder die Sortierung der Daten beeinflussen. Lesen Sie hierzu bitte das Kapitel Access: Arbeiten in der Tabellen-Datenblattansicht

Abfragen Entwurfsansicht

Die Abfragen Entwurfsansicht erlaubt es komplexe Abfragen mit ohne direkte Eingabe von SQL-Code zu erstellen.

Das von links nach rechts langezogene Fenster der Abfragen-Entwurfsansicht besteht aus zwei Bereichen zwischen denen Sie mit F6 wechseln können. Es ist das gleiche wie bei den Filtern. Im oberen Teil wird eine Übersicht der Tabellen angezeigt, auf welche die Abfrage angewendet werden solle. Jede Tabelle wird als sogenannte Feldliste angezeigt. Eine Feldliste zeigt die Spaltenüberschriften einer Tabelle in Listenform, also in vertikaler Ausrichtung, an. Um unteren Teil des Fensters befindet sich der Kriterienbereich. Er besteht aus einer Tabelle. Die Zeilen der Tabelle sind wie folgt beschriftet.

  1. FELD:
  2. TABELLE:
  3. SORTIERUNG:
  4. ANZEIGEN:
  5. KRITERIEN:
  6. ODER:

Die Spalten haben keine Beschriftung.

Abfragen SQL-Ansicht

Die SQL-Ansicht besteht aus einem einfachen Textfeld, in welches man SQL-Code direkt eingeben kann. Zum Ausführen der Abfragen benutzen Sie die gleichen Menüeinträge wie bei der Entwurfsansicht.

Abfrage öffnen / ausführen

Um eine Abfrage zu öffnen und damit auch auszuführen navigieren Sie im Datenbankfenster auf die gewünschte Abfrage und drücken Sie EINGABE.

Abfrage erstellen

Abfragen werden in der Abfragen-Entwurfsansicht erstellt oder bearbeitet. Die Abfragen-Entwurfsansicht kann auf verschiedene Wege aufgerufen werden:

aus dem Datenbankfenster:

  • Navigieren Sie auf eine bestehende Abfrage und drücken Sie die APPLIKATIONSTASTE. Wählen Sie ENTWURFSANSICHT (APPLIKATIONSTASTE,W)
  • Rufen Sie die Objektgruppe ABFRAGEN auf und gehen Sie anschließend im Inhaltsbereich auf den Eintrag ERSTELLT EINE ABFRAGE IN DER ENTWURFSANSICHT
  • Wählen Sie den Menüeintrag EINFÜGEN - ABFRAGE (ALT,E,A). Im sich öffnenden Dialogfeld wählen Sie ENTWURFSANSICHT und bestätigen mit EINGABE.

aus einer geöffneten Abfrage heraus:

  • Wählen Sie den Menüeintrag ANSICHT - ENTWURFSANSICHT (ALT,A,W)

Die Entwurfsansicht besteht aus zwei Fensterbereichen, dem Feldeingabebereich in der oberen Fensterhälfte und dem Feldeigenschaftenbereich mit dem Informationsbereich in der unteren Bildschirmhälfte. Zwischen den beiden Bereichen kann mit der F6 Taste gewechselt werden.

Tabellen für die Abfrage auswählen

  1. Das Abfragenerstellungsfenster ist bei seinem ersten Aufruf leer und zeigt keine Tabellen an. Um Tabellen einzublenden und mit ihnen weiterarbeiten zu können wählen Sie Menüpunkt - ABFRAGE - TABELLE ANZEIGEN (ALT,R,A).
  2. Im sich öffnenden Dialogfenster TABELLE ANZEIGEN gibt es drei Registerkarten (TABELLEN, ABFRAGEN, BEIDE) und zwei Schalter (HINZUFÜGEN, SCHLIESSEN), sowie ein Listenfeld. Die Registerkarten erlauben es auszuwählen, ob im Listenfeld nur Tabellen, nur Abfragen, oder eben beides angezeigt werden soll.
  3. Mit AB und AUF navigiert man durch das Listenfeld und sucht eine die Tabellen aus, die man für die Abfrage benötigt.
  4. Mit TAB springt man auf den Schalter HINZUFÜGEN. Ohne weitere Rückmeldung wird dadurch die eben selektierte Tabelle in das Abfragenerstellungsfenster übernommen.
  5. MIT UMSCHALT+TAB springt man zurück in das Listenfeld und sucht mit AB und AUF die nächste Tabelle, die man wieder über den Schalter HINZUFÜGEN in das Abfragenerstellungsfenster übernehmen kann.
  6. Hat man alle Tabellen, die man zum Erstellen der Abfrage benötigt in das Abfragenerstellungsfenster übernommen, schließt man das TABELLE ANZEIGEN Dialogfenster über den Schalter SCHLIESSEN.
Tabellen für eine Abfrage nachträglich hinzufügen

Sollten Sie feststellen, dass Sie benötigte Tabellen bei diesem ersten Schritt vergessen haben, können Sie die Tabellenauswahl jederzeit wieder über das Menü ABFRAGE - TABELLE ANZEIGEN (ALT,R,A) aufrufen.

Tabellen aus einer Abfrage entfernen

Sollten Sie eine oder mehrere Tabellen zu viel zu einer Abfrage hinzugefügt haben, so können Sie diese leicht wieder entfernen. Navigieren Sie innerhalb der Abfragen-Entwurfsansicht mit TAB auf die Tabelle, die Sie entfernen möchten und drücken Sie anschließend ENTF. Alternativ können Sie auch den Menüeintrag ABFRAGE - TABELLE ENTFERNEN (ALT,R,B) verwenden. Wenn Sie sich nicht sicher sind in welcher Tabelle sich der Cursor gerade befindet, drücken Sie AB oder AUF um auf einen anderen Eintrag innerhalb des Tabellenfensters zu gelangen. Jaws sagt nach dem Listeneintrag den Namen der Tabelle an.

Art der Abfrage wählen

Access kennt sechs verschiedene Abfragearten, die Sie über das Menü ABFRAGEN (ALT,R) der Abfragen-Entwurfsansicht wählen können:

  1. Auswahlabfrage (ALT,R,W) - Die Auswahlabfrage sammelt Daten nach gesetzten Kriterien und stellt diese dar. Einfache Rechenoperationen, zum Beispiel das Erstellen von Summen sind möglich.
  2. Kreuztabellenabfrage (ALT,R,K) - Die Kreuztabellenabfrage erlaubt es Daten zu sammeln, zu analysieren und sie sehr kompakt wiederzugeben.
  3. Tabellenerstellungsabfrage (ALT,R,E) - Die Tabellenerstellungsabfrage arbeitet wie die Auswahlabfrage, speichert ihre Ergebnisse aber in einer neuen, echten Tabelle.
  4. Aktualisierungsabfrage (ALT,R,U) - Die Aktualisierungsabfrage tauscht Werte in bestehenden Tabellen gegen neue aus.
  5. Anfügeabfrage (ALT,R,F) - Die Anfügeabfrage arbeitet wie die Auswahlabfrage, hängt ihre Ergebnisse aber an eine bereits bestehende Tabelle mit identischem Aufbau an.
  6. Löschabfrage (ALT,R,L) - Die Löschabfrage löscht nach gesetzten Kriterien Datensätze aus bestehenden Tabellen

Beim Abfragetyp Tabellenerstellungsabfrage öffnet sich das Dialogfeld NEUE TABELLE ERSTELLEN. Der Cursor befindet sich in einem kombinierten Eingabefeld. Geben Sie hier den Namen der neu zu erstellenden Tabelle ein und bestätigen Sie anschließend mit EINGABE.

Beim Abfragetyp Aktualisierungsabfrage öffnet sich das Dialogfeld ANFÜGEN. Der Cursor befindet sich in einem kombinierten Eingabefeld, welches Sie mit ALT+AB öffnen können. Navigieren Sie mit AB und AUF zu der Datentabelle Ihrer Datenbank an welche das Ergebnis der Abfrage angefügt werden soll. Bestätigen Sie mit EINGABE. Bitte beachten Sie, dass die Struktur der hier gewählten Tabelle exakt mit der Ausgabe Ihrer Abfrage übereinstimmen muss. Um dies zu testen empfiehlt es sich die Abfrage zunächst als Auswahlabfrage zu definieren, ihre Ausgabe zu testen und dann später den Abfragetyp nachträglich zu ändern.

definieren der Abfrageparameter

  1. Wechseln Sie nach der Wahl der Tabellen und der Abfragenart mit F6 in den Kriterienbereich. Dieser besteht wie bereits erwähnt aus einer mehrspaltigen Tabelle. Die Spalten dieser Tabelle werden beim Ausführen der Abfrage in Reihenfolge nacheinander abgearbeitet. In jeder Spalte setzen Sie die Abfrageparameter für ein Datenfeld aus einer in der Datenbank gespeicherten Datentabelle.
  2. Navigieren Sie mit den Pfeiltasten in ein freies Feld in die zweiter Zeile der ersten Spalte (Zeile TABELLE). Jaws sag ein Eingabefeld an.
  3. Mit ALT+AB öffnen Sie die Ausklappliste des Feldes. In ihr befinden sich alle in der Abfrage angezeigten Tabellennamen. Wählen Sie mit AB und AUF eine Datentabelle aus, und schließen Sie Ihre Auswahl mit ESC ab (Drücken Sie NICHT EINGABE, da der Cursor ansonsten zur nächsten Spalte springt).
  4. Navigieren Sie mit AUF in die erste Zeile (Zeile FELD) der ersten Spalte.
  5. Mit ALT+AB öffnen Sie die Ausklappliste des Feldes. In ihr befinden sich alle Feldnamen (Spaltenüberschriften) der Datentabelle die Sie im vorigen Schritt gewählt haben. Mit AB und AUF navigieren Sie zu dem Feldnamen (Spaltenüberschrift) der in Ihrer Abfrage erscheinen soll, drücken ESC und danach AB (!!! nicht EINGABE!!!).
    • Kennen Sie den Namen des Feldnamens (Spaltenüberschrift) auswendig, können Sie ihn ALTERNATIV auch ohne die Ausklappliste einfach direkt in das Eingabefeld eingeben. Access unterstützt Sie bei der Eingabe, indem es versucht an Hand der bereits getippten Buchstaben zu erkennen welcher Feldname (Spaltenüberschrift) gewünscht ist und diese automatisch ergänzt. Übernommen wird der Eintrag durch Drücken von AB. (!!! erneut nicht EINGABE)
  6. Navigieren Sie mit AB in die dritte Zeile (Zeile SORTIERUNG) der ersten Spalte. Hier gibt es verschiedene Möglichkeiten:
    • Soll keine Sortierung vorgenommen werden lassen Sie das Feld frei und gehen mit AB in die nächste Zeile.
    • Wünschen Sie eine Sortierung, so legen Sie deren Art durch Öffnen der Ausklappliste mit ALT+AB fest. Zur Wahl stehen AUFSTEIGEND, ABSTEIGEND und KEINE SORTIERUNG. Drücken Sie anschließen ESC und dann AB. Selbstverständlich können Sie die Art der Sortierung auch wieder durch direkte Eingabe in das Eingabefeld durch Ausschreiben des entsprechenden Begriffes festlegen. Access unterstützt sie auch hierbei. Beenden Sie ihre Eingabe in diesem Fall mit AB.
  7. Der Cursor steht nun in der vierten Zeile (Zeile ANZEIGEN) der ersten Spalte. Diese enthält einen Auswahlschalter, der standardmäßig aktiviert ist. Der Auswahlschalter entscheidet darüber, ob das in dieser Spalte definierte Feld nach dem Ausführen der Abfrage sichtbar sein soll oder nicht. Ist der Auswahlschalter aktiviert wird das Feld in der Abfrage angezeigt. Soll das Feld nur als Filterkriterium dienen, aber später nicht in der Abfrage erscheinen, so deaktiviert man die Auswahl mit LEERTASTE.
  8. Navigieren Sie mit AB in die fünfte Zeile (Zeile KRITERIEN) der ersten Spalte. Formulieren Sie hier Ihre Abfragekriterien mit Hilfe von Operatoren und Platzhaltern (Siehe auch: Access: Operatoren, Platzhalter und Bedingungsausdrücke). Gehen Sie nach Ihrer Eingabe mit AB in die nächste Zeile.
  9. Sie befinden sich in der sechsten Zeile (Zeile ODER). Hier können Sie mit Operatoren und Platzhaltern ein zweites Abfragekriterium angeben, nach dem innerhalb des gewählten Feldnamen (Spaltenüberschrift) gesucht werden soll.
  10. Sie haben nun zwei Möglichkeiten.
    • Sie navigieren in die nächste Spalte um weitere Felder entsprechend den eben genannten Schritten zur Abfrage hinzuzufügen und wiederholen diesen Vorgang bis Ihre Abfrage alle von Ihnen gewünschten Felder enthält.
    • Sie führen die Abfrage aus indem Sie den Menüeintrag ABFRAGE - AUSFÜHREN (ALT,R,H) wählen.

Gruppierungsfunktionen

Abfragen mit dem SQL Editor

Access ist so programmiert, dass alle Abfragen in einem Dialogfeld eingegeben werden können. Die Dialogfelder setzen nämlich nichts anderes als eine SQL Syntax (Structured Query Language) zusammen. Im Abschnitt SQL-Ansicht wurde bereits darauf hingewiesen. In diesem Abschnitt soll nun genauer auf die Möglichkeit eingegangen werden, ganze Abfragen im SQL-Syntax zu schreiben. Vorteilhaft ist dabei die gute Übersicht für Braillenutzer. Außerdem können durch diese Methode kompliziertere Abfragen erstellt werden. Die Arbeit setzt allerdings voraus, dass man sich in SQL als Abfragesprache einarbeitet. SQL hat sich mittlerweile als Standard für relationale Datenbanken durchgesetzt; und so ist es auch nicht verwunderlich, dass Access im Kern mit SQL arbeitet. Für den Entwickler und Nutzer erleichtert dies die Arbeit mit Datenbanken, da für verschiedene Systemumgebungen nicht verschiedene Sprachen gelernt werden müssen. Anwender, die bereits Erfahrungen mit SQL haben, werden feststellen, dass sich die Microsoft-SQL in der Syntaxstrukur geringfügig unterscheidet. Der Umstieg sollte aber nicht schwer fallen.

Allgemeiner Hinweis zur Methode

Um eine Abfrage im SQL Editor ( auch SQL-Ansicht genannt) einfügen bzw. bearbeiten zu können, muss man zuerst eine Abfrage in der bekannten Weise in der Entwurfansicht erstellen.

Ein Beispiel anhand der „CD_Verwaltung.mbd" soll das Vorgehen verdeutlichen. Es soll eine Abfrage über die Tabelle "Tabelle_Nutzer" erstellt werden, die nur Name, Vorname und ICQ Nummer beinhaltet.

Erster Schritt: Leere Abfrage erstellen

  1. Im ersten Schritte wird mittels der Entwurfansicht eine Abfrage über die Tabelle erstellt.
  2. Es genügt an dieser Stelle, nur den Punkt „Erstellen einer neuen Abfrage in der Entwurfsansicht" auszuführen und im Dialogfenster „Tabelle anzeigen" die "Tabelle_Nutzer" zu wählen und in der Abfrage HINZFÜGEN zu betätigen. Anschließend wird das Dialogfenster mit dem SCHLIEßEN Schalter oder der ESC Taste geschlossen.
  3. Nun hat man eine „leere" Abfrage, die noch keine Anweisungen enthält, welche Datenfelder aus der „Tabelle_Nutzer" zu lesen sind.

Zweiter Schritt: leere Abfrage in der SQL-ANSICHT öffnen

  1. Im nächsten Schritt kann man die SQL-ANSICHT über ANSICHT / SQL-ANSICHT öffnen (ALT, A, L).
  2. In der SQL-Ansicht ist Folgendes zu lesen: SELECT … FROM Tabelle_Nutzer;

Dritter Schritt: SQL-ABFRAGE erstellen und ausführen

Access hat bis hier nur festgelegt, welche Tabelle abgefragt werden soll. Alles andere wird nun in den Editor der SQL-Abfrage eingetragen. Nun wird die SQL-Syntax ergänzt, die wie folgt lautet:

SELECT * FROM Tabelle_Nutzer;

Nun wird die Abfrage mit der Tastenkombination STRG+S gespeichert. Das sich öffnende Dialogfeld „Speichern unter" verlangt nach einem Abfragenamen. Standardmäßig ist in das Formularfeld „Abfrage 1" eingetragen. In unserem Beispiel nennen wir diese „Abfrage_ICQ_Nummern".

Hinweis: Um die Übersicht zu verbessern, sollte man sich bei der Bezeichnung in Access angewöhnen, immer den Qbjekttyp mit anzugeben, z.B. bei Abfragen „Abfrage_xxx" bei Tabellen „Tabelle_yyy" usw. Dies vereinfacht das Wiederfinden und verhindert, dass Objekte falsch behandelt werden. In Berichten kann man z.B. keine Daten eintragen. Gerade beim Braillenutzer können solche Verwechslungen leicht vorkommen, da die Objekttypen nur per Symbol zu unterscheiden sind.

Nach dem die Abfrage benannt und gespeichert wurde, kann man sich das Ergebnis seiner ersten Abfrage anschauen:

  • Der einfachste Weg ist über ANSICHT in die DATENBLATTANSICHT zu wechseln.
  • Es ist aber durchaus auch interessant, in das Objektfenster zu wechseln und unter Abfragen nachzuschauen. Dort befindet sich nun die neue Abfrage „Abfrage_ICQ_Nummer".

Hat man nun die Abfrage geöffnet und betrachtet sich die Felder der Datensätze, erkennt man, dass es sich um das Abbild der Tabelle_Nutzer handelt. Alle Datensätze werden eins zu ein dort aufgeführt.

Um dem Wunsch zu folgen, nur den Vornamen, Namen und die ICQ-Nummer anzuzeigen, wird die SQL-Syntax wie folgt geändert (hierfür wechselt man wieder in die SQL-Ansicht):

SELECT Vorname, Nachname, [ICQ Nummer] 
FROM Tabelle_Nutzer;

Was hat sich nun geändert?

Das Sternchen aus der ersten Anweisung wurde gegen die gewünschten Feldnamen getauscht. Sternchen (*) wird als Platzhalter für alle Datenfelder benutzt.

In diesem Beispiel stecken schon eine ganze Menge Tücken. So muss man genau darauf achten, dass Lücken nach den Kommata stehen müssen und dass „ICQ Nummer" in eckige Klammern gesetzt werden muss. Auch müssen die Feldnamen exakt aus der Tabelle übernommen werden. Fehler in der Groß- und Kleinschreibung oder Lücken sind nicht zulässig.

Das Feld „ICQ Nummer" ist ein gutes Beispiel dafür, wie man ein Datenfeld nicht benennen sollte.

Das Leerzeichen zwischen ICQ und Nummer führt leicht zu Fehlern. Deshalb gilt der Grundsatz, Datenfelder immer ohne Lücke anzulegen oder diese mit Unterstrich (_) zu füllen.

Hätte der Autor in diesem Beispiel diesen Grundsatz befolgt, könnte er auf die eckigen Klammern in der Syntax verzichten. Die eckigen Klammern binden hier die beiden Wörtchen ICQ und Nummer zu einem Ausdruck zusammen. Lässt man sie trotzdem weg, werden die beiden Wörter als zwei Befehle interpretiert, was dann zu einem Fehler führt.

Zum Abschließen der Syntax ist noch das Semikolon nötig, welches auch nicht vergessen werden darf.

Fassen wir noch einmal zusammen: In diesem Beispiel wurde mit dem SELECT Befehl eine Abfrage über die Felder „Name, Vorname und ICQ Nummer" aus der Tabelle Tabelle_Nutzer gefertigt.

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

Aufbau der SQL-Syntax

SQL Befehle können zum Abfragen, Anlegen, Ändern und Löschen von Datenbanken, Tabellenstrukturen und Tabelleninhalten verwendet werden. Im diesem Abschnitt wird systematisch auf die Syntax zum Abfragen von Tabellenstrukturen eingegangen.

Prinzipiell ist eine SQL Abfrage immer nach dem gleichen Schema aufgebaut:

SELECT Spalten FROM Tabellen;

Bei den in Großbuchstaben geschriebenen Wörtern handelt es sich um die Befehle. Das normal geschriebene "Spalten" bedeutet, dass an diese Stelle die Namen der Spalten eingetragen werden. Tabellen bedeutet, dass an diese Stelle der Name der Tabelle steht. Es sind im übrigen auch mehrere Tabellen möglich, das bedeutet dann einen Abfrage über mehrere Tabellen. Später dazu mehr.

SELECT Abfrage

  • SELECT bedeutet wählen oder abfragen.
  • FROM steht für die Herkunft, also in welcher Tabelle abgefragt werden soll.

Beginnen wir nun eine Abfrage über die Tabelle „Tabelle_Medium" zu erstellen. Die SQL Syntax lautet dann:

SELECT * FROM Tabelle_Medium;

Als Ergebnis dieser Abfrage erhält man den gesamten Inhalt der Tabelle_Medium.

Das * (Sternchen) steht hier als Platzhalter für alle Datenfelder. Man könnte auch alle Datenfelder aufführen. Das würde dann so aussehen:

SELECT id_Medium, Titel, Interpret_Autor, Medium 
FROM Tabelle_Medium;
  • Die einzelnen Datenfelder werden durch ein Komma getrennt, nach dem Komma muss ein Leerzeichen sein.
  • Alle Feldnamen müssen exakt so geschrieben werden, wie sie in der Tabelle vorkommen. Die Groß- und Kleinschreibung darf nicht vernachlässigt werden.
  • Für die bessere Lesbarkeit sollte man sich angewöhnen, die Befehle (hier SELECT und FROM) groß zu schreiben.
  • Am Ende der SQL-Anweisung darf das SEMIKOLON nicht vergessen werden!

Oft möchte man nur einen Teil der Datenfelder als Auswahl haben. Hierfür zählt man nur die gewünschten Feldnamen auf. Für die Felder Titel und Medium sieht das dann so aus:

SELECT Titel, Medium FROM Tabelle_Medium;

Als Ergebnis der Abfrage erhält man eine Tabelle mit zwei Spalten:

Titel Medium
Harry Potter Buch
Harry Potter DVD
Die unendliche Geschichte Buch
Herr der Ringe DVD
Karlsson vom Dach Buch

Wird nun der Inhalt der Tabelle durch ein neues Buch ergänzt, erweitert sich die Abfrage beim nächsten Aufrufen um diese Tabelle. Der Vorteil liegt auf der Hand: Tabellenauszüge sind durch die Möglichkeit der Abfrage immer aktuell.

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

WHERE Bedingung

WHERE Bedingungen dienen dazu, Abfragen weiter einschränken. In unserem Beispiel soll die Abfrage so einschränkt werden, dass alle DVD´s der Sammlung angezeigt werden. Dies lässt sich sehr leicht durch Anhängen des WHERE Befehls erledigen. Die WHERE Abfrage entspricht einem FILTER, wie im Kapitel Access: Filter beschrieben.

SELECT Titel, Medium 
FROM Tabelle_Medium WHERE Medium="DVD";

Das Ergebnis sieht dann so aus:

Titel Medium
Harry Potter DVD
Herr der Ringe DVD

(Siehe auch in der Datenbank: Abfrage_Meine Sammlung)

  • Die WHERE Bedingung wird immer hinter den FROM Befehl gestellt.
  • Anschließend folgt das Datenfeld, in dem nach bestimmten Kriterien (hier DVD) gesucht werden soll.
  • Das Gleichheitszeichen macht eine direkte Zuweisung zum folgenden Ausdruck.
  • Der Ausdruck wird dann entsprechend in Anführungszeichen "DVD" gesetzt. Die Anführungszeichen dürfen entfallen, wenn nach Zahlen gefiltert wird.

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

Operatoren, Platzhalter und Bedingungsausdrücke

Man kann anstatt des Gleichheitszeichens (=) auch LIKE benutzen. Dieser Zuweisungsbefehl ist immer dann vorzuziehen, wenn man nach Teilbegriffen im Datenfeld suchen will. In unserem Beispiel ist dies sehr sinnvoll, wenn man z.B. alle Titel mit dem Inhalt Fantasie abfragen möchte. Da aber im Feld Inhalt die englische und deutsche Schreibweise (Fantasy, Fantasie) benutzt wurde, möchte man nun beide erfassen, trotz unterschiedlicher Schreibweise. Hier bietet sich die LIKE Methode an, um nur nach dem gleichen Wortbestandteil „Fanta" zu suchen. Hinter „Fanta" folgt nun noch der Platzhalter *. Dies bedeutet, dass das Wort mit „Fanta" beginnt und beliebig enden darf.

SELECT Titel, Medium, Inhalt 
FROM Tabelle_Medium 
WHERE Inhalt LIKE "Fanta*";
  • Der Platzhalter darf auch am Anfang der Buchstabenfolge stehen.
  • Mit diese Methode lassen sich auch sehr gut alle Namen die mit B beginnen heraussuchen (LIKE „B*" usw.
  • Mit > größer < kleiner lassen sich genauso leicht Abfragen erstellen. "PLZ>68549" bedeutet, dass alle mit der PLZ größer als 68549 herausgesucht werden.

Im Kapitel Access: Operatoren, Platzhalter und Bedingungsausdrücke sind die Bedingungen bereits ausführlich erklärt worden. Diese gelten in der SQL Syntax genauso. Wer diese nicht mehr parat hat, dem sei das Kapitel noch einmal ans Herz gelegt.

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

Sortieren mit ORDER BY

Es ist auch möglich nach verschiedenen Bedingungen zu sortieren. In unserem Beispiel sollen die Titel nach dem Alphabet sortiert werden. Der Sortierbefehl lautet: ORDER BY, die entsprechende Syntax sieht dann so aus:

SELECT Titel, Medium, Inhalt 
FROM Tabelle_Medium 
ORDER BY Titel;

Natürlich gibt es auch die Möglichkeit, die Sortierrichtung anzugeben.

  • ASC (ascending) steht für aufsteigend,
  • DESC (descending) steht für absteigend.

Die Bestimmung der Sortierrichtung wird einfach hinter das zu sortierende Datenfeld geschrieben.

SELECT Titel, Medium, Inhalt 
FROM Tabelle_Medium 
ORDER BY Titel ASC;

oder

SELECT Titel, Medium, Inhalt 
FROM Tabelle_Medium ORDER BY Titel DESC;

Gibt man weder ASC noch DESC an, wird standardmäßig absteigend (also ASC) sortiert.

Generell gilt für die Sortierung, dass man mehrere Sortieroptionen angeben kann. Man kann zuerst nach dem Titel und danach nach dem Inhalt sortieren, usw.

SELECT Titel, Medium, Inhalt 
FROM Tabelle_Medium 
ORDER BY Titel DESC, 
Inhalt ASC;

Dabei ist zu beachten, bei der Abtrennung der Datenfelder das Komma nicht zu vergessen.

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

Gruppieren und Sortieren verbinden

Der einfache Aufbau der SQL-Syntax erlaubt Bedingungen und Sortieren einfach zu verbinden.

Man kann also mit WHERE eine Auswahl treffen und mit ORDER BY die Ergebnisse sortieren.

SELECT Titel, Medium 
FROM Tabelle_Medium WHERE Medium="DVD" 
ORDER BY Titel DESC;

Das Ergebnis sieht dann so aus:

Titel Medium
Momo DVD
Herr der Ringe DVD
Harry Potter DVD

Beim Aufstellen der Syntax muss man nur auf die Reihenfolge der Befehle achten. ODER BY kann niemals vor der WHERE Klausel kommen.

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

Gruppieren - GROUP BY

Man kann Datensätze nach einen oder mehreren Kriterien zusammenfassen. Dies kann man auch als Gruppieren bezeichnen. Alle DVD´s, alle Bücher, alle CD´s werden zusammengefasst dargestellt.

Das Gruppieren ermöglicht nun im Gegensatz zum Sortieren, dass man die Gruppen mit Aggregatsfunktionen verknüpfen kann. Aggregatsfunktionen dienen eigentlich dazu, dass man die Anzahl von Minimalwerten oder Maximalwerten einer Spalte ermittelt.

In unserem Beispiel soll ermittelt werden, wie viele Medien jeden Typs in der Datenbank gespeichert sind. Die SQL Klausel für das Gruppieren lautet: GROUP BY.

Zunächst sollen erst einmal alle Gruppen erfasst werden.

SELECT Medium FROM Tabelle_Medium GROUP BY Medium;
Medium
Buch
DVD

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

COUNT ... GROUP BY

Das Abfrageergebnis sagt aus, dass es in der Tabelle nur DVD´s und Bücher gibt.

Nun wird die GROUP BY Klausel mit einer Aggregatsfunktion verknüpft. Mit dieser kann man die Anzahl der DVD´s und die der Bücher ermitteln.

SELECT Medium, COUNT(Medium) AS  Anzahl  FROM Tabelle_Medium GROUP BY Medium;

Die Syntax wird um "COUNT(Medium) AS Anzahl" erweitert. Die Aggregatsfunktion sagt aus, dass alle gleichen Medien gezählt werden und das Ergebnis in einer neuen Spalte mit dem Namen Anzahl angezeigt werden soll.

Die Klausel AS weist der Abfrage eine neue Spalte mit einem neuen Namen zu.

Medium Anzahl
Buch 3
DVD 3

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

COUNT ... MIN / MAX

Die gleiche Abfragestruktur lässt sich auch mit MIN oder MAX erstellen.

Hat man seine Datenbank so erweitert, dass in der Tabelle_Medium auch der Preis aufgeführt wird, so kann man sich mit MAX den teuersten Titel einer Gruppe heraussuchen lassen.

SELECT Medium, MAX(Preis) AS [teuerstes Medium] 
FROM Tabelle_Medium 
GROUP BY Medium;

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

AS (Namen zuweisen)

Mit der AS Klausel kann man einem Spaltennamen leicht einen beliebigen anderen Namen zuweisen.

In Datenbanken kommt es oft vor, dass die Feldnamen der Spalten einen kryptischen Kurznamen bekommen. Z.B. VorK diese Abkürzung steht für Vorname Kunde. Möchte man eine lesbare Abfrage der Tabelle haben, empfiehlt es sich, die Tabelle mit einem lesbaren Spaltennamen zu versehen. Dazu benutzt man die AS Klausel. Ein Beispiel verdeutlicht dies:

SELECT VorK AS [Vorname Kunde] 
FROM tabelle_kunde;
Medium teuerstes Medium
Buch 33
DVD 36

(Siehe auch in der Datenbank: Abfrage_Teuerste Bücher einer Gruppe)

Genauso kann man für das billigste Medium jeder Gruppe vorgehen.

Die GROUP BY Klausel ist, eine wichtige und starke Funktion für Abfragen von Datenbanken.

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

Berechnungen mit Abfragen ausführen

Es ist ein Leichtes, in Abfragen Berechnungen durchzuführen und als eigenständige Spalte darzustellen. In unserem Beispiel wollen wir die Preise der Bücher und DVD´s auch ohne MWSt anzeigen.

Zunächst erstellen wir eine Abfrage über Titel, Interpret_Autor, Medium und Preis.

SELECT Titel, Interpret_Autor, Medium, Preis 
FROM Tabelle_Medium;

Diese Abfrage ergänzen wir um die Berechnung des Preises ohne die in Deutschland üblichen 19% MWSt. Der Preis ohne MWSt berechet sich: Preis_ohne =PREIS *0,81

Zusammengesetzt sieht das dann so aus:

SELECT Titel, Interpret_Autor, Medium ,Preis, Preis*0.81 AS Preis_ohne_MWST 
FROM Tabelle_Medium;

Achtung! Bei der Eingabe der Kommazahl muss man unbedingt darauf achten, dass ein Punkt zur Abtrennung der Dezimalen verwendet wird. Access verwendet die amerikanische Dezimaltrennung!

Ergebnis:

Titel Interpret_Autor Medium Preis Preis_ohne_MWST
Harry Potter Rowling Buch 27 21,87
Harry Potter Rowling DVD 19 15,39
Die unendliche Geschichte Michael Ende Buch 33 26,73
Herr der Ringe J.R.R. Tolkien DVD 36 29,16
Karlsson vom Dach Astrid Lindgren Buch 12 9,72
Momo Michael Ende DVD 18 14,58

(Siehe auch in der Datenbank_ Abfrage_Preise mit und ohne MWSt)

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

SELECT DISTINCT - Doppelte Datensätze vermeiden

In der Praxis kommt es immer mal wieder vor, dass Datensätze doppelt eingegeben werden. Diese lässt sich leicht durch SELECT DISTINCT vermeiden.

In unserem Beispiel ist das Buch Harry Potter zweimal eingegeben. SELECT DISTINCT schafft Abhilfe und zeigt es in der Abfrage nur noch einmal an:

SELECT DISTINCT Titel, Interpret_Autor, Medium 
FROM Tabelle_Medium;

(Siehe auch in der Datenbank_ Abfrage_Medium mit DISTINCT)

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

Verknüpfungen mehrer Tabellen mit INNER JOIN, LEFT JOIN und RIGHT JOIN

Möchte man Inhalte aus mehreren Tabellen abfragen, kann man die Tabellen verknüpfen, also in Beziehung zueinander setzen.

Im Kapitel Beziehungen wurden die Grundlagen bereits beschrieben und sollten entsprechend dort nachgelesen werden.

Beim Erstellen von Beziehungen in Access Datenbanken kann es von Vorteil sein, die entsprechende SQL-Syntax zu kennen. So kann man schnell Fehler erkennen oder aufwendigere Abfragen erstellen, die nicht über die Entwurfansicht möglich sind.

Die entsprechenden Befehle für eine ...

  • Eins-zu-eins-Beziehung lautet: INNER JOIN
  • Eins-zu-viele-Beziehung lautet: LEFT JOIN
  • Viele-zu-eins-Beziehung lautet: RIGHT JOIN
  • Viele-zu-viele-Beziehung lautet: OUTER JOIN

In unserer Beispieldatenbank sollen für jeden Nutzer die ausgeliehenen Medien (Bücher, DVD, etc.) abgefragt werden.

Dazu müssen die Tabellen Nutzer, Medien und Ausleihe verknüpft werden. Eine Tabellenverknüpfung muss immer über einen Schlüssel erfolgen, der in beiden Tabellen enthalten ist. Zudem muss er eindeutig sein. Hierfür bieten sich ID´s, Personalnummern oder eindeutige Namen an. In unserem Beispiel bietet sich die id_Ausleihe und die id_Titel an. Beide sind in der Tabelle Ausleihe verzeichnet. Genau genommen werden an die Tabelle Ausleihe zwei Tabellen angeknüpft. Die Tabelle Nutzer und die Tabelle Medium.

Da ein Nutzer mehrere Titel ausleihen kann, muss man sich bei der Verknüpfung einer "Eins-zu-viele-Beziehung", also einer LEFT JOIN Beziehung, bedienen.

Damit es gleich zu Anfang nicht so komplex wird, soll zuerst einmal die Tabelle Ausleihe mit der Tabelle Titel verknüpft werden. Als Ergebnis erhält man dann eine Abfrage (Liste), in der verzeichnet ist, wann welches Buch ausgeliehen wurde.

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

LEFT JOIN

Zwischen der Tabelle Ausleihe und der Tabelle Titel gibt es eine "Ein-zu-viele-Beziehung", da es zu jedem Ausleihdatum ein Buch gibt, aber nicht alle Titel zwangsläufig ausgeliehen sein müssen.

Die SQL Abfrage lautet:

SELECT Tabelle_Medium.Titel, Tabelle_Medium.Interpret_Autor, [Tabelle_Ausleihe.ausgeliehen am]
FROM Tabelle_Ausleihe LEFT JOIN Tabelle_Medium 
ON Tabelle_Ausleihe.id_Titel = Tabelle_Medium.id_medium;

Analisiert man die Abfrage, so lässt sich folgende Grundstruktur ausmachen:

SELECT (Tabellentitel) 
FROM (linke Tabelle) LEFT JOIN (rechte Tabelle) 
ON (linke Tabellenverknüpfung) = (rechte Tabellenverknüpfung)

Neu in dieser Abfrage ist, dass sich die Titelnamen auf verschiedene Tabellen beziehen. Deshalb muss man nun die Tabellennamen mit Punkt (.) abgetrennt vor den Titelnamen setzen:

Tabellennamen.Titelnamen

z.B. Tabelle_Ausleihe.id_Titel

In dieser Abfrage hat sich noch ein kleiner Stolperstein eingeschlichen. Im Titel "ausgeliehen am" befindet sich ein Leerzeichen. Titel mit Leerzeichen müssen in eckige Klammern gesetzt werden, da sonst Access mit dem Leerzeichen das Ende des Titelnamens annimmt. Richtig muss es folgendermaßen aussehen:

[Tabelle_Ausleihe.ausgeliehen am]

Zur Erinnerung: Gute Datenbanken vermeiden Lücken in Titel. Daher hat es sich eingebürgert, dass man Lücken mit den Unterstrich (_) ausfüllt.

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

Abfragen über mehrere Tabellen

Abfragen über mehrere Tabellen muss man genau planen, dann ist das Aufstellen der SQL-Anweisung nur noch Fleißarbeit.

Die Tabelle_Ausleihe hat Beziehungen zu beiden anderen Tabellen über die id_Medium und die id_Nutzer. Um die Bindung zu beiden anderen Tabellen herstellen zu können, muss die Tabelle_Ausleihe in der SQL-Anweisung zwischen den beiden anderen Tabellen stehen.

Das bedeutet, dass die oben benutze Anweisung umgeschrieben werden muss. Die Tabellen werden in der Reihenfolge getauscht, demnach wird auch LEFT JOIN in RIGHT JOIN getauscht.

SELECT Tabelle_Medium.Titel, Tabelle_Medium.Interpret_Autor, [Tabelle_Ausleihe.ausgeliehen am]
FROM Tabelle_Medium RIGHT JOIN Tabelle_Ausleihe 
ON Tabelle_Ausleihe.id_Titel = Tabelle_Medium.id_medium;

Im Ergebnis ändert sich zunächst nichts.

Die zweite Bindung lautet:

Tabelle_Ausleihe LEFT JOIN Tabelle_Nutzer ON Tabelle_Ausleihe.id_Nutzer=Tabelle_Nutzer.id_Nutzer

Diese wird in Klammern gesetzt und ersetzt die Bindung "Tabelle_Ausleihe".

SELECT Tabelle_Medium.Titel, Tabelle_Medium.Interpret_Autor, [Tabelle_Ausleihe.ausgeliehen am]
FROM Tabelle_Medium RIGHT JOIN (Tabelle_Ausleihe 
LEFT JOIN Tabelle_Nutzer 
ON Tabelle_Ausleihe.id_Nutzer=Tabelle_Nutzer.id_Nutzer) 
ON Tabelle_Ausleihe.id_Titel = Tabelle_Medium.id_medium;

Nun ist die Bindung zwischen den drei Tabellen fertig. Nach der SELECT Anweisung wird noch der Name des Ausleihers eingetragen (Tabelle_Nutzer.Vorname, Tabelle_Nutzer.Name).

SELECT Tabelle_Nutzer.Vorname,  Tabelle_Nutzer.Nachname, Tabelle_Medium.Titel, Tabelle_Medium.Interpret_Autor, [Tabelle_Ausleihe.ausgeliehen am]
FROM Tabelle_Medium RIGHT JOIN
(Tabelle_Ausleihe LEFT JOIN Tabelle_Nutzer 
ON Tabelle_Ausleihe.id_Nutzer=Tabelle_Nutzer.id_Nutzer)
ON Tabelle_Ausleihe.id_Titel = Tabelle_Medium.id_medium;

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

Weiterführende Online-Tutorials

Nutzer, die sich weiterführend mit SQL auseinandersetzen wollen, sei eines der hier aufgeführten Online-Tutorials empfohlen.

Abfragen mit dem SQL Editor

Access ist so programmiert, dass alle Abfragen in einem Dialogfeld eingegeben werden können. Die Dialogfelder setzen nämlich nichts anderes als eine SQL Syntax (Structured Query Language) zusammen. Im Abschnitt SQL-Ansicht wurde bereits darauf hingewiesen. In diesem Abschnitt soll nun genauer auf die Möglichkeit eingegangen werden, ganze Abfragen im SQL-Syntax zu schreiben. Vorteilhaft ist dabei die gute Übersicht für Braillenutzer. Außerdem können durch diese Methode kompliziertere Abfragen erstellt werden. Die Arbeit setzt allerdings voraus, dass man sich in SQL als Abfragesprache einarbeitet. SQL hat sich mittlerweile als Standard für relationale Datenbanken durchgesetzt; und so ist es auch nicht verwunderlich, dass Access im Kern mit SQL arbeitet. Für den Entwickler und Nutzer erleichtert dies die Arbeit mit Datenbanken, da für verschiedene Systemumgebungen nicht verschiedene Sprachen gelernt werden müssen. Anwender, die bereits Erfahrungen mit SQL haben, werden feststellen, dass sich die Microsoft-SQL in der Syntaxstrukur geringfügig unterscheidet. Der Umstieg sollte aber nicht schwer fallen.

Allgemeiner Hinweis zur Methode

Um eine Abfrage im SQL Editor ( auch SQL-Ansicht genannt) einfügen bzw. bearbeiten zu können, muss man zuerst eine Abfrage in der bekannten Weise in der Entwurfansicht erstellen.

Ein Beispiel anhand der „CD_Verwaltung.mbd" soll das Vorgehen verdeutlichen. Es soll eine Abfrage über die Tabelle "Tabelle_Nutzer" erstellt werden, die nur Name, Vorname und ICQ Nummer beinhaltet.

Erster Schritt: Leere Abfrage erstellen

  1. Im ersten Schritte wird mittels der Entwurfansicht eine Abfrage über die Tabelle erstellt.
  2. Es genügt an dieser Stelle, nur den Punkt „Erstellen einer neuen Abfrage in der Entwurfsansicht" auszuführen und im Dialogfenster „Tabelle anzeigen" die "Tabelle_Nutzer" zu wählen und in der Abfrage HINZFÜGEN zu betätigen. Anschließend wird das Dialogfenster mit dem SCHLIEßEN Schalter oder der ESC Taste geschlossen.
  3. Nun hat man eine „leere" Abfrage, die noch keine Anweisungen enthält, welche Datenfelder aus der „Tabelle_Nutzer" zu lesen sind.

Zweiter Schritt: leere Abfrage in der SQL-ANSICHT öffnen

  1. Im nächsten Schritt kann man die SQL-ANSICHT über ANSICHT / SQL-ANSICHT öffnen (ALT, A, L).
  2. In der SQL-Ansicht ist Folgendes zu lesen: SELECT … FROM Tabelle_Nutzer;

Dritter Schritt: SQL-ABFRAGE erstellen und ausführen

Access hat bis hier nur festgelegt, welche Tabelle abgefragt werden soll. Alles andere wird nun in den Editor der SQL-Abfrage eingetragen. Nun wird die SQL-Syntax ergänzt, die wie folgt lautet:

SELECT * FROM Tabelle_Nutzer;

Nun wird die Abfrage mit der Tastenkombination STRG+S gespeichert. Das sich öffnende Dialogfeld „Speichern unter" verlangt nach einem Abfragenamen. Standardmäßig ist in das Formularfeld „Abfrage 1" eingetragen. In unserem Beispiel nennen wir diese „Abfrage_ICQ_Nummern".

Hinweis: Um die Übersicht zu verbessern, sollte man sich bei der Bezeichnung in Access angewöhnen, immer den Qbjekttyp mit anzugeben, z.B. bei Abfragen „Abfrage_xxx" bei Tabellen „Tabelle_yyy" usw. Dies vereinfacht das Wiederfinden und verhindert, dass Objekte falsch behandelt werden. In Berichten kann man z.B. keine Daten eintragen. Gerade beim Braillenutzer können solche Verwechslungen leicht vorkommen, da die Objekttypen nur per Symbol zu unterscheiden sind.

Nach dem die Abfrage benannt und gespeichert wurde, kann man sich das Ergebnis seiner ersten Abfrage anschauen:

  • Der einfachste Weg ist über ANSICHT in die DATENBLATTANSICHT zu wechseln.
  • Es ist aber durchaus auch interessant, in das Objektfenster zu wechseln und unter Abfragen nachzuschauen. Dort befindet sich nun die neue Abfrage „Abfrage_ICQ_Nummer".

Hat man nun die Abfrage geöffnet und betrachtet sich die Felder der Datensätze, erkennt man, dass es sich um das Abbild der Tabelle_Nutzer handelt. Alle Datensätze werden eins zu ein dort aufgeführt.

Um dem Wunsch zu folgen, nur den Vornamen, Namen und die ICQ-Nummer anzuzeigen, wird die SQL-Syntax wie folgt geändert (hierfür wechselt man wieder in die SQL-Ansicht):

SELECT Vorname, Nachname, [ICQ Nummer] 
FROM Tabelle_Nutzer;

Was hat sich nun geändert?

Das Sternchen aus der ersten Anweisung wurde gegen die gewünschten Feldnamen getauscht. Sternchen (*) wird als Platzhalter für alle Datenfelder benutzt.

In diesem Beispiel stecken schon eine ganze Menge Tücken. So muss man genau darauf achten, dass Lücken nach den Kommata stehen müssen und dass „ICQ Nummer" in eckige Klammern gesetzt werden muss. Auch müssen die Feldnamen exakt aus der Tabelle übernommen werden. Fehler in der Groß- und Kleinschreibung oder Lücken sind nicht zulässig.

Das Feld „ICQ Nummer" ist ein gutes Beispiel dafür, wie man ein Datenfeld nicht benennen sollte.

Das Leerzeichen zwischen ICQ und Nummer führt leicht zu Fehlern. Deshalb gilt der Grundsatz, Datenfelder immer ohne Lücke anzulegen oder diese mit Unterstrich (_) zu füllen.

Hätte der Autor in diesem Beispiel diesen Grundsatz befolgt, könnte er auf die eckigen Klammern in der Syntax verzichten. Die eckigen Klammern binden hier die beiden Wörtchen ICQ und Nummer zu einem Ausdruck zusammen. Lässt man sie trotzdem weg, werden die beiden Wörter als zwei Befehle interpretiert, was dann zu einem Fehler führt.

Zum Abschließen der Syntax ist noch das Semikolon nötig, welches auch nicht vergessen werden darf.

Fassen wir noch einmal zusammen: In diesem Beispiel wurde mit dem SELECT Befehl eine Abfrage über die Felder „Name, Vorname und ICQ Nummer" aus der Tabelle Tabelle_Nutzer gefertigt.

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

Aufbau der SQL-Syntax

SQL Befehle können zum Abfragen, Anlegen, Ändern und Löschen von Datenbanken, Tabellenstrukturen und Tabelleninhalten verwendet werden. Im diesem Abschnitt wird systematisch auf die Syntax zum Abfragen von Tabellenstrukturen eingegangen.

Prinzipiell ist eine SQL Abfrage immer nach dem gleichen Schema aufgebaut:

SELECT Spalten FROM Tabellen;

Bei den in Großbuchstaben geschriebenen Wörtern handelt es sich um die Befehle. Das normal geschriebene "Spalten" bedeutet, dass an diese Stelle die Namen der Spalten eingetragen werden. Tabellen bedeutet, dass an diese Stelle der Name der Tabelle steht. Es sind im übrigen auch mehrere Tabellen möglich, das bedeutet dann einen Abfrage über mehrere Tabellen. Später dazu mehr.

SELECT Abfrage

  • SELECT bedeutet wählen oder abfragen.
  • FROM steht für die Herkunft, also in welcher Tabelle abgefragt werden soll.

Beginnen wir nun eine Abfrage über die Tabelle „Tabelle_Medium" zu erstellen. Die SQL Syntax lautet dann:

SELECT * FROM Tabelle_Medium;

Als Ergebnis dieser Abfrage erhält man den gesamten Inhalt der Tabelle_Medium.

Das * (Sternchen) steht hier als Platzhalter für alle Datenfelder. Man könnte auch alle Datenfelder aufführen. Das würde dann so aussehen:

SELECT id_Medium, Titel, Interpret_Autor, Medium 
FROM Tabelle_Medium;
  • Die einzelnen Datenfelder werden durch ein Komma getrennt, nach dem Komma muss ein Leerzeichen sein.
  • Alle Feldnamen müssen exakt so geschrieben werden, wie sie in der Tabelle vorkommen. Die Groß- und Kleinschreibung darf nicht vernachlässigt werden.
  • Für die bessere Lesbarkeit sollte man sich angewöhnen, die Befehle (hier SELECT und FROM) groß zu schreiben.
  • Am Ende der SQL-Anweisung darf das SEMIKOLON nicht vergessen werden!

Oft möchte man nur einen Teil der Datenfelder als Auswahl haben. Hierfür zählt man nur die gewünschten Feldnamen auf. Für die Felder Titel und Medium sieht das dann so aus:

SELECT Titel, Medium FROM Tabelle_Medium;

Als Ergebnis der Abfrage erhält man eine Tabelle mit zwei Spalten:

Titel Medium
Harry Potter Buch
Harry Potter DVD
Die unendliche Geschichte Buch
Herr der Ringe DVD
Karlsson vom Dach Buch

Wird nun der Inhalt der Tabelle durch ein neues Buch ergänzt, erweitert sich die Abfrage beim nächsten Aufrufen um diese Tabelle. Der Vorteil liegt auf der Hand: Tabellenauszüge sind durch die Möglichkeit der Abfrage immer aktuell.

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

WHERE Bedingung

WHERE Bedingungen dienen dazu, Abfragen weiter einschränken. In unserem Beispiel soll die Abfrage so einschränkt werden, dass alle DVD´s der Sammlung angezeigt werden. Dies lässt sich sehr leicht durch Anhängen des WHERE Befehls erledigen. Die WHERE Abfrage entspricht einem FILTER, wie im Kapitel Access: Filter beschrieben.

SELECT Titel, Medium 
FROM Tabelle_Medium WHERE Medium="DVD";

Das Ergebnis sieht dann so aus:

Titel Medium
Harry Potter DVD
Herr der Ringe DVD

(Siehe auch in der Datenbank: Abfrage_Meine Sammlung)

  • Die WHERE Bedingung wird immer hinter den FROM Befehl gestellt.
  • Anschließend folgt das Datenfeld, in dem nach bestimmten Kriterien (hier DVD) gesucht werden soll.
  • Das Gleichheitszeichen macht eine direkte Zuweisung zum folgenden Ausdruck.
  • Der Ausdruck wird dann entsprechend in Anführungszeichen "DVD" gesetzt. Die Anführungszeichen dürfen entfallen, wenn nach Zahlen gefiltert wird.

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

Operatoren, Platzhalter und Bedingungsausdrücke

Man kann anstatt des Gleichheitszeichens (=) auch LIKE benutzen. Dieser Zuweisungsbefehl ist immer dann vorzuziehen, wenn man nach Teilbegriffen im Datenfeld suchen will. In unserem Beispiel ist dies sehr sinnvoll, wenn man z.B. alle Titel mit dem Inhalt Fantasie abfragen möchte. Da aber im Feld Inhalt die englische und deutsche Schreibweise (Fantasy, Fantasie) benutzt wurde, möchte man nun beide erfassen, trotz unterschiedlicher Schreibweise. Hier bietet sich die LIKE Methode an, um nur nach dem gleichen Wortbestandteil „Fanta" zu suchen. Hinter „Fanta" folgt nun noch der Platzhalter *. Dies bedeutet, dass das Wort mit „Fanta" beginnt und beliebig enden darf.

SELECT Titel, Medium, Inhalt 
FROM Tabelle_Medium 
WHERE Inhalt LIKE "Fanta*";
  • Der Platzhalter darf auch am Anfang der Buchstabenfolge stehen.
  • Mit diese Methode lassen sich auch sehr gut alle Namen die mit B beginnen heraussuchen (LIKE „B*" usw.
  • Mit > größer < kleiner lassen sich genauso leicht Abfragen erstellen. "PLZ>68549" bedeutet, dass alle mit der PLZ größer als 68549 herausgesucht werden.

Im Kapitel Access: Operatoren, Platzhalter und Bedingungsausdrücke sind die Bedingungen bereits ausführlich erklärt worden. Diese gelten in der SQL Syntax genauso. Wer diese nicht mehr parat hat, dem sei das Kapitel noch einmal ans Herz gelegt.

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

Sortieren mit ORDER BY

Es ist auch möglich nach verschiedenen Bedingungen zu sortieren. In unserem Beispiel sollen die Titel nach dem Alphabet sortiert werden. Der Sortierbefehl lautet: ORDER BY, die entsprechende Syntax sieht dann so aus:

SELECT Titel, Medium, Inhalt 
FROM Tabelle_Medium 
ORDER BY Titel;

Natürlich gibt es auch die Möglichkeit, die Sortierrichtung anzugeben.

  • ASC (ascending) steht für aufsteigend,
  • DESC (descending) steht für absteigend.

Die Bestimmung der Sortierrichtung wird einfach hinter das zu sortierende Datenfeld geschrieben.

SELECT Titel, Medium, Inhalt 
FROM Tabelle_Medium 
ORDER BY Titel ASC;

oder

SELECT Titel, Medium, Inhalt 
FROM Tabelle_Medium ORDER BY Titel DESC;

Gibt man weder ASC noch DESC an, wird standardmäßig absteigend (also ASC) sortiert.

Generell gilt für die Sortierung, dass man mehrere Sortieroptionen angeben kann. Man kann zuerst nach dem Titel und danach nach dem Inhalt sortieren, usw.

SELECT Titel, Medium, Inhalt 
FROM Tabelle_Medium 
ORDER BY Titel DESC, 
Inhalt ASC;

Dabei ist zu beachten, bei der Abtrennung der Datenfelder das Komma nicht zu vergessen.

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

Gruppieren und Sortieren verbinden

Der einfache Aufbau der SQL-Syntax erlaubt Bedingungen und Sortieren einfach zu verbinden.

Man kann also mit WHERE eine Auswahl treffen und mit ORDER BY die Ergebnisse sortieren.

SELECT Titel, Medium 
FROM Tabelle_Medium WHERE Medium="DVD" 
ORDER BY Titel DESC;

Das Ergebnis sieht dann so aus:

Titel Medium
Momo DVD
Herr der Ringe DVD
Harry Potter DVD

Beim Aufstellen der Syntax muss man nur auf die Reihenfolge der Befehle achten. ODER BY kann niemals vor der WHERE Klausel kommen.

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

Gruppieren - GROUP BY

Man kann Datensätze nach einen oder mehreren Kriterien zusammenfassen. Dies kann man auch als Gruppieren bezeichnen. Alle DVD´s, alle Bücher, alle CD´s werden zusammengefasst dargestellt.

Das Gruppieren ermöglicht nun im Gegensatz zum Sortieren, dass man die Gruppen mit Aggregatsfunktionen verknüpfen kann. Aggregatsfunktionen dienen eigentlich dazu, dass man die Anzahl von Minimalwerten oder Maximalwerten einer Spalte ermittelt.

In unserem Beispiel soll ermittelt werden, wie viele Medien jeden Typs in der Datenbank gespeichert sind. Die SQL Klausel für das Gruppieren lautet: GROUP BY.

Zunächst sollen erst einmal alle Gruppen erfasst werden.

SELECT Medium FROM Tabelle_Medium GROUP BY Medium;
Medium
Buch
DVD

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

COUNT ... GROUP BY

Das Abfrageergebnis sagt aus, dass es in der Tabelle nur DVD´s und Bücher gibt.

Nun wird die GROUP BY Klausel mit einer Aggregatsfunktion verknüpft. Mit dieser kann man die Anzahl der DVD´s und die der Bücher ermitteln.

SELECT Medium, COUNT(Medium) AS  Anzahl  FROM Tabelle_Medium GROUP BY Medium;

Die Syntax wird um "COUNT(Medium) AS Anzahl" erweitert. Die Aggregatsfunktion sagt aus, dass alle gleichen Medien gezählt werden und das Ergebnis in einer neuen Spalte mit dem Namen Anzahl angezeigt werden soll.

Die Klausel AS weist der Abfrage eine neue Spalte mit einem neuen Namen zu.

Medium Anzahl
Buch 3
DVD 3

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

COUNT ... MIN / MAX

Die gleiche Abfragestruktur lässt sich auch mit MIN oder MAX erstellen.

Hat man seine Datenbank so erweitert, dass in der Tabelle_Medium auch der Preis aufgeführt wird, so kann man sich mit MAX den teuersten Titel einer Gruppe heraussuchen lassen.

SELECT Medium, MAX(Preis) AS [teuerstes Medium] 
FROM Tabelle_Medium 
GROUP BY Medium;

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

AS (Namen zuweisen)

Mit der AS Klausel kann man einem Spaltennamen leicht einen beliebigen anderen Namen zuweisen.

In Datenbanken kommt es oft vor, dass die Feldnamen der Spalten einen kryptischen Kurznamen bekommen. Z.B. VorK diese Abkürzung steht für Vorname Kunde. Möchte man eine lesbare Abfrage der Tabelle haben, empfiehlt es sich, die Tabelle mit einem lesbaren Spaltennamen zu versehen. Dazu benutzt man die AS Klausel. Ein Beispiel verdeutlicht dies:

SELECT VorK AS [Vorname Kunde] 
FROM tabelle_kunde;
Medium teuerstes Medium
Buch 33
DVD 36

(Siehe auch in der Datenbank: Abfrage_Teuerste Bücher einer Gruppe)

Genauso kann man für das billigste Medium jeder Gruppe vorgehen.

Die GROUP BY Klausel ist, eine wichtige und starke Funktion für Abfragen von Datenbanken.

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

Berechnungen mit Abfragen ausführen

Es ist ein Leichtes, in Abfragen Berechnungen durchzuführen und als eigenständige Spalte darzustellen. In unserem Beispiel wollen wir die Preise der Bücher und DVD´s auch ohne MWSt anzeigen.

Zunächst erstellen wir eine Abfrage über Titel, Interpret_Autor, Medium und Preis.

SELECT Titel, Interpret_Autor, Medium, Preis 
FROM Tabelle_Medium;

Diese Abfrage ergänzen wir um die Berechnung des Preises ohne die in Deutschland üblichen 19% MWSt. Der Preis ohne MWSt berechet sich: Preis_ohne =PREIS *0,81

Zusammengesetzt sieht das dann so aus:

SELECT Titel, Interpret_Autor, Medium ,Preis, Preis*0.81 AS Preis_ohne_MWST 
FROM Tabelle_Medium;

Achtung! Bei der Eingabe der Kommazahl muss man unbedingt darauf achten, dass ein Punkt zur Abtrennung der Dezimalen verwendet wird. Access verwendet die amerikanische Dezimaltrennung!

Ergebnis:

Titel Interpret_Autor Medium Preis Preis_ohne_MWST
Harry Potter Rowling Buch 27 21,87
Harry Potter Rowling DVD 19 15,39
Die unendliche Geschichte Michael Ende Buch 33 26,73
Herr der Ringe J.R.R. Tolkien DVD 36 29,16
Karlsson vom Dach Astrid Lindgren Buch 12 9,72
Momo Michael Ende DVD 18 14,58

(Siehe auch in der Datenbank_ Abfrage_Preise mit und ohne MWSt)

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

SELECT DISTINCT - Doppelte Datensätze vermeiden

In der Praxis kommt es immer mal wieder vor, dass Datensätze doppelt eingegeben werden. Diese lässt sich leicht durch SELECT DISTINCT vermeiden.

In unserem Beispiel ist das Buch Harry Potter zweimal eingegeben. SELECT DISTINCT schafft Abhilfe und zeigt es in der Abfrage nur noch einmal an:

SELECT DISTINCT Titel, Interpret_Autor, Medium 
FROM Tabelle_Medium;

(Siehe auch in der Datenbank_ Abfrage_Medium mit DISTINCT)

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

Verknüpfungen mehrer Tabellen mit INNER JOIN, LEFT JOIN und RIGHT JOIN

Möchte man Inhalte aus mehreren Tabellen abfragen, kann man die Tabellen verknüpfen, also in Beziehung zueinander setzen.

Im Kapitel Beziehungen wurden die Grundlagen bereits beschrieben und sollten entsprechend dort nachgelesen werden.

Beim Erstellen von Beziehungen in Access Datenbanken kann es von Vorteil sein, die entsprechende SQL-Syntax zu kennen. So kann man schnell Fehler erkennen oder aufwendigere Abfragen erstellen, die nicht über die Entwurfansicht möglich sind.

Die entsprechenden Befehle für eine ...

  • Eins-zu-eins-Beziehung lautet: INNER JOIN
  • Eins-zu-viele-Beziehung lautet: LEFT JOIN
  • Viele-zu-eins-Beziehung lautet: RIGHT JOIN
  • Viele-zu-viele-Beziehung lautet: OUTER JOIN

In unserer Beispieldatenbank sollen für jeden Nutzer die ausgeliehenen Medien (Bücher, DVD, etc.) abgefragt werden.

Dazu müssen die Tabellen Nutzer, Medien und Ausleihe verknüpft werden. Eine Tabellenverknüpfung muss immer über einen Schlüssel erfolgen, der in beiden Tabellen enthalten ist. Zudem muss er eindeutig sein. Hierfür bieten sich ID´s, Personalnummern oder eindeutige Namen an. In unserem Beispiel bietet sich die id_Ausleihe und die id_Titel an. Beide sind in der Tabelle Ausleihe verzeichnet. Genau genommen werden an die Tabelle Ausleihe zwei Tabellen angeknüpft. Die Tabelle Nutzer und die Tabelle Medium.

Da ein Nutzer mehrere Titel ausleihen kann, muss man sich bei der Verknüpfung einer "Eins-zu-viele-Beziehung", also einer LEFT JOIN Beziehung, bedienen.

Damit es gleich zu Anfang nicht so komplex wird, soll zuerst einmal die Tabelle Ausleihe mit der Tabelle Titel verknüpft werden. Als Ergebnis erhält man dann eine Abfrage (Liste), in der verzeichnet ist, wann welches Buch ausgeliehen wurde.

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

LEFT JOIN

Zwischen der Tabelle Ausleihe und der Tabelle Titel gibt es eine "Ein-zu-viele-Beziehung", da es zu jedem Ausleihdatum ein Buch gibt, aber nicht alle Titel zwangsläufig ausgeliehen sein müssen.

Die SQL Abfrage lautet:

SELECT Tabelle_Medium.Titel, Tabelle_Medium.Interpret_Autor, [Tabelle_Ausleihe.ausgeliehen am]
FROM Tabelle_Ausleihe LEFT JOIN Tabelle_Medium 
ON Tabelle_Ausleihe.id_Titel = Tabelle_Medium.id_medium;

Analisiert man die Abfrage, so lässt sich folgende Grundstruktur ausmachen:

SELECT (Tabellentitel) 
FROM (linke Tabelle) LEFT JOIN (rechte Tabelle) 
ON (linke Tabellenverknüpfung) = (rechte Tabellenverknüpfung)

Neu in dieser Abfrage ist, dass sich die Titelnamen auf verschiedene Tabellen beziehen. Deshalb muss man nun die Tabellennamen mit Punkt (.) abgetrennt vor den Titelnamen setzen:

Tabellennamen.Titelnamen

z.B. Tabelle_Ausleihe.id_Titel

In dieser Abfrage hat sich noch ein kleiner Stolperstein eingeschlichen. Im Titel "ausgeliehen am" befindet sich ein Leerzeichen. Titel mit Leerzeichen müssen in eckige Klammern gesetzt werden, da sonst Access mit dem Leerzeichen das Ende des Titelnamens annimmt. Richtig muss es folgendermaßen aussehen:

[Tabelle_Ausleihe.ausgeliehen am]

Zur Erinnerung: Gute Datenbanken vermeiden Lücken in Titel. Daher hat es sich eingebürgert, dass man Lücken mit den Unterstrich (_) ausfüllt.

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

Abfragen über mehrere Tabellen

Abfragen über mehrere Tabellen muss man genau planen, dann ist das Aufstellen der SQL-Anweisung nur noch Fleißarbeit.

Die Tabelle_Ausleihe hat Beziehungen zu beiden anderen Tabellen über die id_Medium und die id_Nutzer. Um die Bindung zu beiden anderen Tabellen herstellen zu können, muss die Tabelle_Ausleihe in der SQL-Anweisung zwischen den beiden anderen Tabellen stehen.

Das bedeutet, dass die oben benutze Anweisung umgeschrieben werden muss. Die Tabellen werden in der Reihenfolge getauscht, demnach wird auch LEFT JOIN in RIGHT JOIN getauscht.

SELECT Tabelle_Medium.Titel, Tabelle_Medium.Interpret_Autor, [Tabelle_Ausleihe.ausgeliehen am]
FROM Tabelle_Medium RIGHT JOIN Tabelle_Ausleihe 
ON Tabelle_Ausleihe.id_Titel = Tabelle_Medium.id_medium;

Im Ergebnis ändert sich zunächst nichts.

Die zweite Bindung lautet:

Tabelle_Ausleihe LEFT JOIN Tabelle_Nutzer ON Tabelle_Ausleihe.id_Nutzer=Tabelle_Nutzer.id_Nutzer

Diese wird in Klammern gesetzt und ersetzt die Bindung "Tabelle_Ausleihe".

SELECT Tabelle_Medium.Titel, Tabelle_Medium.Interpret_Autor, [Tabelle_Ausleihe.ausgeliehen am]
FROM Tabelle_Medium RIGHT JOIN (Tabelle_Ausleihe 
LEFT JOIN Tabelle_Nutzer 
ON Tabelle_Ausleihe.id_Nutzer=Tabelle_Nutzer.id_Nutzer) 
ON Tabelle_Ausleihe.id_Titel = Tabelle_Medium.id_medium;

Nun ist die Bindung zwischen den drei Tabellen fertig. Nach der SELECT Anweisung wird noch der Name des Ausleihers eingetragen (Tabelle_Nutzer.Vorname, Tabelle_Nutzer.Name).

SELECT Tabelle_Nutzer.Vorname,  Tabelle_Nutzer.Nachname, Tabelle_Medium.Titel, Tabelle_Medium.Interpret_Autor, [Tabelle_Ausleihe.ausgeliehen am]
FROM Tabelle_Medium RIGHT JOIN
(Tabelle_Ausleihe LEFT JOIN Tabelle_Nutzer 
ON Tabelle_Ausleihe.id_Nutzer=Tabelle_Nutzer.id_Nutzer)
ON Tabelle_Ausleihe.id_Titel = Tabelle_Medium.id_medium;

Media:CD_Verwaltung.mdb Beispieldatei CD_Verwaltung.mdb

Weiterführende Online-Tutorials

Nutzer, die sich weiterführend mit SQL auseinandersetzen wollen, sei eines der hier aufgeführten Online-Tutorials empfohlen.

Formulare

Formulare sind Masken zur Datenein- und -ausgabe. Sie sollen die tag- tägliche Arbeit mit einer Datenbank erleichtern, indem Sie anders als Datentabellen nicht alle Datensätze auf einmal, sondern immer nur ausgewählte Datensätze anzeigen. Formulare sind also deutlich übersichtlicher als Datentabellen. Desweiteren ist es über Formulare möglich, Daten in verschiedene Datentabellen einzugeben. Formulare kann man auf Grundlage von Datentabellen und Abfragen erstellen und dabei gezielt Datenfelder auswählen oder auch auf sie verzichten.

Formulare können gerade blinden Menschen die Arbeit mit einer Datenbank stark erleichtern, da sie sich viele Bedienschwierigkeiten von Access durch geschickt gestaltete Masken umschiffen lassen. Unglücklicherweise lassen sich solch gut gestaltete Formulare nur sehr schwer ohne Maus erzeugen, da die dafür benötigten Werkzeuge für eine sinnvolle Bedienung eine Maus fast zwingend voraussetzen. Zwar ist es möglich über eine Reihe von Tricks zahlreiche ansonsten den Mausbenutzern vorbehaltene Funktionen auch blind zu bedienen, diese erfordern aber sehr tiefgreifende Datenbankkenntnisse und Kenntnisse im Umgang mit dem Screenreader.

Gut bedienbar sind hingegen die Assistenten zum automatischen Erstellen einfacher Formulare, allen voran der Autoformular Assistent.

Autoformular erstellen

Autoformulare sind der einfachste und schnellste Weg einfache Formulare zu erstellen. Sie werden aus dem Datenbankfenster heraus erzeugt.

  1. Navigieren Sie auf eine bestehende Abfrage oder Tabelle
  2. Wählen Sie den Menüeintrag EINFÜGEN - AUTOFORMULAR ALT,E,O). Access erstellt ein Formular, welches alle Felder der zugrundeliegenden Tabelle oder Abfrage enthält und öffnet dieses.
  3. Speichern Sie das Formular mit STRG+S ab und geben Sie ihm im sich öffnenden Dialogfenster einen Namen.

Formularassistent

Der Formularassistent unterstützt Sie beim Anlegen von Formularen, indem er Sie Schritt für Schritt durch den Erstellungsprozeß begleitet. Sie haben die Möglichkeit die Tabellen oder Abfragen, sowie die von Ihnen gewünschten Datenfelder für das Formular zu wählen und einen Layouttyp zu setzen.

Das Erstellen eines Formulars mit dem Formularassistenten erfordert mehrer Schritte.

Auswählen der Datenfelder

  1. Navigieren Sie aus dem Datenbankfenster in der Objektgruppe FORMULARE zum Eintrag ERSTELLT EIN FORMULAR UNTER VERWENDUNG DES ASSISTENTEN.
  2. Drücken Sie EINGABE um den Assistenten zu starten. Es öffnet sich das Dialogfenster FORMULAR-ASSISTENT.
  3. Das FORMULAR-ASSISTENT Dialogfenster besteht zu Beginn aus einer Ausklappliste und zwei Listenfeldern, sowie mehreren Schaltern.
  4. Wechseln Sie mit UMSCHALT+TAB zur Ausklappliste TABELLEN/ABFRAGEN und öffnen Sie diese mit ALT+AB.
  5. Wählen Sie aus der Ausklappliste mit AB und AUF die Tabelle oder Abfrage, welche die Datenfelder für Ihr geplantes Formular enthält.
  6. Wechseln Sie mit TAB oder ALT+V zum ersten Listenfeld mit der Überschrift VERFÜGBARE FELDER.
  7. Navigieren Sie mit AB und AUF zu einem Datenfeld welches Sie in Ihr Formular aufnehmen möchten.
  8. Springen Sie mit 2 mal TAB zum Schalter mit der Beschriftung ">" und drücken Sie EINGABE. Das Datenfeld wird dadurch in das zweite Listenfeld AUSGEWÄHLTE FELDER (ALT+A) verschoben und verschwindet aus dem Listenfeld VERFÜGBARE FELDER.
  9. Wechseln Sie mit 2 mal UMSCHALT+TAB oder mit ALT+V zurück in das Listenfeld VERFÜGBARE FELDER und wiederholen Sie den Vorgang für alle Felder, die Sie für Ihren Bericht benötigen.
  10. Benötigen Sie Datenfelder aus anderen Abfragen oder Tabellen, so können Sie jederzeit mit TAB oder über die Tastenkombination ALT+T zur Ausklappliste TABELLEN/ABFRAGEN zurückkehren und dort eine andere Auswahl treffen. Das die Inhalte des Listenfelds VERFÜGBARE FELDER werden von Access automatisch angepasst.
  11. Möchten Sie alle Datenfelder einer Datentabelle oder Abfrage auf einmal in Ihr Formular übernehmen, so wählen Sie den Schalter mit der Beschriftung ">>"
  12. Haben Sie versehentlich zu viele Datenfelder in das Listenfeld AUSGEWÄHLTE FELDER verschoben, so navigieren in diesem Listenfeld auf die überflüssigen Tabellen und wählen Sie den Schalter Schalter "<" um einzelne Datenfelder zu entfernen oder den Schalter "<<"" um alle Datenfelder zu entfernen.
  13. Sobald Sie alle Datenfelder ausgewählt haben aktivieren Sie den Schalter WEITER oder drücken Sie ALT+W

Formular Layout wählen.

Access bietet Ihnen sechs Auswahlschalter mit unterschiedlichen Formularlayouts an.

  • EINSPALTIG (ALT+S) - Alle Datenfelder werden untereinander auf dem Formular angeordnet.
  • TABELLARISCH (ALT+T - Datenfelder erscheinen in einer Tabellenform, bei der mehrere verschieden Datensätze gleichzeitig sichtbar sind.
  • DATANBLATT (ALT+D) - Datenfelder werden in einer reinen Tabellenform angezeigt. Alle Datensätze sind gleichzeitig sichtbar.
  • IN BLÖCKEN (ALT+I) - Auf dem Formular ist immer nur ein Datensatz sichtbar. Die Datenfelder sind nebeneinander und untereinander angeordnet.
  • PIVOTTABLE (ALT+B)
  • PIVOTCHART (ALT+V)

Treffen Sie Ihre Auswahl und wählen Sie dann den Schalter WEITER (ALT+W)

Format wählen

Access fordert Sie auf ein visuelles Gestaltungsschema für Ihr Formular zu wählen. Da dieser Schritt für einen blinden Benutzer wenig Nutzen bringt können Sie es bei der Voreinstellung belassen und mit ALT+W oder über den Schalter WEITER zum nächsten Schritt wechseln.

Formular benennen

Der Cursor befindet sich in einem Eingabefeld. Tragen Sie hier den Namen für das Formular ein und beenden Sie den Formularerstellungsassistenten über den Schalter FERTIG STELLEN (ALT+F)

Navigation in einem Formular

Innerhalb eines Formulars navigieren Sie über die Windows üblichen Tasten. TAB springt von Datenfeld zu Datenfeld, in Eingabefelder können Sie direkt Text eingeben usw.

Um einen Datensatz auszuwählen, dessen Nummer Sie kennen, drücken Sie F5, geben Sie über die Tastatur die Datensatznummer ein und bestätigen Sie mit EINGABE.

  • JAWS+STRG+R sagt die Datensatznummer an
  • STRG+BILD AUF springt zum nächsten Datensatz
  • STRG+BILD AB springt zum vorausgehenden Datensatz
  • STRG+ENDE springt zum letzten Datensatz
  • STRG+POS1 springt zum ersten Datensatz
  • STRG+UMSCHALT+L listet alle Elemente des Formulars auf.


Datensatz innerhalb eines Formulars löschen

Um einen Datensatz über ein Formular zu löschen navigieren Sie zunächst auf ihn. Wählen Sie anschließend den Menüpunkt BEARBEITEN - DATENSATZ ÖSCHEN(ALT,B,Ö) und bestätigen Sie die Sicherheitsabfrage im sich öffnenden Dialogfenster mit JA (ALT+J).

Filter innerhalb eines Formulars anwenden

Formulare eignen sich hervorragend zum Aufruf des AUSWAHLBASIERTEN FILTERS und des FORMULARBASIERTEN FILTERS, wie sie bereits aus dem Kapitel Filter bekannt sind. Dabei bleibt die Struktur des Formulars immer sichtbar, aber es werden einzelne Datensätze entsprechend der gesetzten Filter nicht länger angezeigt. Entfernen lassen sich alle Filter wieder wie gewohnt über den Menüeintrag DATENSÄTZE - FILTER/SORTIERUNG ENTFERNEN (ALT,S,N)

Auswahlbasierter Filter im Formular

  1. Um den Auswahlbasierten Filter anzuwenden navigieren Sie zunächst innerhalb des Formulars auf das Datenfeld nach dem Sie den Filter anwenden möchten.
  2. Wählen Sie anschließend den Menüpunkt DATENSÄTZE - FILTER - FORMULARBASIERTER FILTER (ALT,S,F,F).
  3. Im Formular werden nun nur noch diejenigen Datensätze angezeigt, die mit dem im Datenfeld des Formulars gesetzten den Wert übereinstimmen.

Formularbasierte Filter im Formular

  1. Um den Auswahlbasierten Filter anzuwenden wählen Sie den Menüpunkt DATENSÄTZE - FILTER - AUSWAHLBASIERTER FILTER (ALT,S,F,W).
  2. Alle Datenfelder des Formulars sind anschließend leer.
  3. Tragen Sie in ein beliebiges Datenfeld einen Wert ein, nach dem Sie filtern möchten.
  4. Mit TAB können Sie zu einem weiteren Datenfeld navigieren und dort ein weiteres Filterkriterium eingeben.
  5. Haben Sie alle Filterkriterien eingegeben wählen Sie den Menüpunkt FILTER - FILTER/SORTIERUNG ANWENDEN (ALT,R,O).

Berichte

Berichte dienen der Druckausgabe von Daten aus der Datenbank auf Papier. Informationen sollen strukturiert und schön formatiert ausgegeben werden. Das Erstellen eines guten Berichts ist eine nicht zu unterschätzende Aufgabe, die es häufig erfordert einfach auszuprobieren und manuell nachzubessern. Blinde Menschen haben dabei kaum die Möglichkeit ihre Resultate zu überprüfen oder gar manuell nachzubessern, da sich die dazu notwendigen Werkzeuge nur schlecht blind bedienen lassen. Sie sind daher auf die automatischen Berichterstellungsmöglichkeiten angewiesen, deren Ergebnisse häufig sehr bescheiden ausfallen.

Autobericht erstellen

Autoberichte sind der einfachste und schnellste Weg einen Bericht zu erstellen. Sie werden aus dem Datenbankfenster heraus erzeugt.

  1. Navigieren Sie auf eine bestehende Abfrage oder Tabelle
  2. Wählen Sie den Menüeintrag EINFÜGEN - AUTOBERICHT ALT,E,E). Access erstellt einen Bericht, der alle Felder der zugrundeliegenden Tabelle oder Abfrage enthält und öffnet diesen.
  3. Speichern Sie den Bericht mit STRG+S ab und geben Sie ihm im sich öffnenden Dialogfenster einen Namen.

Berichtsassistent

Der Berichtassistent unterstützt Sie beim Anlegen von Berichte, indem er Sie Schritt für Schritt durch den Erstellungsprozeß begleitet. Sie haben die Möglichkeit die Tabellen oder Abfragen, sowie die von Ihnen gewünschten Datenfelder für Ihren Bericht zu wählen und einen Layouttyp zu setzen.

Das Erstellen eines Berichts mit dem Berichtsassistenten erfordert mehrer Schritte.

Auswählen der Datenfelder

  1. Navigieren Sie aus dem Datenbankfenster in der Objektgruppe BERICHTE zum Eintrag ERSTELLT EINEN BERICHT UNTER VERWENDUNG DES ASSISTENTEN.
  2. Drücken Sie EINGABE um den Assistenten zu starten. Es öffnet sich das Dialogfenster BERICHTS-ASSISTENT.
  3. Das BERICHTS-ASSISTENT Dialogfenster besteht zu Beginn aus einer Ausklappliste und zwei Listenfeldern, sowie mehreren Schaltern.
  4. Wechseln Sie mit UMSCHALT+TAB zur Ausklappliste TABELLEN/ABFRAGEN und öffnen Sie diese mit ALT+AB.
  5. Wählen Sie aus der Ausklappliste mit AB und AUF die Tabelle oder Abfrage, welche die Datenfelder für Ihren geplanten Bericht enthält.
  6. Wechseln Sie mit TAB oder ALT+V zum ersten Listenfeld mit der Überschrift VERFÜGBARE FELDER.
  7. Navigieren Sie mit AB und AUF zu einem Datenfeld welches Sie in Ihren Bericht aufnehmen möchten.
  8. Springen Sie mit 2 mal TAB zum Schalter mit der Beschriftung ">" und drücken Sie EINGABE. Das Datenfeld wird dadurch in das zweite Listenfeld AUSGEWÄHLTE FELDER (ALT+A) verschoben und verschwindet aus dem Listenfeld VERFÜGBARE FELDER.
  9. Wechseln Sie mit 2 mal UMSCHALT+TAB oder mit ALT+V zurück in das Listenfeld VERFÜGBARE FELDER und wiederholen Sie den Vorgang für alle Felder, die Sie für Ihren Bericht benötigen.
  10. Benötigen Sie Datenfelder aus anderen Abfragen oder Tabellen, so können Sie jederzeit mit TAB oder über die Tastenkombination ALT+T zur Ausklappliste TABELLEN/ABFRAGEN zurückkehren und dort eine andere Auswahl treffen. Das die Inhalte des Listenfelds VERFÜGBARE FELDER werden von Access automatisch angepasst.
  11. Möchten Sie alle Datenfelder einer Datentabelle oder Abfrage auf einmal in Ihren Bericht übernehmen, so wählen Sie den Schalter mit der Beschriftung ">>"
  12. Haben Sie versehentlich zu viele Datenfelder in das Listenfeld AUSGEWÄHLTE FELDER verschoben, so navigieren in diesem Listenfeld auf die überflüssigen Tabellen und wählen Sie den Schalter Schalter "<" um einzelne Datenfelder zu entfernen oder den Schalter "<<"" um alle Datenfelder zu entfernen.
  13. Sobald Sie alle Datenfelder ausgewählt haben aktivieren Sie den Schalter WEITER oder drücken Sie ALT+W

Gruppierungen erstellen

Ein Bericht kann entweder alle Datenfelder in der Reihenfolge ihres Auftretens in der Datenbank oder nach einem bestimmten Kriterium sortiert anzeigen. In manchen Anwendungsfällen ist es aber sinnvoll die Datenausgabe in einem Bericht nach einem bestimmten Kriterium sortieren zu lassen. So könnte ein Bericht beispielsweise alle Kunden, die im gleichen Land wohnen gruppiert ausgeben. Alle in Deutschland wohnenden Personen würden dadurch beispielsweise gemeinsam angezeigt, genauso wie alle Österreicher und Schweizer. Auf dem Papier wird eine solche Gruppierung durch Überschriften und Einrückungen dargestell. In unserem Beispiel wäre das Land die Überschrift, alle Kunden aus dem Land erschienen unterhalb ein wenig eingerückt.

Um Ihrem Bericht eine Gruppierungsebene hinzuzufügen...

  1. ... wählen Sie aus dem Listenfeld mit AB und AUF ein Datenfeld aus, nach dem Gruppiert werden soll.
  2. Navigieren Sie mit TAB auf den ">" Schalter und drücken Sie LEERTASE.
  3. Wünschen Sie mehrere Gruppierungsebenen (Zum Beispiel um zustätzlich auch nach Bundesländern gruppieren zu können), so wählen Sie aus dem Listenfeld weitere Datenfelder aus und fügen Sie mit dem ">" Schalter hinzu. Die Reihenfolge in der der Sie Gruppierungen hinzufügen spielt dabei eine Rolle. Es ist bei der Ausgabe ein Unterschied, ob Sie zuerst nach dem Bundesland und dann nach dem Land, oder erst nachm dem Land und dann nach dem Bundesland gruppieren.
  4. Sollten Sie eine falsche Reihenfolge gewählt haben, so können Sie jede Gruppierungsebene wieder mit seinem Eintrag im Listenfeld über den "<" Schalter entfernen.
  5. Über den Schalter GRUPPIERUNGSOPTIONEN haben Sie die Möglichkeit ein weiteres Dialogfenster zu öffnen, in dem für jedes Datenfeld nach dem Sie gruppieren eine Ausklappliste angezeigt wird. Über die Ausklappliste (Sie öffnen sie wie gewohnt mit ALT+AB) können Sie die Intervalle, in denen die gruppierten Elemente auf dem Bericht angezeigt werden setzen. Sollen alle Elemente unterhalb Ihrer Gruppierungsebene aufgeliste werden, so lassen Sie den Eintrag NORMAL stehen. Sollen aber beispielsweise bei Postleitzahlen immer ganze Bereich gemeinsam betrachtet werden, z.B. der Postleitzahlenbereich 6, so wählen Sie den einen Eintrag der diesem Intervall entspricht (bei Postleitzahlen also 10000er.) Bei Datenfeldern des Typs Text können sie alternativ Intervalle nach den Anfangsbuchstaben erstellen. Verlassen Sie die Gruppierungsoptionen über den OK Schalter.
  6. Sobald Sie alle Datenfelder für Gruppierungen ausgewählt haben aktivieren Sie den Schalter WEITER oder drücken Sie ALT+W

Sortierung festlegen

Im nächsten Schritt können Sie die Sortierung festlegen, mit der Daten des Berichts ausgegeben werden. Hierzu können Sie auf insgesamt vier kombinierte Eingabefelder zurückgreifen, über welche Sie mit ALT+AB und den Tasten AUF und AB diejenigen Datenfelder aussuchen können, nach denen Sie sortieren möchten. Neben jedem kombinierten Eingabefeld befindet sich ein Schalter mit dem Titel AUFSTEIGEND. Drücken Sie auf diesem Schalter der LEERTASTE, so ändert sich der TITEL auf ABSTEIGEND, und damit auch die Sortierreihenfolge für das Datenfeld.

Zusätzlich zu den Sortierungsoptionen befindet sich ein Schalter ZUSAMMENFASSUNGSOPTIONEN im aktuellen Fenster des Assistenten. Beätigen Sie diesen Schalter mit LEERTASTE, so öffnet sich das Dialogfenster ZUSAMMENFASSUNGSOPTIONEN. In diesem Fenster finden sie für jedes Datenfeld Ihres Berichts vier Auswahlschalter, zwischen denen Sie mit LINKS und RECHTS wechslen und die Sie mit der LEERTASTE aktivieren und deaktivieren können. Die Auswahlschalter stehen wie in einer Tabelle untereinander. Der erste Auswahlschalter steht in einer Spalte mit der Überschrift SUMME, der zweite in der Spalte MITTELWERT, der dritte in der Spalte MIN und der vierte in der Spalte MAX. Aktivieren Sie einen der Auswahlschater, so wird für das Feld (sofern das auf Grund des Felddatentyps möglich ist) eine entsprechende Berechnung durchgeführt und auf dem Bericht ausgegeben. So könnten Sie bei einer Gruppe von Personen auf Ihrem Bericht beispielsweise darstellen, wer beispielsweise der Älteste oder der Größte ist. Verlassen Sie die Zusammenfassungsoptionen über den OK Schalter und gehen Sie anschließend mit WEITER SCHALTER (ALT+W) zum nächsten Schritt des Assistenten.

Berichts Layout wählen.

Access bietet Ihnen sechs Auswahlschalter mit unterschiedlichen Berichtslayouts an.

  • ABGESTUFT (ALT+A)
  • IN BLÖCKEN (ALT+B)
  • GLIEDERUNG 1 (ALT+G)
  • GLIEDERUNG 2 (ALT+D)
  • LINKS AUSRICHTEN 1 (ALT+L)
  • LINKS AUSRICHTEN 2 (ALT+I)

Leider lässt sich keine Empfehlung treffen, welches Berichtslayout in den meisten Fällen funktioniert und günstig ist. Auch sehende Benutzer sind hier häufig darauf angewiesen einfach auszuprobieren.

Mit ALT+H schalten Sie die Ausgabe des Berichts auf Hochvormat, mit ALT+Q auf Querformat. Treffen Sie Ihre Auswahl und wählen Sie dann den Schalter WEITER (ALT+W)

Format wählen

Access fordert Sie auf ein visuelles Gestaltungsschema für Ihren Bericht zu wählen. Da dieser Schritt für einen blinden Benutzer wenig Nutzen bringt, können Sie es bei der Voreinstellung belassen und mit ALT+W oder über den Schalter WEITER zum nächsten Schritt wechseln.

Bericht benennen

Der Cursor befindet sich in einem Eingabefeld. Tragen Sie hier den Namen für Ihren Bericht ein und beenden Sie den Berichterstellungsassistenten über den Schalter FERTIG STELLEN (ALT+F)

Persönliche Werkzeuge