1.2. Aufbau von Access

Werbung
D a t e n b a n k e n tw i c k l u n g u n d D a t e n b a n k b e n u t z u n g
(Microsoft Access)
Übersicht
1. Allgemeines ................................................................................................................................................... 1
1.1. Was ist eine Datenbank? ................................................................................................................ 1
1.2. Aufbau von Access ......................................................................................................................... 1
2. Anlegen einer Datenbank .............................................................................................................................. 2
3. Anlegen von Tabellen .................................................................................................................................... 2
4. Verbinden von Tabellen ................................................................................................................................. 8
5. Arbeiten mit Tabellen ................................................................................................................................... 10
5.1. Datensätze sortieren ..................................................................................................................... 10
5.2. Datensätze filtern .......................................................................................................................... 11
5.3. Datensätze suchen ....................................................................................................................... 11
6. Abfragen ...................................................................................................................................................... 11
6.1. Einfache Auswahlabfragen ........................................................................................................... 11
6.2. Anwendung spezieller Abfragekriterien ........................................................................................ 14
7. Erstellen von Eingabeformularen ................................................................................................................ 15
7.1. Eingabeformulare mittels Auswahlabfragen erstellen ................................................................... 15
7.2. Eingabeformulare mittels Parameterabfragen erstellen................................................................ 17
8. Datenauswertung......................................................................................................................................... 19
9. Berichte ........................................................................................................................................................ 20
10. Verknüpfte Formulare ................................................................................................................................ 22
11. Spezialabfragen ......................................................................................................................................... 22
11.1. Kreuztabellenabfragen ................................................................................................................ 23
11.2. Tabellenerstellungsabfragen ....................................................................................................... 24
11.3. Löschabfragen............................................................................................................................. 24
11.4. Anfügeabfragen ........................................................................................................................... 25
11.5. Aktualisierungsabfragen .............................................................................................................. 26
11.6. Abfragen über Abfragen .............................................................................................................. 26
12. Formulare manuell bearbeiten ................................................................................................................... 27
12.1. Bestandteile von Formularen ...................................................................................................... 27
12.2. Arbeitstechniken .......................................................................................................................... 28
13. Steuerelemente erstellen ........................................................................................................................... 29
13.1. Steuerelemente hinzufügen mit der Feldliste .............................................................................. 30
13.2. Steuerelemente hinzufügen mit der Toolbox .............................................................................. 30
14. Makros ....................................................................................................................................................... 33
15. Kombinationsfelder und deren Synchronisation ........................................................................................ 37
16. Formulare mit Suchfunktion ....................................................................................................................... 41
1. Allgemeines
1.1. Was ist eine Datenbank?
Unter einer Datenbank versteht man ein Sammlung von Daten zu einem bestimmten Thema oder Zweck.
So enthält etwa eine Adressdatenbank eine Vielzahl von Adressen (etwa von Kunden).
Die einzelnen Informationen, die es zu verwalten gilt, werden als Daten bezeichnet. Sinnvollerweise werden
Daten immer geordnet an einem bestimmten Ort aufbewahrt, z.B. in einem Aktenschrank. Die Sammlung
von Daten in einer computergestützten Datenbank bietet vielfältige Möglichkeiten, die Informationen
auszuwerten, da durch die Struktur der Datenbank ein schneller Zugriff auf die gewünschten Informationen
möglich ist.
1.2. Aufbau von Access
Access ist ein objektorientiertes Datenbanksystem. Objekte stellen geschlossene Elemente dar, die als
Einheit ausgewählt (markiert) und gehandhabt werden können. Die Daten werden in Tabellen gespeichert
(relationale Datenbank).
Folgende Objekte stehen zur Wahl:
Tabellen
Eine Tabelle enthält eine Sammlung von Daten zu einem bestimmten Thema. Jede Zeile
einer Tabelle entspricht einem Datensatz.
1
Abfragen
Formulare
Berichte
Seiten
Makros
Module
Mit einer Abfrage können Daten einer oder mehrerer Tabellen ausgewertet werden, z.B
können alle Kundenadressen aus einem bestimmten Bundesland ermittelt werden.
Formulare dienen zur Ansicht, Eingabe und Bearbeitung von Daten aus Tabellen oder
Abfragen.
In Berichten werden Daten aus Tabellen oder Abfragen zusammengefasst und anschaulich
dargestellt. Beispielsweise kann eine Liste aller Kundenadressen erstellt und ausgedruckt
werden.
(Datenzugriffs-)Seiten sind spezielle Web-Seiten, um Daten der Access-Datenbank im
Internet oder Intranet darstellen zu können.
Mit Hilfe von Makros können Datenbanken automatisiert werden. Es handelt sich dabei um
eine Liste von Aktionen, die automatisch ablaufen sollen.
Access beinhaltet die Programmiersprache VBA, mit der Access programmiert werden kann.
2. Anlegen einer Datenbank
Um eine neue Datenbank anzulegen, öffnet man das Programm Microsoft Access. Durch einen Klick auf
Leere Datenbank im Aufgabenbereich, öffnet sich folgender Dialog:
Sollte der Arbeitsbereich beim Programmstart nicht eingeblendet werden, kann dieser durch den Menübefehl
DATEI – NEU wieder aufgerufen werden.
Als nächstes wird man aufgefordert, die Datenbank zu benennen und in einem definierten Verzeichnis
abzuspeichern. Als Dateierweiterung wird dabei immer MDB (für Microsoft Data Base) verwendet. Alle
Objekte (Tabellen, Formulare usw.) und Daten sind zusammen abgespeichert. Außerhalb von Access
besteht keine direkte Zugriffsmöglichkeit auf eine einzelne Tabelle.
Hinweis: Es soll nach Möglichkeit vermieden werden, mit Access von der Diskette zu arbeiten, denn wenn
später Objekte erstellt und bearbeitet werden, wird das System sehr langsam.
3. Anlegen von Tabellen
Es soll eine Datenbank zur Schülerverwaltung aufgebaut werden. Sämtliche Daten der Datenbank werden
dabei in Tabellenform abgespeichert.
Zusammengehörige Daten sind dabei jeweils in (waagrechten) Zeilen angeordnet – eine Zeile wird als
Datensatz bezeichnet. Gleichartige Daten (wie Straße oder PLZ) sind in (senkrechten) Spalten angeordnet
– diese werden Felder genannt. Ganz oben in der Tabelle stehen die Feldnamen: Vorname, Nachname,
Straße, PLZ, Ort usw.
Möchte man eine Datenbank zu einem bestimmten Thema anlegen, ist zuerst der tabellarische Aufbau zu
überlegen. In unserem Beispiel soll die Verwaltung der Schülerdaten auf drei Tabellen aufgeteilt werden.
Semester
1: n
Studierende
1: n
Noten
2
Die hier eingezeichneten Pfeile stellen die Verbindungen zwischen den einzelnen Tabellen dar. Man spricht
von sog. Beziehungen. Die einzelnen Tabellen sind also nicht unabhängig voneinander, sondern
zusammengehörige Daten sind über mehrere Tabellen verteilt. Das ist das Grundprinzip der
RELATIONALEN DATENBANK. Sinn und Zweck der Datenaufteilung ist es, Redundanzen (also
mehrmaliges Abspeichern derselben Information) zu vermeiden und so die Effizienz der Datenbank zu
steigern.
Folgende Anforderungen werden an Datenbanken gestellt:
 Sämtliche Informationen sollen einfach aufgenommen und gepflegt werden können.
 Bestimmte Informationen sollen gezielt gesucht werden können und schnell zur Verfügung stehen.
 Informationen sollen einfach weiterverwendet werden können, z.B. für Auswertungen, Berichte,
Serienbriefe usw.
Im oben genannten Beispiel ergibt sich durch die Aufteilung der Daten in drei Tabellen folgender Vorteil:
Nehmen wir an, die Studierenden Huber und Maier haben die Noten 2,4,3 und 2,1,1. Würde man alle Daten
in einer Tabelle zusammenfassen, müsste man dasselbe Semester 6-mal eingeben sowie jeden
Studierenden 3-mal und es entstünden folgende Datensätze:
7E
7E
7E
7E
7E
7E
Huber
Huber
Huber
Maier
Maier
Maier
2
4
3
2
1
1
Durch die Verteilung in verschiedene Tabellen melden wir das Semester jeweils einmal mit. Zu jedem
Semester werden also die Studierenden eingegeben und zu jedem Studierenden die Noten. Dadurch
werden Mehrfacheingaben vermieden!
In der Tabelle “Semester“ wird jedem Semester eine eindeutige Zahl zugewiesen. So bekommt z.B. das 7ESemester die Nummer 1, das 5B-Semester die Nummer 2 usw. In der Tabelle “Studierende“ wird jedem
Studierenden nur mehr 1 oder 2 angefügt, wodurch jeder Studierender automatisch einem Semester
zugeordnet ist, ohne dass in der Studierenden-Tabelle die Semesterbezeichnungen angeführt werden.
Dasselbe Schema wird in der Beziehung zwischen Studierenden-Tabelle und Notentabelle verwendet.
Jedem Studierenden wird eine eindeutige Zahl zugeordnet, welche dann auch in der Tabelle “Noten“
aufscheint. Zur Verdeutlichung sei noch der Studierende Berger aus dem 5B-Semester angeführt. Die
Tabellen der Datenbank sehen dann so aus:
Semester
Semester Nummer1
7E
1
5B
2
Nummer 1
1
1
2
Studierende
Name
Huber
Maier
Berger
Nummer 2
a
b
c
Noten
Nummer 2
Note
a
2
a
4
a
3
b
2
b
1
b
1
c
4
c
3
c
3
Die eindeutigen Zahlen für die Semester (Nummer 1) und für die Studierenden (Nummer 2) werden vom
Programm automatisch vergeben und brauchen somit vom Anwender nicht selbst eingegeben werden.
Diese eindeutigen Felder werden in Access als sog. Primärschlüssel bezeichnet. In der Tabelle “Semester“
wird also automatisch jedem Semester eine Zahl zugewiesen, welche natürlich in der Tabelle “Studierende“
wieder aufscheinen muss. Es ist darauf zu achten, dass beim Anlegen von Tabellen die Primärschlüssel von
übergeordneten Tabellen miteinbezogen werden, da ansonsten ein Verbinden der Tabellen nicht möglich ist.
Für das Anlegen einer Datenbank sind also vorbereitende Schritte notwendig, da die Struktur der
Datenbank schon zu Beginn feststehen sollte.
1. Festlegung der Datenbankstruktur (Art und Aufbau der Tabellen, Beziehungen zwischen den
Tabellen)
2. Definition und Erfassung der Tabellenstrukturen
3. Verknüpfung der angelegten Tabellen
4. Dateneingabe und Datenpflege
5. Erstellung von Formularen (zur Vereinfachung der Datenerfassung)
3
6. Erstellung von Abfragen (zum Herausfiltern gezielter Informationen aus einer Vielfalt an Daten)
7. Erstellung von menügesteuerte Anwendungen mittels Makros bzw. VBA-Programmierung (zur
Erhöhung der Benutzerfreundlichkeit bei häufig verwendeten Datenbanken)
TABELLEN
Basis jeder relationalen Datenbank
Tabellen
Abfragen
Berichte
Formulare
Zum Anlegen einer neuen Tabelle wird das Objekt Tabelle im Datenbankfenster ausgewählt und dann das
Symbol NEU gewählt. Man kann eine neue Tabelle aber auch über das Menü EINFÜGEN – TABELLE oder
das Symbol NEUES OBJEKT: TABELLE einfügen. Sowohl Tabellen als auch Abfragen, Formulare und
Berichte lassen sich jeweils in verschiedenen Ansichten darstellen. In der Entwurfsansicht werden Objekte
entworfen, definiert, ihre Struktur und ihr Aussehen festgelegt. Die Datenblattansicht (bei Tabellen und
Abfragen), die Formularansicht (bei Formularen) bzw. die Seitenansicht (bei Berichten) zeigt das jeweils
fertige Objekt.
Beim Anlegen einer Tabelle werden für jedes anzulegende Feld ein Feldname und der dazugehörige
Felddatentyp definiert. Hier die wichtigsten Felddatentypen:
Felddatentyp
Text
Eingabe
beliebiger Text und Zahlen (bis zu 255 Zeichen)
Memo
beliebiger Text und Zahlen (bis zu 32.000
Zeichen); innerhalb eines Memo-Feldes kann mit
STRG+ENTER ein Zeilenumbruch erzeugt
werden, was eine übersichtlich Darstellung langer
Texte ermöglicht
beliebiger numerischer Wert, mit dem auch
Berechnungen möglich sind
Datum- und Zeitwerte (können meist in
verschiedenen Formaten eingegeben werden;
werden nach der Eingabe in vordefinierte Form
umgewandelt)
Zahl mit einer Genauigkeit von bis zu 15 Stellen
und 4 Dezimalstellen (standardmäßig erfolgt die
Darstellung mit Tausendertrennzeichen und 2
Dezimalstellen)
Zahl, die von Access automatisch vergeben wird,
wenn der Tabelle ein neuer Datensatz angefügt
wird
Feld, das nur 2 Werte annehmen kann; Aktivieren
und Deaktivieren wird durch Anklicken eines
Kontrollfeldes erreicht; programmintern wird ja als 1 und nein als 0 gespeichert
OLE = Object Linking and Embedding –
Einbindung von Objekten aus anderen
Programmen (z.B. Bilder, Grafiken, Text- oder
Tabellenausschnitte)
Adressen auf der lokalen Festplatte, im Netzwerk
oder Internet; Adresse wird nach der Eingabe
standardmäßig als Hyperlink dargestellt
Zahl
Datum/Uhrzeit
Währung
AutoWert
Ja/Nein
OLE
Hyperlink
Beispiel
A-5020
0662/234567
ISBN 1-55615-877-7
für ausführliche Anmerkungen und
nähere Erläuterungen oder
Beschreibungen zu einem Datensatz
(z.B. Gesprächsnotizen)
3456,78
3.456,78
03:12:00
11.09.01
12:15
24. Dez. 2004
1.111,11
9999,99 €
1.Datensatz erhält den Wert 1,
2.Datensatz den Wert 2 usw.
das eingebettete Objekt wird durch
einen Doppelklick in der Tabelle mit
dem entsprechenden Programm
geöffnet
4
Nachschlageassistent
Kombinations- oder Listenfelder – der Benützer
wählt aus einer Palette vorgegebener, oder aus
einer Tabelle stammender Werte
Zusätzlich gibt es zu jedem Felddatentypen eine Anzahl verschiedener Argumente, die die
Feldeigenschaften genauer definieren. Diese Feldeigenschaften werden für das jeweils aktuelle Datenfeld
angezeigt. Mit Hilfe dieser Argumente lässt sich die Funktionalität der Tabellen verbessern. Es ist dadurch
möglich, Zahlen zu formatieren, die Lesbarkeit zu erhöhen oder Fehlermeldungen bei Falscheingaben zu
vermeiden.
Feldeingabebereich
Feldeigenschaftenbereich
Informationsbereich
Übersicht der wichtigsten Feldeigenschaften:
Feldgröße
Format
Eingabeformat
Dezimalstellenanzeige
Beschriftung
Standardwert
Gültigkeitsregel
Gültigkeitsmeldung
Eingabe
erforderlich
Leere
Zeichenfolge
Indiziert
Legt die Anzahl der Zeichen fest, die maximal in das Feld eingegeben werden können.
Durch das Format wird das spätere Anzeigeformat (Darstellungsformat) für den Feldinhalt
festgelegt.
Definiert ein Muster für alle Daten, die später in das Feld eingegeben werden (z.B. eine
Schablone für ein internationales PLZ-Format).
Festlegung der Anzahl der Dezimalstellen nach dem Komma bei Zahlen- oder
Währungsfeldern
Abweichend vom Feldnamen kann eine Feldbezeichnung eingegeben werden, die dann in
der Datenblattansicht von Tabellen (und später auch in Berichten und Formularen) als
Spaltenbeschriftung erscheint.
Gibt an, mit welchem Inhalt das Feld bei der Eingabe neuer Datensätze vorbelegt sein
soll. Trifft der Standardwert bei der Dateneingabe nicht zu, kann er einfach überschrieben
werden.
Unmittelbar nach der Eingabe wird mit dieser Regel die korrekte Eingabe der Werte
überprüft (z.B. bei PLZ >=1000)
Fehlermeldung bei falscher Eingabe aufgrund der Gültigkeitsregel
Bestimmt, ob beim späteren Ausfüllen eines Datensatzes eine Eingabe in das Feld
erforderlich ist
Hier wird bestimmt, ob eine leere Zeichenfolge (= doppelte Anführungszeichen
hintereinander ″″) als gültiger Eintrag akzeptiert wird. Wenn eine Eingabe zwingend
erforderlich ist, sollte für die Eigenschaft “Eingabe erforderlich“ Ja gewählt werden und die
Eigenschaft “Leere Zeichenfolge“ auf Nein gestellt werden.
Die Eigenschaft “Indiziert“ sollte dann auf Ja gestellt werden, wenn die Tabelle häufig nach
diesem Feld sortiert wird oder oft nach einem Wert in diesem Feld gesucht wird. Bei Ja
(Duplikate möglich) kann ein bestimmter Wert mehrfach auftreten, während bei Ja (Ohne
Duplikate) der Wert eindeutig ist, d.h. in der Tabelle nur einmal auftritt.
Besonderheiten bei Zahlenformaten von numerischen Feldern:
5
Durch die Festlegung der Feldgröße wird der Bereich der Werte bestimmt, die in dieses Feld eingegeben
werden können und somit wie groß der benötigte Speicherplatz ist. Standardmäßig ist die Feldgröße auf
Integer bzw. Long Integer eingestellt.
Variante
Byte
Integer
Long Integer
Dezimal
Single
Double
Replikations-ID
Wertebereich
Speichert Zahlen von 0 bis 255 (keine Bruchzahlen und keine
Dezimalstellen)
Ganze Zahlen zwischen -32.768 und 32.768
Ganze Zahlen zwischen -2.147.483.648 und 2.147.483.648 (keine
Bruchzahlen und keine Dezimalstellen)
Dezimalzahl, Genauigkeit der Stellen hinter dem Komma kann eingestellt
werden
Dezimalzahlen mit 7-stelliger Genauigkeit
Dezimalzahlen mit 15-stelliger Genauigkeit
GUID = Globally Unique Identifier, wird bei der Replikation eingesetzt
Speicherbedarf
1 Byte
2 Bytes
4 Bytes
4 Bytes
8 Bytes
16 Bytes
Beim Format können für Zahlenfelder folgende Argumente gewählt werden:
Variante
Allgemeine Zahl
Währung
Beispielzahl
9876,4
9876,4
Festkommazahl
9876,4
Standardzahl
9876,4
9876,4
9.876,4 €
9876,40
9.876,40
Prozentzahl
0,445
44,5%
Exponentialzahl
1234,5
1,23E+03
Anzeige
Anzeige entspricht der Eingabe
Anzeige mit Tausendertrennzeichen, 2 Kommastellen
und Währungszeichen
Anzeige mit mindestens einer Ziffer und 2
Dezimalstellen
Anzeige mit Tausendertrennzeichen und 2
Dezimalstellen
Für die Anzeige wird der Wert mit 100 multipliziert und
das Prozentsymbol angefügt
Anzeige als Exponentialzahl auf Basis 10
Bei der Definition von Datums- und Zeitformaten stehen folgende Varianten zur Verfügung:
Variante
Standarddatum
Datum, lang
Datum, mittel
Datum, kurz
Zeit, lang
Zeit, 12 Std.
Zeit, 24 Std.
Hinweise
Tages- und Monatsnamen werden ausgeschrieben
Monatsnamen werden dreistellig angezeigt
mit Sekundenanzeige
AM-/PM-Anzeige
24-Stunden-Anzeige
Beispiel
11.11.2001 11:11:30
Donnerstag, 11. November 2001
11. Nov 2001
11.11.2001
11:11:30
4:35
16:35
Mit Hilfe bestimmter Zeichen lässt sich festlegen, ob und wie bestimmte Daten eingegeben werden sollen.
Im folgende sind die wichtigsten Zeichen zur Definition von Formaten aufgelistet:
0
9
#
L
?
&
C
.,:;-/
<
>
!
\
Ziffer (0 bis 9, Eingabe erforderlich, Plus-[+] und Minuszeichen [-] nicht erlaubt)
Ziffer oder Leerzeichen (Eingabe nicht erforderlich, Plus- und Minuszeichen nicht erlaubt)
Ziffer oder Leerzeichen (Eingabe nicht erforderlich, Leerzeichen werden als Leerzeichen im
Bearbeitungsmodus angezeigt, aber beim Speichern entfernt, Plus- und Minuszeichen erlaubt)
Buchstabe (A bis Z, Eingabe erforderlich)
Buchstabe (A bis Z, Eingabe optional)
Beliebiges Zeichen oder Leerzeichen (Eingabe erforderlich)
Beliebiges Zeichen oder Leerzeichen (Eingabe nicht erforderlich)
Platzhalter für Dezimaltrennzeichen sowie Tausender-, Datums- und Zeittrennzeichen (das
tatsächlich verwendete Zeichen hängt von den Einstellungen bei den Ländereinstellungen in der
Systemsteuerung von Windows ab)
Alle Buchstaben werden in Kleinbuchstaben umgewandelt.
Alle Buchstaben werden in Großbuchstaben umgewandelt.
Bewirkt, dass die Anzeige im Eingabeformat von rechts nach links anstatt von links nach rechts
erfolgt. Eingegebene Zeichen füllen das Eingabeformat immer von links nach rechts aus.
Durch dieses Zeichen kann die Wirkung von Sonderzeichen aufgehoben werden (Bsp.: \L wird
als L angezeigt)
Es soll nun die Tabelle “Semester“ in der Entwurfsansicht angelegt werden. Notwendige Daten hierfür sind:
 das Semester (z.B. 7E)
6



der Raum (z.B. 1.Stock, 112)
das Schuljahr (z.B. WS 04/05)
ein eindeutiger Zähler für jedes Semester (also der AutoWert)
TABELLE SEMESTER

Feldname
ID-Semester
Semester
Felddatentyp
AutoWert
Text
Raum
Schuljahr
Text
Text
Argument
Feldgröße: 2
Eingabeformat: 0L
Feldgröße: 10
Feldgröße: 10
Damit diese Tabelle dann mit der Tabelle “Studierende“ verbunden werden kann, ist es erforderlich, ein
eindeutiges Verknüpfungsfeld zu kennzeichnen, welches als Primärschlüsselfeld bezeichnet wird. In der
Tabelle “Schüler“ eignet sich hierfür das Feld ID-Semester am besten. Um das Feld als Primärschlüssel zu
kennzeichnen, wird es zunächst markiert (durch einen Klick auf die graue Fläche neben dem Feld) und dann
die Schaltfläche mit dem Schlüssel gewählt. Dadurch erscheint bei den Argumenten unter “Indiziert“
automatisch Ja (OhneDuplikate), was bedeutet, dass jede Zahl nur einmal vorkommen darf, um die
Eindeutigkeit zu gewährleisten.
Das Abspeichern der Tabelle erfolgt beim Schließen. Die frage, ob Änderungen gespeichert werden sollen,
wird mit Ja beantwortet und im nächsten Schritt wird ein Tabellenname vergeben, die in diesem Fall
“Semester“ heißen soll.
Zur Überprüfung, ob die Tabelle auch richtig angelegt wurde, empfiehlt es sich probeweise ein paar Daten
einzugeben. Dafür ist die Datenblattansicht vorgesehen.

Symbol für die
Entwurfsansicht

Symbol für die
Datenblattansicht
Bei der Dateneingabe darf in das Feld ID-Studierende nichts eingegeben werden, da die Vergabe der
eindeutigen Nummer programmintern passiert. Hier ein paar Beispiele für die eingegebenen Daten:
Semester
7E
5B
Raum
1.Stock, 112
HP, 24
Schuljahr
WS 04/05
SS 04
Im Datenblattfenster können die erfassten Daten in Listenform angezeigt und auch ausgedruckt werden. Das
Drucken läuft über das Druckmenü. In der Seitenansicht lässt sich das Layout überprüfen. Sollten
bestimmte Spalten nicht angezeigt werden (z.B. die automatische Nummerierung), dann lassen sich diese
ganz einfach ausblenden. Hierfür wird der Cursor in die auszublendende Spalte gesetzt und im Formatmenü
(oder im Kontextmenü) der Befehl “Spalten ausblenden“ gewählt. Durch den Befehl “Spalten einblenden“
können ausgeblendete Spalten wieder sichtbar gemacht werden. Die gewünschten Spalten werden dabei in
einem Auswahlfenster ausgewählt.
Nachdem die Funktionsfähigkeit der Tabelle “Semester“ überprüft wurde, sollen nun noch die Tabellen
“Studierende“ und “Noten“ angelegt werden. Hierfür sind folgende Felder erforderlich:
TABELLE STUDIERENDE

Feldname
ID-Semester
Felddatentyp
Zahl
ID-Studierende
Vorname
Nachname
Straße+Hausnummer
PLZ
AutoWert
Text
Text
Text
Zahl
Wohnort
Ländercode
Text
Nachschlageassistent
Telefonnummer1
Telefonnummer2
E-Mail
Text
Text
Text
Argument
Feldgröße: Long Integer
Standardwert: keiner
Feldgröße: 50
Feldgröße: 50
Feldgröße: 50
Feldgröße: Long Integer
Format: Allgemeine Zahl
Dezimalstellenanzeige: 0
Feldgröße: 50
“Werte werden selbst eingegeben“
auswählen
1 Spalte (A/D/CH)
Beschriftung: Ländercode
Feldgröße: 50
Feldgröße: 50
Feldgröße: 50
7
Geburtsdatum
Datum/Uhrzeit
Format: Datum, kurz
Wichtig bei der Tabelle “Studierende“ ist, dass die Voraussetzungen für die spätere Verbindbarkeit mit der
Tabelle “Semester“ gegeben sind. Um zwei Tabellen verbinden zu können, muss das Primärschlüsselfeld
der einen Tabelle in der anderen Tabelle ebenfalls aufscheinen. Hier muss es immer als Zahl mit der
Feldgröße Long Integer aufscheinen. Außerdem muss darauf geachtet werden, dass der Standardwert,
der bei Zahlenfeldern immer von Haus aus auf Null gesetzt ist, gelöscht wird. Außerdem soll auch die
Tabelle “Studierende“ ein eindeutiges Feld erhalten, damit später die Verbindung zur Tabelle “Noten“
ermöglicht wird. Nach Festlegung der Datenfelder wird also das Feld “ID-Studierende“ als
Primärschlüsselfeld festgelegt, indem es wieder mit dem Schlüssel versehen wird.
Beim Nachschlageassistenten, der hier für den Ländercode eingesetzt wurde, gibt es zwei Möglichkeiten:
Entweder man bezieht die Daten, die zur Auswahl stehen sollen, aus einer bereits vorliegenden Tabelle bzw.
Abfrage oder man gibt die Werte selbst ein. Im Register “Nachschlagen“ kann u.a. die Spaltenbreite variiert
werden sowie die Einschränkung eingestellt werden, dass nur Listeneinträge ausgewählt werden dürfen (das
Argument “Nur Listeneinträge“ wird dann auf Ja gestellt).
TABELLE NOTEN
Feldname
ID-Studierende
Felddatentyp
Zahl
Note Access
Zahl
Note Programmieren
Zahl
Note Theorie
Zahl
Argument
Feldgröße: Long Integer
Standardwert: keiner
Indiziert: Ja (Duplikate möglich)
Feldgröße: Byte
Format: Allgemeine Zahl
Gültigkeitsregel: <6 Und >0 Oder
Ist Null
Gültigkeitsmeldung: Note zwischen
1 und 5
Feldgröße: Byte
Format: Allgemeine Zahl
Feldgröße: Byte
Format: Allgemeine Zahl
In der Tabelle “Noten“ ist kein Primärschlüsselfeld mehr notwendig. Allerdings muss das Primärschlüsselfeld
der Tabelle “Studierende“ wieder als Zahlenfeld aufscheinen, um eine Verbindung der beiden Tabellen zu
ermöglichen. Die Indizierung mit Ja (Duplikate möglich) gewährleistet, dass jeder Studierende mehrere
Noten haben kann. Durch die Gültigkeitsregel bei den Noten können Fehleingaben vermieden werden, da
die Noten ja nur zwischen 1 und 5 liegen können. Eine beigefügte Gültigkeitsmeldung kreiert bei
Fehleingaben ein Informationsfenster, welches auf die falsche Eingabe hinweist.
Beim Abspeichern der Tabelle “Noten“ meldet Access, dass kein Primärschlüsselfeld vergeben wurde. Auf
die Frage, ob ein solches erstellt werden soll, antwortet man in diesem Fall mit Nein, denn ansonsten würde
Access automatisch ein indiziertes Zählerfeld der Tabelle hinzufügen.
4. Verbinden von Tabellen
Im Anschluss an das Anlegen der einzelnen Tabellen, sollen diese nun miteinander in Beziehung gebracht
werden. Diese Beziehungen können durch den Befehl EXTRAS – BEZIEHUNGEN oder durch einen Klick
auf folgenden Icon hergestellt werden:

Symbol für die Herstellung von Beziehungen
Im Beziehungsfenster werden nun nacheinander alle Tabellen hinzugefügt.
8
Um nun eine Beziehung zwischen den Tabellen “Semester“ und “Studierende“ herzustellen, wird das Feld
“ID-Semester“ aus der Tabelle “Semester“ angeklickt und mit gedrückter Maustaste auf das Feld “IDSemester“ in der Tabelle “Studierende“ gezogen. Im daraufhin erscheinenden Auswahlfenster scheint der
Beziehungstyp auf – in diesem Fall handelt es sich um eine 1:n-Beziehung. Es sollte außerdem die Option
“Mit referentieller Integrität“ ausgewählt werden. Die Verbindung wird schließlich mit der Schaltfläche
Erstellen hergestellt.
Derselbe Vorgang wird im Anschluss mit den Feldern “ID-Studierende“ aus der Tabelle “Studierende“ und
der Tabelle “Noten“ durchgeführt.
In beiden Fällen handelt es sich um eine sog. 1:n-Beziehung (oder 1:-Beziehung). Dabei werden einem
Datensatz in der Ursprungstabelle (= Mastertabelle) mehrere Datensätze in einer untergeordneten Tabelle
(= Detailtabelle) zugeordnet (z.B. ein Semester hat mehrere Studierende und ein Studierender hat mehrere
Noten), während ein Datensatz der Detailtabelle aber immer genau einem Datensatz in der Mastertabelle
entspricht. Pro Tabelle muss hierfür ein eindeutiges Feld, also ein Primärschlüsselfeld existieren. Dieses
eindeutige Feld der Mastertabelle muss dann auch in der untergeordneten Tabelle wieder aufscheinen.
Neben der 1:n-Beziehung gibt es noch 1:1-Beziehungen und m:n-Beziehungen.
In der 1:1-Beziehung entspricht ein Datensatz der Ursprungstabelle genau einem Datensatz der
Detailtabelle. Diese Beziehung ist in der Praxis eher selten, da ja die Informationen der beiden Tabellen
auch in einer Tabelle vereint werden könnten. Um eine solche Beziehung herzustellen, muss das
Primärschlüsselfeld der übergeordneten Tabelle auch gleichzeitig als Primärschlüsselfeld in der Detailtabelle
definiert sein.
Bei der m:n-Beziehung besitzt ein Datensatz aus der übergeordneten Tabelle mehrere Datensätze in der
untergeordneten Tabelle, aber auch umgekehrt ein Datensatz aus der Detailtabelle mehrere Datensätze in
der Mastertabelle. So kann z.B. ein Studierender mehrere Lehrer haben, umgekehrt unterrichtet aber auch
jeder Lehrer mehrere Studierende. Solche m:n-Beziehungen lassen sich nur durch das Zwischenschalten
einer dritten Tabelle lösen, wobei das Beziehungsschema hier so aussehen könnte:
9
Die referentielle Integrität stellt sicher, dass die Beziehungen zwischen Datensätzen aus verschiedenen
Tabellen ihre Gültigkeit bewahren. So wird verhindert, dass es z.B. durch einen Löschvorgang zu einer
Dateninkonsistenz kommt. Es können durch die referentielle Integrität nicht einfach Datensätze aus der
Mastertabelle gelöscht werden, wenn diese mit weiteren Datensätzen in einer untergeordneten Tabelle
verknüpft sind. Besteht eine referentielle Integrität, müssen außerdem zuerst Datensätze in der
Ursprungstabelle angelegt werden, bevor in der untergeordneten Tabelle ein entsprechender Datensatz
eingegeben werden kann. In dem vorliegenden Beispiel heißt das, dass es zuerst die Semester geben
muss, bevor Studierende angelegt werden können.
Bei den Verknüpfungstypen sind unterschiedliche Einstellungen möglich:
Bei der Verknüpfungseigenschaft vom Typ 1 handelt es sich um eine Gleichheitsverknüpfung oder
Exklusionsverknüpfung (Inner Join), d.h. die Daten werden nur dann angezeigt, wenn auch in jeder
Tabelle Daten vorhanden sind. Die Typen 2 und 3 sind sog. Inklusionsverknüpfungen, und zwar einmal
eine Links-Inklusionsverknüpfung (Left Outer Join) und einmal eine Rechts-Inklusionsverknüpfung (Right
Outer Join). Beim Typ 2 würde das also heißen, dass alle Semester angezeigt werden, auch wenn dazu
noch gar keine Studierenden angelegt sind.
In Abfragen können die Beziehungen bzw. Verknüpfungseigenschaften zwischen einzelnen Tabellen
verändert werden.
5. Arbeiten mit Tabellen
Um mit den angelegten Tabellen arbeiten zu können, sind Daten notwendig. Verwenden Sie daher für die
folgenden Aufgaben die bereits mit Daten “gefütterte“ Datenbank Übung.mdb.
5.1. Datensätze sortieren
Soll eine Tabelle (z.B. die Tabelle “Studierende“) nach einer Spalte sortiert werden (etwa nach der PLZ), so
setzt man den Cursor irgendwo in die entsprechende Spalte und wählt den Befehl DATENSÄTZE –
SORTIEREN. Es gibt allerdings auch in der Symbolleiste entsprechende Symbole, die eine auf- oder
absteigende Sortierung ermöglichen bzw. auch über das Kontextmenü lässt sich der Befehl ausführen.
Mehrstufiges Sortieren (also zuerst nach der PLZ und dann nach dem Geburtsdatum) ist nicht möglich. Dies
lässt sich nur durch eine Abfrage bewerkstelligen.

Symbol für die auf- bzw. absteigende Sortierung
Normalerweise befinden sich die Datensätze in der Tabelle in der Reihenfolge, in der sie eingegeben
wurden. Wird eine Sortierung durchgeführt und dann die Tabelle wieder geschlossen, fragt Access, ob die
Änderungen gespeichert werden sollen. Wird mit Ja geantwortet, werden beim nächsten Öffnen die Daten
wieder sortiert angezeigt.
10
5.2. Datensätze filtern
Um sich eine Teilmenge der gesamten Datenmenge anzeigen zu lassen, die alle ein bestimmtes Kriterium
erfüllen, kann ein Filter verwendet werden. Möchte man sich z.B. eine Zusammenstellung aller
Studierenden aus Deutschland anzeigen lassen, klickt man irgendwo in das Datenfeld mit dem
Länderkennzeichen D und wählt dann DATENSÄTZE – FILTER – AUSWAHLBASIERTER FILTER. Das
Filterkriterium beruht dabei auf dem momentan ausgewählten Wert (nämlich D). Schneller geht es mit dem
Filtersymbol aus der Symbolleiste oder über das Kontextmenü. Möchte man sich wieder alle Datensätze
anzeigen lassen, klickt man auf das Symbol Filter entfernen.

Symbol für die Anwendung
des auswahlbasierten Filters

Symbol für die Entfernung des Filtes
5.3. Datensätze suchen
Braucht man z.B. die Telefonnummer eines bestimmten Studierenden, wählt man BEARBEITEN – SUCHEN
oder klickt auf das entsprechende Symbol. Außerdem kann auch die Tastenkombination STRG + F (für
Finden) verwendet werden.

Symbol für die Datensatzsuche
Im darauf erscheinenden Dialogfeld wird dann der Suchtext eingegeben, z.B. Maier. Außerdem muss noch
festgelegt werden, wo Access suchen soll (angeboten wird das Feld, in dem der Cursor gerade steht oder
die ganze Tabelle) und was mit dem Suchtext verglichen werden soll (ein Teil des Feldinhaltes, der ganze
Feldinhalt oder der Anfang des Feldinhaltes). Bei der Suche nach dem ganzen Feld muss der vollständige
Inhalt des Feldes als Suchtext eingegeben werden. Schließlich ist noch die Richtung zu definieren, in welche
gesucht werden soll – man wählt zwischen Aufwärts, Abwärts und Alle.
Sind die Suchoptionen richtig eingegeben worden, wird der gesuchte Datensatz markiert.
6. Abfragen
6.1. Einfache Auswahlabfragen
Sollen Daten einer oder mehrerer Tabellen ermittelt und ausgewertet werden, dann wendet man hierfür
Auswahlabfragen an. Mit Abfragen lassen sich quasi Informationen aus einer Datenbank “herausfiltern“,
wobei – anders wie bei herkömmlichen Filtern – die Daten mehrere Tabellen nach verschiedenen Kriterien
geordnet werden können.
Um eine Abfrage zu erstellen, aktiviert man im Datenbankfenster das Objekt Abfrage, klickt dann auf den
Icon NEU und wählt ENTWURFSANSICHT aus. Man kann aber auch direkt die Rubrik Erstellt eine neu
Abfrage in der Entwurfsansicht wählen. Aus dem Auswahlfenster “Tabelle anzeigen“ werden die benötigten
Tabellen der Abfrage hinzugefügt.
11
Will man eine übersichtliche Darstellung der Studierenden, ihrer Wohnorte und der Semester, denen sie
angehören, schaffen, dann fügt man sowohl die Tabelle “Studierende“ als auch die Tabelle “Semester“ der
Abfrage hinzu.
Um die benötigten Felder in den Abfragebereicht zu bekommen, werden diese nacheinander mit der Maus in
die entsprechenden Abfragefelder gezogen. Der Mauszeiger verwandelt sich dabei in ein Feld. Man sollte
bei der Auswahl der Abfragefelder auch schon deren Reihenfolge mit berücksichtigen, denn die
Sortieranweisungen, die im Anschluss definiert werden, werden vom Programm immer von links nach rechts
abgearbeitet. Sollte die Reihenfolge einmal nicht stimmen, kann ein Feld im Abfrageentwurf auch noch
nachträglich verschoben werden. Hierfür markiert man das zu verschiebende Feld und zieht es wieder mit
der Maus an die gewünschte Stelle. Außerdem können Felder auch wieder aus dem Abfragebereich
gelöscht werden, indem man sie wiederum markiert und dann mit ENTF aus dem Abfrageentwurf eliminiert.
Die für die Abfrage benötigten Felder, können aber auch durch einen Doppelklick der Abfrage angefügt
werden, wobei das entsprechende Feld immer an die letzte Position gesetzt wird.
In dieser Abfrage sollen nun die Studierenden (in alphabetischer Reihenfolge) nach ihren Wohnorten
(ebenfalls alphabetisch sortiert) aufgelistet werden. Der Abfrageentwurf müsste dann folgendes Aussehen
haben:
Die Abfrage wird durchgeführt, indem man in die Datenblattansicht wechselt oder das Symbol für Ausführen
anklickt.

Symbol für das Ausführen der Abfrage
12
Das erhaltene Ergebnis ist wahrscheinlich nicht zufrieden stellend, denn es sollte eigentlich als oberstes
Ordnungskriterium der Wohnort definiert werden. Möchte man sich allerdings zuerst trotzdem die Namen der
Studierenden anzeigen lassen, bietet sich folgende Lösungsmöglichkeit an:
Man kann also ein Feld in der Abfrage wiederholen, um das richtige Ordnungskriterium zu erhalten, wobei
dieses Feld einmal unsichtbar gemacht wird (das Häckchen bei “Anzeigen“ wird dabei einfach deaktiviert).
Das Ergebnis sieht dann wie folgt aus:
Abfragen lassen sich natürlich für eine spätere Verwendung speichern. Beim Schließen des Abfragefensters
wird man aufgefordert, einen Speichername für diese Abfrage zu vergeben. Wird die Datenbank in der
Zwischenzeit mit weiteren Daten komplettiert, dann werden beim erneuten Durchführen der gespeicherten
Abfrage die neuen Daten natürlich mitberücksichtigt. Die obige Abfrage wurde unter dem Namen
“Studierende nach Wohnort sortiert“ abgespeichert.
Unten im Fenster sind bei Abfragen immer sog. Navigationsschaltflächen eingeblendet, mit denen man
durch das Ergebnis der Abfrage blättern kann.
Von links nach rechts kommt den Symbolen folgende Bedeutung zu:
 zum ersten Datensatz
 einen Datensatz zurück
 einen Datensatz vor
 zum letzten (hier 6.) Datensatz
13

zum ersten leeren Datensatz, wo neue Datensätze angelegt werden können, welche dann auch
sofort in die zugrunde liegende Tabelle eingetragen werden.
6.2. Anwendung spezieller Abfragekriterien
Möchte man sich nun z.B. nur die Studierenden aus Salzburg, alphabetisch geordnet nach dem Nachnamen
anzeigen lassen, gibt man bei “Wohnort“ als Kriterium “Salzburg“ an.
Gibt man noch ein zweites Kriterium in der Zeile “oder“ an (z.B. “Hallein“), dann wird nach Studierenden aus
Salzburg oder Hallein gesucht. Um sie nach ihren Wohnorten zu trennen, muss auch im Feld “Wohnort“ eine
Sortierung ausgewählt werden.
Kriterien, die untereinander stehen, sind ODER-Verknüpfungen. Eines der genannten Kriterien muss hier
also zutreffen. Man kann aber auch UND-Verknüpfungen verwenden, wenn man die Kriterien nebeneinander
platziert.
Bei der Selektion von Datensätzen über Abfragen kann auch mit Platzhaltern gearbeitet werden. Möchte
man sich alle Studierenden aus dem Bundesland Salzburg anzeigen lassen, kann man als Kriterium bei der
PLZ “5*“ angeben. Der Platzhalter * steht für beliebig viele weitere Zeichen. In der korrekten Syntax steht bei
Verwendung eines Platzhalters der einleitende Operator Wie, die darauf folgende Zeichenkette wird unter
Abführungszeichen gesetzt.
Das Ergebnis der Abfrage sähe dann folgendermaßen aus:
Hier noch weitere Möglichkeiten der Datenselektion bei Abfragen:
 Verwendung von Platzhaltern: Neben dem * für beliebig viele Zeichen gibt es auch noch einen
weiteren Platzhalter, der genau für ein Zeichen steht. Hierfür wird das Fragezeichen (?) verwendet,
z.B. Wie “Ma?er“.
Sucht man nach einer Person namens Maier oder Mayer und will nur diese beiden Schreibweisen
zulassen, wird das Kriterium folgendermaßen definiert: Wie “ma[i;y]er“.
Möchte man sich alle Nachnamen von A bis J anzeigen lassen, muss das Kriterium Wie “[a-j]*“
lauten.
Platzhalter wie diese können natürlich auch bei Zahlen eingesetzt werden. Braucht man eine
Auflistung aller Studierenden, die im Jahr 1979 geboren wurden, kann beim Geburtsdatum
folgendes Kriterium eingegeben werden: Wie “*.*.1979“
 Logisches Gegenteil: Will man alle Studierenden aufgelistet haben, außer diejenigen aus Salzburg,
dann müsste Nicht Wie “Salzburg“ als Kriterium im Feld “Wohnort“ bei der Abfrage eingegeben
werden. Der Operator Nicht steht also für das logische Gegenteil.
 Numerische Vergleiche: Zahlen- und Währungsfelder lassen sich über arithmetische Operatoren
selektieren.
=
>
>=
gleich
größer
größer oder gleich
<
<=
<>
kleiner
kleiner oder gleich
ungleich
14



Sucht man in einem bestimmten Intervall, dann kann folgende Schreibweise eingesetzt werden:
Zwischen … Und …
Vergleich mit einer Liste: Will man den Inhalt eines Feldes nicht nur mit einem Wert, sondern dem
Inhalt einer ganzen Liste vergleichen (z.B. um Studierende aus Bad Reichenhall, Freilassing und
Berchtesgaden herauszufiltern), wird als Operator In (“Bad Reichenhall“;“Freilassing“;
“Berchtesgaden“) eingegeben.
Datum als Kriterium: Wird nach dem Datum selektiert, sollte dieses zwischen zwei Doppelkreuze
geschrieben werden. So liefert der Eintrag <#01.01.1955# im Feld “Geburtsdatum“ alle Personen,
die über 50 Jahre alt sind.
Berechnete Felder: Man kann z.B. mit den Daten eines Datensatzes eine horizontale Berechnung
durchführen, genauso wie auch vertikale Berechnungen innerhalb eines Feldes möglich sind.
Das Ergebnis wird bei vertikalen Berechnungen als berechnetes Feld (oder auch virtuelles Feld)
bezeichnet, weil es nicht Bestandteil der Tabelle ist, sondern nur in der Abfrage existiert. Bei
vertikalen Berechnungen entstehen sog. aggregierte Felder.
7. Erstellen von Eingabeformularen
7.1. Eingabeformulare mittels Auswahlabfragen erstellen
Damit nun die Semester sowie die Studierenden bequem eingegeben werden können, wird ein
Eingabeformular erstellt, welches aus einem Hauptformular (zur Eingabe der Semester) und einem
Unterformular (zur Eingabe der Studierenden) bestehen soll. Dabei sollen die Semester sortiert sein, d.h.
zunächst sollen die Semester des aktuellen Schuljahres aufscheinen (das Schuljahr wird also absteigend
sortiert). Im jeweiligen Schuljahr sollen die Semester aufsteigend aufscheinen (d.h. die unteren Semester
kommen zuerst).
Formulare können zwar auch unmittelbar auf der Basis von Tabellen erstellt werden, was allerdings den
Nachteil hat, dass immer alle Daten aufscheinen und zwar unsortiert. Erstellt man Formulare aus Abfragen,
ergeben sich folgende Vorteile:
 Daten aus zwei oder mehr Tabellen können zusammengeführt werden
 Datensätze lassen sich mehrstufig sortieren
 Daten lassen sich so selektieren, dass nur die gewünschten Datensätze angezeigt werden
 Berechnete Felder können für das Formular bereitgestellt werden
 Daten lassen sich mittels Parameterabfragen dynamisch selektieren
Da es sich hierbei also in diesem Fall um zwei miteinander kombinierte Formulare handelt, werden zur
Erstellung zwei Auswahlabfragen benötigt.
Zuerst wird aus der Tabelle “Semester“ eine Abfrage mit sämtlichen in der Tabelle vorhandenen Feldern
erstellt. Das Feld “ID-Semester“ wird in diesem Fall genauso benötigt, da bei der späteren Eingabe der
Studierenden eine Zuordnung zu den einzelnen Semestern möglich sein muss. Begonnen wird in dieser
Abfrage mit dem Feld “Schuljahr“, gefolgt vom Feld “Semester“, da ja zuerst nach dem Schuljahr und dann
erst nach den Semestern sortiert werden soll. Bei den Sortierungen wird bei “Schuljahr“ absteigend und bei
“Semester“ aufsteigend gewählt. Die Abfrage wird unter dem Namen “Semester sortiert“ abgespeichert.
Zur Überprüfung können in die Tabelle “Semester“ ein paar Datensätze eingegeben werden. Dann öffnet
man die Abfrage.
Weiters sollen alle Studierende eines Semesters sortiert werden. Dazu erstellt man mit der Tabelle
“Studierende“ eine Abfrage (“Studierende sortiert“), wobei der Nachname aufsteigend sortiert erscheinen
soll. Auf keinen Fall darf man auf das Feld “ID-Semester“ vergessen, da über dieses Feld die Daten
synchronisiert werden. Nur wenn die Schlüsselfelder Bestandteil beider Abfragen sind, kann Access die
zusammengehörigen Datensätze Im Haupt-/Unterformular zusammenführen.
Zum Schluss wird nun das Eingabeformular erstellt, das nach der Fertigstellung es folgendes Aussehen
haben wird:
15
Im Datenbankobjekt Formulare wird der Formularassistent über die Rubrik Erstellt ein Formular unter
Verwendung des Assistenten oder über den Befehl NEU – FORMULARASSISTENT aufgerufen.
Zuerst sollen die Daten für das Hauptformular bereitgestellt werden, welche sich in der Abfrage “Semester
sortiert“ befinden. Es wird also als erstes diese Abfrage ausgewählt. Aus den verfügbaren Feldern, die nach
Auswahl der Tabelle bzw. Abfrage erscheinen, wählt man nach der Reihe diejenigen aus, die im
Eingabeformular auftauchen sollen. Da die Werte für das Feld “ID-Semester“ automatisch vergeben werden,
braucht es für das Formular natürlich nicht ausgewählt werden.
Weiters wählt man noch die Felder für das Unterformular aus, die aus der Abfrage “Studierende sortiert“
stammen. Auch hier werden die ID-Felder nicht benötigt.
16
Im nächsten Dialogfeld entscheidet man, wie die Daten angezeigt werden sollen. Es wird nach Semestern
sortiert und die Option Formular mit Unterformular(en) gewählt.
In den folgenden Dialogfeldern geht es um das Layout des Eingabeformulars. Aus den verschiedenen
Möglichkeiten wird tabellarisch gewählt. Außerdem wird noch der Stil ausgesucht, z.B. Standard. Schließlich
werden noch Speichernamen sowohl für das Haupt- als auch für das Unterformular vergeben
(“Semestereingabe“ und “Semestereingabe Unterformular“). Klickt man auf Fertigstellen erstellt der
Assistent das Formular und öffnet es in der Formularansicht. Nun können sowohl Semester eingegeben
werden sowie zu den einzelnen Semestern Studierende angelegt werden. Sieht man sich das Ergebnis in
der Tabelle “Studierende“ an, fallen die vom Programm automatisch nummerierten Zähler “ID-Semester“ und
“ID-Studierende“ auf.
Möchte man das Aussehen des Formulars verändern, so ist dies in der Entwurfsansicht des Formulars
möglich. Genauere Informationen zur Gestaltung eines Formulars werden später noch genauer erläutert.
Vorweg sei nur soviel gesagt: Damit immer nur ein Datensatz im Unterformular angezeigt wird, muss der
Formularmarkierer des Unterformulars (Quadrat in der oberen linken Ecke auf dem gedachten Schnittpunkt
der Lineale) doppelt angeklickt und bei den Formulareigenschaften im Register FORMAT beim Punkt
Standardansicht der Item Einzelnes Formular ausgewählt werden.
7.2. Eingabeformulare mittels Parameterabfragen erstellen
Auf ähnliche Art und Weise soll nun weiters ein Formular für die Noteingabe kreiert werden. Es soll sich
dabei um ein Formular handeln, bei dem schon automatisch die Studierenden eines Semesters aufgelistet
werden. Hierfür ist eine sog. Parameterabfrage notwendig.
Wieder öffnet man eine neue Abfrage in der Entwurfsansicht und fügt die Tabellen “Semester“ und
“Studierende“ hinzu. Aus der Tabelle “Semester“ benötigt man die Felder “Semester“, “Schuljahr“ und “ID17
Semester“. Aus der Tabelle “Studierende“ werden die Felder “Nachname“, “Vorname“ und “ID-Studierende“
ausgewählt. Im Nachnamensfeld wird die aufsteigende Sortierung eingestellt.
Sowohl das Semester als auch das Schuljahr sollen von Benutzer frei wählbar sein. Dazu schreibt man in
die Kriterienzeile des Feldes “Semester“ Wie[Semester]. Das Kriterium für das Feld “Schuljahr“ muss
Wie[Schuljahr] heißen. Bei dem in der eckigen Klammer stehenden Ausdruck handelt es sich um die
Variable, den sog. Parameter, der bei der Eingabe als Text aufscheint. Man könnte auch längere Texte als
Parameter wählen, z.B. Wie[Bitte Semester eingeben] oder Wie[Bitte Schuljahr eingeben]. Die
Parametertexte können sich dabei, wie man sieht, von den Feldnamen unterscheiden. Wenn der Parameter
einem Feldnamen entspricht, muss dieser extra angemeldet werden. Dies passiert im Menü ABFRAGE –
PARAMETER. Hier müssen dann die Parameter “Semester“ und “Schuljahr“ eingegeben werden. Diese
Parameterabfrage soll unter dem Namen “Semesterauswahl“ abgespeichert werden.
Mit der Abfrage “Semesterauswahl“ als Hauptformular und der Tabelle “Noten“ als Unterformular soll nun
das Eingabeformular für die Noten zusammengestellt werden. Gespeichert werden dann das Hauptformular
unter dem Namen “Noteneingabe“ und das Unterformular und dem Namen “Noteneingabe
Unterformular“.
Eingabe
des 1.
Parameters

Eingabe
des 2.
Parameters

Damit im Noteneingabeformular nicht ein neues Semester bzw. ein neues Schuljahr eingegeben werden
kann, können diese Felder gesperrt werden. Dies wird in der Entwurfsansicht bewerkstelligt, indem man
das Feld “Semester“ mit der rechten Maustaste anklickt und aus dem Kontextmenü die Eigenschaften
wählt.
Um zu vermeiden, dass der Benutzer im Notenformular neue Studierende anlegt, wird in der Entwurfsansicht
der Formularmarkierer des Hauptformulars doppelt angeklickt und bei den Formulareigenschaften im
Register ALLE der Punkt Anfügen zulassen auf Nein gesetzt.
18
8. Datenauswertung
Nicht nur zur Erstellung von Formularen, sondern auch zur Auswertung von Daten sind Abfragen gut
geeignet.
Beispiel 1:
Es soll der Notendurchschnitt aus den drei eingetragenen Noten der Tabelle “Noten“ berechnet werden.
Zu bewerkstelligen ist dies durch einen spezifischen Eintrag in einem zusätzlichen, leeren Abfragefeld. Es
handelt sich dabei um eine horizontale Berechnung von einzelnen Datensätzen.
Aus der Tabelle “Studierende“ und der Tabelle “Noten“ wird eine neue Abfrage zusammengestellt, die man
dann unter dem Namen “Berechnung Gesamtnote“ abspeichert. Benötigt werden die Felder Vorname und
Nachname aus der Tabelle “Studierende“ sowie aus der Tabelle “Noten“ die Teilnoten aus Access,
Programmieren und Theorie. In das erste freie Feld des Abfrageentwurfs wird folgender Eintrag
geschrieben: Gesamtnote: ([Note Access]+[Note Programmieren]+[Note Theorie])/3. Ein Feld wird
angesprochen, indem der Feldname in eckige Klammern gesetzt wird, also [Feldname]. Durch die runden
Klammern wird die mathematische Rechenabfolge festgesetzt. Der neue Feldname, der nur in der Abfrage
existiert, wird vorangesetzt und mit einem Doppelpunkt vom Berechnungsausdruck getrennt.
Beim Ausführen der Abfrage erscheint dann ein zusätzliches Feld mit dem Titel “Gesamtnote“, in dem die
berechneten Felder aufgelistet sind.
Beispiel 2:
Es soll der Mittelwert der einzelnen Teilnoten ausgerechnet werden, was über eine vertikale Berechnung
passiert. Man erstellt eine neue Abfrage unter Zuhilfenahme der Tabelle “Noten“. Im Abfragebereich benötigt
man die Felder “Note Access“, “Note Programmieren“ und “Note Theorie“. Anschließend wird in der
Entwurfansicht das Summensymbol angeklickt, woraufhin in jedem Feld eine zusätzliche Zeile Funktion
eingeblendet wird. Aus der Drop-Down-Liste wird dann die Funktion Mittelwert ausgewählt. Als Kriterium
kann bei allen drei Feldern >0 eingegeben werden, damit nur die Felder in der Berechnung berücksichtigt
werden, wo es auch wirklich Einträge gibt. Führt man dann die Abfrage durch, wird aus den einzelnen Noten
der Mittelwert berechnet.
Beispiel 3:
19
Um Studierende über fehlende Leistungsfeststellungsprüfungen informieren zu können, können mittels
Abfrage aus der Datenbank jene Studierende herausgesucht werden, denen eine oder mehrere Teilnoten
fehlen. Die Abfrage setzt sich aus allen drei Tabellen zusammen – ihr liegt folgender Entwurf zugrunde:
Durch die Kriterien Ist Null werden jene Datensätze herausgefiltert, in denen keine Noten in den jeweiligen
Teilbereichen eingetragen sind. Werden die Kriterien im Abfragentwurf untereinander angeführt, so sind sie
über eine Oder-Verknüpfung verbunden. Hat also ein Studierender entweder keine Note in Access oder
keine Note im Programmieren oder keine Theorienote, dann wird er bei dieser Abfrage “erwischt“.
9. Berichte
Man kann zwar Tabellen und Abfragen direkt ausdrucken, viel wirkungsvoller werden die Daten aber in
Berichten angezeigt und zusammengefasst, wobei ein Bericht Daten aus mehreren Abfragen und Tabellen
enthalten kann.
Es soll beispielsweise eine übersichtliche Darstellung aller Semester eines Schuljahres samt
dazugehörigen Studierenden und deren Noten verfasst werden. Zur Einschränkung des Schuljahres bietet
sich eine Parameterabfrage an. Hierfür wird lediglich die Tabelle “Semester“ benötigt und von dieser die
Felder “Schuljahr“, “Semester“ und “ID-Semester“. Für das Feld “Schuljahr“ wird ein entsprechender
Parameter gesetzt.
Aus dieser Abfrage mit dem Titel “Auswahl Schuljahr“ sowie den Tabellen “Studierende“ und “Noten“ soll
sich nun der Bericht zusammensetzen.
1. Im Datenbankobjekt Berichte wird ein neuer Bericht mit Hilfe des Assistenten erstellt.
2. Man wählt aus der zuvor erstellten Abfrage das Feld “Semester“ aus, fügt dann noch aus der Tabelle
“Studierende“ den Nach- sowie den Vornamen hinzu und zum Schluss wählt man aus der Tabelle
“Noten“ die Noten aus Access, Programmieren und Theorie.
3. Im folgenden Auswahlfenster, wo nach dem gewünschten Aussehen gefragt wird, wird “nach Noten“
gewählt. Dadurch hat man im darauf folgenden Schritt die Möglichkeit, selbst eine Gruppierung
vorzunehmen.
20
4. Im nächsten Auswahlfenster kann man eine Gruppierung vornehmen. In diesem Beispiel sollen die
Studierenden nach Semestern geordnet werden, also fügt man “Semester“ als Gruppierungsebene
hinzu.
5. Als nächstes gibt es die Möglichkeit, eine Sortierung durchzuführen – es wird der Nachname in der
aufsteigenden Sortierung eingegeben.
6. Weiters wird das Layout festgelegt – es wird Abgestuft und Querformat eingestellt.
7. Außerdem kann noch ein Format gewählt werden. Im Vorschaufenster wird das Format des
Berichtes angedeutet.
8. Zum Abschluss wird noch ein Speichername für den Bericht eingegeben, z.B. “Übersicht
Studierende + Noten“.
In der Entwurfsansicht kann der Bericht dann noch optisch aufbereitet werden.
Man könnte z.B. bei der Erstellung des Berichts das Feld "Schuljahr" aus der Abfrage "Auswahl Schuljahr"
mitberücksichtigen und dann im Bericht in die Kopfzeile verschieben, so dass das Blatt folgendes Aussehen
hat:
21
10. Verknüpfte Formulare
Neben der Möglichkeit Formulare mit Unterformularen zu erstellen, kann man auch Formulare miteinander
verknüpfen. In diesem Fall werden zwar wieder zwei Formulare erstellt, allerdings wird das Unterformular
nicht in das übergeordnete Formular eingefügt, sondern die Verbindung vom Hauptformular zum
untergeordneten Formular erfolgt über eine Schaltfläche.
Als Beispiel kann ein Formular erstellt werden, in dem alle Studierenden angezeigt werden, und durch einen
Klick auf eine Schaltfläche kann man sich die Noten des jeweiligen Studierenden anzeigen lassen. Dieses
Formular lässt sich auf der Basis der Tabellen "Studierende" und "Noten" anfertigen – man lässt sich auch
dabei wieder vom Formularassistenten führen:
Nachdem man die benötigten Felder aus den beiden Tabellen ausgewählt hat, wird im nächsten Schritt die
Option Verknüpfte Formulare angeklickt. Zum Schluss müssen wieder zwei Speichernamen vergeben
werden (z.B. "Notenübersicht" und "Notenübersicht Verknüpfungsformular").
Das 1.Formular sieht dann wie folgt aus, zur Notenübersicht gelangt man über den Button Noten anzeigen,
der nachträglich im Formularentwurf so genannt wurde (standardmäßig erhält er den Namen, der dem
verknüpften Formular gegeben wurde).
11. Spezialabfragen
Neben den bereits vorgestellten Auswahl- und Parameterabfragen gibt es noch eine ganze Reihe weiterer
Abfragetypen, die im Folgenden anhand von konkreten Beispielen vorgestellt werden.
22
11.1. Kreuztabellenabfragen
Mit Hilfe von Kreuztabellen lassen sich vielfältige Informationen in einer kompakten Tabellenform anzeigen.
Die Informationen werden dabei sowohl horizontal als auch vertikal gruppiert, so dass das Datenblatt
kompakter und einfacher zu analysieren ist. Außerdem lassen sich bequem Berechnungen (z.B. Summen,
Mittelwerte usw.) durchführen.
Beispiel 1:
Es soll die Anzahl der Studierenden in den jeweiligen Semestern nach Schuljahren geordnet angezeigt
werden.
Dabei geht man zuerst vor wie bei der Erstellung einer Auswahlabfrage. Man fügt der Abfrage die Tabellen
"Semester" und "Studierende" hinzu und wählt die Felder "Schuljahr", "Semester" und "Nachname" aus.
Dann öffnet man das Menü ABFRAGE und wählt dort den Menüpunkt KREUZTABELLENABFRAGE aus.
Daraufhin erscheinen im Abfragebereich zu jedem Feld zwei zusätzliche Zeilen, nämlich Funktion und
Kreuztabelle. Als nächstes sind in der Zeile Kreuztabelle die Zeilen- und Spaltenüberschriften zu definieren.
Diese müssen immer die Funktion Gruppierung aufweisen. Danach wird der Wert bestimmt, dem eine
Funktion zugewiesen wird. Das Schuljahr wird als Zeilenüberschrift gesetzt, das Semester als
Spaltenüberschrift. Beim Nachnamen wird die Sortierung: Wert ausgewählt und die Funktion: Anzahl.
Die Kreuztabellenabfrage wird unter dem Namen "Kreuztabelle Anzahl Studierende" abgespeichert. Beim
Öffnen in der Datenblattansicht erhält man die gewünschte Darstellung.
Beispiel 2:
Möchte man sich die Durchschnittsnoten aller Studierenden nach Semestern geordnet ansehen, muss der
Entwurf wie folgt aussehen:
23
Markiert man die 3.Spalte und klickt mit der rechten Maustaste darauf, kann man bei den Eigenschaften das
FORMAT Festkommazahl einstellen, damit beim Notendurchschnitt nur zwei Kommastellen angegeben
werden. Fertig gestellt erhält man folgenden Überblick:
11.2. Tabellenerstellungsabfragen
Tabellenerstellungsabfragen dienen als Grundlagen für Berichte und Diagramme, zum Kopieren von
Tabellen (um z.B. einen bestimmten Stand festzuhalten) sowie zur Erhöhung der Leistungsfähigkeit von
Mehr-Tabellen-Formularen und -Berichten.
Will man etwa die Daten der Studierenden in einer neuen Tabelle abspeichern, wird zunächst wieder eine
Auswahlabfrage erstellt. Aus der Tabelle "Studierende" werden alle Felder in den Abfragebereich
übernommen. Im Menü ABFRAGE wählt man dann den Menüpunkt TABELLENERSTELLUNGSABFRAGE
aus. Es erscheint eine Dialogfenster, in dem der Name der neuen Tabelle eingegeben werden soll
("Studierendendaten alt"). Diese neue Tabelle soll in der aktuellen Datenbank erstellt werden. Man könnte
sie allerdings auch in einer anderen Datenbank abspeichern. Schließt man die Abfrage, wird noch der
Speichername für die Tabellenerstellungsabfrage vergeben ("Tabellenerstellung Studierendendaten alt").
Da es zu einer Änderung der Daten kommt, wird sofort folgende Warnung eingeblendet:
Bestätigt man mit Ja, wurden alle Daten kopiert. Öffnet man nun die neue Tabelle, sieht man, dass alle
Daten kopiert wurden.
11.3. Löschabfragen
Mit Löschabfragen werden nicht einzelne Werte, sondern immer ganze Datensätze einer Tabelle gelöscht.
Sind die zu löschenden Daten auf mehrere Tabellen verteilt, ergeben sich für Löschabfragen einige
Einschränkungen:
 aus einer 1:n-Beziehung werden nur die Daten der n-Beziehung gelöscht
 ist die referentielle Integrität aktiviert, lassen sich Datensätze, zu denen untergeordnete Daten
existieren, nicht ohne (ungewollten) Datenverlust löschen.
Diese Probleme können jedoch umgangen werden, wie das folgende Beispiel zeigt: Es sollen alle Daten
eines Studierenden gelöscht werden, und zwar nicht nur seine persönlichen Daten, sondern auch seine
Noten.
Eine Löschabfrage wird anfangs wieder wie eine Auswahlabfrage erstellt. Dazu benötigt man aus der
Tabelle "Studierende" die Felder "Nachname" und "Vorname". Diesen kann man als Parameter definieren.
Falls nur [Nachname] und [Vorname] als Kriterien verwendet werden, müssen diese angemeldet werden.
Danach wird aus dem Menü ABFRAGE der Punkt LÖSCHABFRAGE ausgewählt, woraufhin die Zeile
Löschen im Abfragebereich erscheint.
24
Die Abfrage kann nun abgespeichert werden, z.B. unter "Studierende löschen".
Damit die Löschabfrage ohne Fehlermeldung ausgeführt wird, muss zuerst noch eine Veränderung an der
Beziehung zwischen den Tabellen "Studierende" und "Noten" vorgenommen werden, denn man will ja,
dass sämtliche Daten des Studierenden eliminiert werden. Im Beziehungsfenster klickt man deshalb die
Verknüpfung zwischen den beiden genannten Tabellen doppelt an und aktiviert im erscheinenden Fenster
die Auswahl Löschweitergabe an verwandte Datensätze. Will man nun die Löschabfrage durchführen,
wird man wieder von Access gewarnt, dass durch die Abfrage Daten verändert werden.
Bestätigt man mit Ja, und gibt die entsprechenden Parameter ein, wird der gewählte Studierende gelöscht,
was man sofort in der Tabelle "Studierende" überprüfen kann.
11.4. Anfügeabfragen
Anfügeabfragen fügen komplette Datensätze oder einzelne Felder in eine Tabelle ein, die sich in derselben
oder in einer anderen Datenbank befindet.
Will man z.B. Studierendendaten aus einer anderen Datenbank an die Tabelle "Studierende" der
Schülerverwaltungsdatenbank anfügen, geht man wie folgt vor:
 Zuerst wird in einer neuen Datenbank eine Tabelle "Schüler" angelegt, die exakt die gleichen Felder
beinhalten soll, wie die Tabelle "Studierende" – nur das Feld "ID-Studierende" ist nicht unbedingt
nötig. Es ist darauf zu achten, dass die Felder wirklich identische Bezeichnungen haben, denn
ansonsten werden sie bei Ausführung der Anfügeabfrage ignoriert.
 Als nächstes gibt man in diese Tabelle ein paar Datensätze ein.
 In der neuen Datenbank wird eine Auswahlabfrage erstellt (wieder mit allen Feldern der neuen
Tabelle "Schüler").

Im Menü ABFRAGEN ist dann der Punkt ANFÜGEABFRAGE zu wählen, woraufhin ein
Dialogfenster erscheint, in dem Datenbank und Tabellenname ausgewählt werden, wo die Anfügung
stattfinden soll.
25

Wird dann die Anfügeabfrage gespeichert und neuerlich geöffnet (also ausgeführt), was natürlich in
diesem Fall in der neuen Datenbank passieren muss, erfolgt im Hintergrund das Anfügen der Daten
an die Schülerverwaltungsdatenbank, was sich in dieser dann leicht überprüfen lässt.
11.5. Aktualisierungsabfragen
Mit Aktualisierungsabfragen lassen sich Feldinhalte ausgewählter Datensätze verändern.
Angenommen die PLZ von Salzburg würde sich ändern und nunmehr 5000 lauten, dann könnte man alle
Datensätze, in denen die alte PLZ vorkommt, mit einer einzigen Aktualisierungsabfrage auf den neuesten
Stand bringen.
Man stellt dafür wieder eine Auswahlabfrage zusammen, in der eigentlich nur die PLZ vorkommt. Dann wird
aus dem Menü ABFRGAGE die AKTUALSIERUNGSABFRAGE ausgewählt. Als Kriterium gibt man den zu
ändernden Wert ein, also in diesem Fall 5020. Natürlich kann das Kriterium auch in einem anderen Feld
definiert werden. In der Zeile Aktualisieren ist der neue Wert zu festzusetzen, also 5000. Führt man dann die
Abfrage durch, werden in der Tabelle "Studierende" die PLZ-Felder sämtliche Datensätze geändert, in denen
die Salzburger PLZ vorkommt.
Nachdem diese Änderungen natürlich unsinnig waren, können sie durch eine neue Aktualisierungsabfrage
(Kriterium: 5000, Aktualisieren: 5020) rückgängig gemacht werden.
11.6. Abfragen über Abfragen
Abfragen lassen sich nicht nur auf der Basis von Tabellen erstellen, sondern auch ausgehend von Abfragen.
Möchte man z.B. wissen, wie viele Studierende Access mit einem Sehr gut abgeschlossen haben, dann ist
zuerst eine Abfrage notwendig, in der alle Studierenden mit der Note Sehr gut in Access herausgefiltert
werden.
26
In einer zweiten Abfrage, in der als Datenquelle nicht eine Tabelle, sondern aus dem Register Abfragen die
zuvor erstellte gewählt wird, wird dann ermittelt, wie viele Studierende dieses Kriterium erfüllen. Damit die
Anzahl an Datensätzen ermittelt werden kann, werden über das Summensymbol die Funktionen aufgerufen,
und aus diesen wählt man dann die Funktion Anzahl aus.
12. Formulare manuell bearbeiten
Mit dem Assistenten lassen sich zwar ganz passable Formulare (und auch Berichte) erstellen, häufig ist
jedoch noch eine manuelle Nachbearbeitung notwendig. Das nachträgliche Verändern eines Formulars
erfolgt immer in der Entwurfsansicht.
12.1. Bestandteile von Formularen
Alle Objekte in einem Formular werden als Steuerelemente bezeichnet. Die Daten stehen in sog.
Textfeldern, während die Beschriftung in Bezeichnungsfeldern steht.
Ein Formular lässt sich in mehrere Bereiche unterteilen:
 Formularkopf: Er dient zum Anzeigen des Titels eines Formulars, für Anleitungen zu seiner
Verwendung oder zur Darstellung von Befehlsschaltflächen, die andere Formulare öffnen oder
andere Aufgaben erledigen. Wird ein Formular ausgedruckt, erscheint der Formularkopf nur auf der
ersten Seite. Bei der Bildschirmanzeige erscheint er bei jeder Bildschirmseite.
 Seitenkopf: Er erscheint nur in gedruckten Formularen auf jeder Seite ganz oben (auf der ersten
Seite unter dem Formularkopf). Im Prinzip hat der Seitenkopf dieselbe Funktion wie eine Kopfzeile in
der Textverarbeitung.
 Detailbereich: Dieser Bereich enthält die Felder der entsprechenden Tabellen, dient also zur
Anzeige der Datensätze.
 Seitenfuß: Das Gegenstück zum Seitenkopf wird auf jeder Seite unten ausgedruckt, entspricht also
der Fußzeile.
 Formularfuß: Er erscheint beim gedruckten Formular nur auf der letzten Seite ganz am Ende. Bei
der Bildschirmansicht erscheint der Formularfuß am Ende jedes Fensters.
Zu jedem Objekt im Formular gehören mehrere Eigenschaften. Je komplexer das Objekt ist, desto mehr
Eigenschaften besitzt es. Durch einen Doppelklick auf ein Objekt wird dessen Eigenschaftsfenster geöffnet.
Das gesamte Formular besitzt insgesamt 107 Eigenschaften.
Grundsätzlich stehen bei jedem Objekt folgende Eigenschaftsregister zur Verfügung:
 Format: Hier kann das Aussehen des Objekts (Hintergrund- und Textfarbe, Textgröße, Rahmenart,
Größe usw.) verändert werden.
27
Feld kann unsichtbar
gemacht werden
werden diese Eigenschaften auf
Ja gesetzt, wird es Access
ermöglicht, den Bereich
gegebenenfalls so groß bzw. so
klein als nötig anzulegen.
 Daten: Hier werden alle wichtigen Eigenschaften in Bezug auf Daten aufgelistet, wie z.B. die
Datenherkunft, der Steuerelementinhalt, die Länge, das Eingabeformat usw. Durch die Aktivierung
der Eigenschaft Gesperrt, kann verhindert werden, dass der Benutzer in dieses Feld Daten eingibt.
 Ereignis: In diesem Register werden alle möglichen Ereignisse angeführt, bei denen Makros oder
Access-Basic-Code ausgeführt werden.
 Andere: Die Eigenschaft Name legt den internen Namen des Objekts fest, unter dem das Objekt
dann in einem Programmcode angesprochen wird. Ist die Eigenschaft PopUp auf Ja gesetzt, so ist
dieses Formular immer im Vordergrund und wird nicht von anderen Fenstern überdeckt. Wird die
Eigenschaft Gebunden auf Nein gesetzt, kann bei geöffnetem Formular auch auf andere Objekte der
Datenbank (also Tabellen, Formulare usw.) zugegriffen werden.
Erscheinen hinter einer Eigenschaft beim Anklicken drei Punkte, so steht ein weiteres Auswahlfenster zur
Verfügung. Durch einen Pfeil lässt sich eine Auswahlliste öffnen.
Werden Eigenschaften verändert, kann man die Ergebnisse immer gleich in der Formularansicht
begutachten.
12.2. Arbeitstechniken
12.2.1. Raster einstellen
Der Assistent verwendet bei der Ausrichtung von Steuerelementen ein Rasterverfahren. Ein solches Raster
ist natürlich auch bei der manuellen Nachbearbeitung von Nutzen. Es lässt sich bei der Formulareigenschaft
Format beliebig fein bzw. grob einstellen. Sowohl für die x- als auch für die y-Achse ist ein Wert von 10
voreingestellt. Das Gitternetz von 1 cm horizontal und 1 cm vertikal ist also in beiden Dimensionen zehnfach
geteilt. Für die Praxis ist ein 2-mm-Raster ganz gut geeignet, was also bedeutet, dass der Wert auf 5
einzustellen wäre.
12.2.2. Steuerelemente verschieben
Alle Steuerelemente lassen sich auf der Formularfläche beliebig verschieben. Allerdings sollten
Bezeichnungs- und Textfeld dabei immer zusammenbleiben.
Wird ein Textfeld mit der Maus angeklickt, erscheinen rundherum Markierungspunkte. Berührt man dann
mit dem Mauszeiger den Rand, erscheint eine Hand mit fünf Fingern. Klickt man nun auf die Maus, kann
man mit gedrückter Maustaste das Text- und das dazugehörige Bezeichnungsfeld gemeinsam
verschieben. Erscheint bei der Berührung mit dem Mauszeiger eine Hand mit Zeigefinger und Daumen,
kann durch Anklicken das Steuerelement separat verschoben werden.
Sollen mehrere Objekte gleichzeitig umgruppiert werden, können sie hintereinander mit gedrückter
Umschalttaste angeklickt und so markiert werden. Es lassen sich mehrere benachbarte Objekte auch durch
das Aufziehen eines imaginären Rahmens (so wie das auch in anderen Programmen funktioniert)
gemeinsam markieren. Will man alle Steuerelemente markieren, kann hierzu die Tastenkombination
STRG+A verwendet werden.
Will man eine Feineinstellung der Position von Steuerelementen vornehmen, so gelingt dies am besten
durch Ziehen mit gedrückter STRG-Taste.
28
Die Größe von Steuerelementen lässt sich durch die Pfeiltasten in alle Richtungen vergrößern oder
verkleinern.
13. Steuerelemente erstellen
Grundsätzlich unterscheidet man drei Kategorien von Steuerelementen:
 Gebundene Steuerelemente: Sie sind mit einer Tabelle oder Abfrage verknüpft und werden
eingesetzt, um den Inhalt von Feldern darzustellen. Bei gebundenen Steuerelementen lässt sich die
Datenherkunft im Eigenschaftsregister Daten unter der Eigenschaft Steuerelementinhalt leicht
nachvollziehen. Hier wird angegeben, aus welchem Feld die Daten stammen. Schaut man in den
Formulareigenschaften unter Daten nach, kann man in der Eigenschaft Datenherkunft die zugrunde
liegende Tabelle oder Abfrage eruieren.
 Ungebundene Steuerelemente: Diese sind weder mit einem Feld einer Tabelle noch einem Feld
einer Abfrage verknüpft. Sie können für beliebige Informationen aber auch für Eingaben, die nicht
gespeichert werden, genutzt werden. Z.B. könnte man im Semestereingabe-Formular ein
Bezeichnungsfeld aufziehen, welches darauf hinweist, dass auf jeden Fall das Schuljahr und das
Semester einzugeben sind.
Es lässt sich übrigens jederzeit aus einem ungebundenen Steuerelement ein gebundenes machen.
Dazu ist lediglich die Datenherkunft anzugeben.
 Berechnete Steuerelemente: Sie sind mit einer Berechnung verknüpft. Möchte man z.B. im
Formularkopf das aktuelle Datum sehen, vergrößert man den Formularkopf, indem man mit der
Maus zwischen Formularkopf und Detailbereich zeigt und dann, wenn aus dem Pfeil ein Doppelpfeil
wird, mit gedrückter Maustaste die Trennlinie nach unten verschiebt. Mit Hilfe der Toolbox wird dann
ein Textfeld aufgezogen, welches zunächst einmal als ungebundenes Steuerelement definiert ist. In
den Eigenschaften dieses Textfeldes wird anschließend im Register Daten unter der Eigenschaft
Steuerelementinhalt der Code =Datum() eingegeben. Wird das Formular dann in der
Formularansicht geöffnet, sieht es wie folgt aus:
29
Der Ausdruck Datum() ist genauso wie der Ausdruck Zeit () oder Jetzt() eine vordefinierte VisualBasic-Funktion.
13.1. Steuerelemente hinzufügen mit der Feldliste
Wird ein weiteres Feld im Formular benötigt, kann es aus der Tabelle oder Abfrage, die als Formularbasis
gedient hat, hinzugefügt werden. Mit einem Klick auf das entsprechende Symbol lässt sich die Feldliste
öffnen und daraus ein zusätzliches Feld auswählen.

Symbol für das Anzeigen der Feldliste
13.2. Steuerelemente hinzufügen mit der Toolbox
Es soll eine leeres Formular erstellt werden, das dann nach und nach mit Steuerelementen gefüllt wird. Das
leere Formular erhält man, indem man im Bereich Formulare den Punkt Erstellt ein Formular in der
Entwurfsansicht wählt oder über das Symbol NEU die Entwurfsansicht auswählt. Das neue Formular wird
unter dem Namen "Information Studierende" gespeichert. Da nur der Detailbereich angezeigt wird,
erweitert man das Formular am besten gleich mit dem Formularkopf/-fuß, der über das Menü ANSICHT
eingeblendet werden kann. Falls die Toolbox nicht angezeigt werden sollte, kann diese mit Hilfe des
Werkzeugsymbols eingeblendet werden.

Symbol zum Aufrufen der Tollbox
Hier ein kurzer Überblick über die einzelnen Symbole de Toolbox:
Objekte markieren
Steuerelement-Assistenten
Bezeichnungsfeld
Textfeld
Optionsgruppe
Optionsfeld
Kombinationsfeld
Befehlsschaltfläche
Objektfeld
Seitenumbruch
Unterformular/Unterbericht
Rechteck
Umschaltfläche
Kontrollkästchen
Listenfeld
Bild
Gebundenes Objektfeld
Registersteuerelement
Linie
Weitere Steuerelemente
Als erstes sollen im Formularkopf zwei Bezeichnungsfelder aufgezogen werden, in die die Titel
"Abendgymnasium Salzburg" und "Studierendeninformationen" eingetragen werden. Diese Steuerelemente
können nach Belieben gestaltet werden (Hintergrundfarbe, Textfarbe, Textgröße, usw.).
Im Detailbereich werden nun der Reihe nach die Textfelder für den Namen, die Anschrift, Telefonnummer,
Mail-Adresse und das Geburtsdatum erstellt. Damit Access die Daten auch richtig verarbeiten kann, muss
30
die Datenherkunft geklärt werden. Nachdem alle Felder aus der Tabelle "Studierende" stammen, wird bei
den Formulareigenschaften im Register Daten bei der Eigenschaft Datenherkunft die Tabelle
"Studierende" ausgewählt. Erst wenn die Herkunft der Daten für das gesamte Formular definiert ist, können
die Steuerelementinhalte der einzelnen Textfelder bestimmt werden. Würde dieser Schritt vor der
Datenbereitstellung für das gesamte Formular erledigt werden, würde in der Formularansicht eine
Fehlermeldung erscheinen.
Hat man die Datenherkunft für das Formular bestimmt, kann man sich die Feldliste anzeigen lassen, und aus
der Feldliste die Felder in den Detailbereich ziehen, die im Formular gewünscht sind. Natürlich können die
einzelnen Textfelder auch über die Toolbox erstellt werden, wobei dann bei jedem Textfeld der
Steuerelementinhalt zu definieren ist.
Als günstig erweist es sich, wenn jedem Text- und Bezeichnungsfeld ein eigener Name gegeben wird (im
Register Alle Eigenschaft Name), damit später jedes Steuerelement eindeutig identifiziert werden kann.
Nachdem man alle Textfelder und die dazugehörigen Bezeichnungsfelder formatiert und nach seinen
Vorstellungen gestaltet hat, kann man mit Linien oder Rechtecken das Formular noch übersichtlicher
gestalten. Weiters könnte auch noch ein Bild eingefügt werden, z.B. in den Formularkopf, und am Schluss
könnte das Formular folgendes Aussehen haben (Datensatzmarkierer und Trennlinien sind bei den
Formulareigenschaften auf Nein gesetzt worden):
31
Mit Befehlsschaltflächen lassen sich verschiedene Aktionen ausführen. Man kann mittels
Befehlsschaltfläche Daten speichern, einen neuen Datensatz anlegen, ein Formular öffnen bzw. schließen
oder durch ein angelegtes Menü navigieren, wobei im Hintergrund ein kleines Programm (eine sog.
Prozedur) abläuft.
In Formularen werden z.B. die Navigationsschaltflächen häufig durch Befehlsschaltflächen ersetzt. Dieses
Beispiel soll im folgenden Abschnitt demonstriert werden.
Auf dem zuvor erstellten Formular sollen im Formularfuß folgende Schaltflächen aufscheinen:
Erster
Datensatz
Vorheriger
Datensatz
Nächster
Datensatz
Letzter
Datensatz
Datensatz
hinzufügen
Außerdem soll eine Schaltfläche zum Schließen des Formulars erstellt werden.
In der Entwurfsansicht des Formulars wird aus der Toolbox die Schaltfläche für Befehlsschaltflächen
ausgewählt und im Formular an geeigneter Stelle eine Fläche aufgezogen. Automatisch gelangt man dann in
den Befehlsschaltflächen-Assistenten. In der Kategorie Formularoperationen wird die Aktion Formular
schließen ausgewählt. Klickt man auf Weiter, kann im nächsten Schritt noch ein Beschriftungstext oder ein
Bild für die Schaltfläche ausgesucht werden, z.B. das Exit-Symbol. Im letzten Schritt wird noch der Name der
Schaltfläche eingegeben (etwa "btnSchließen").
Die Navigationsschaltflächen werden auf ähnliche Weise produziert. Unter der Kategorie
Datensatznavigation sind die verschiedenen Navigationsaktionen zu finden. In diesem Beispiel benötigt man
die Aktionen Gehe zu ersten/letzte Datensatz sowie Gehe zum vorherigen/nächsten Datensatz. Schließlich
ist aus der Kategorie Datensatzoperationen noch die Aktion Neuen Datensatz anfügen zu wählen. Den
Schaltflächen sollten wieder eindeutige Namen zugeordnet werden (beginnend mit btn für Button).
Damit nur diese Schaltflächen zum Navigieren verwendet werden, wird in den Formulareigenschaften die
Eigenschaft Navigationsschaltflächen auf Nein gesetzt.
Hier das Ergebnis:
32
Diese sechs Schaltflächen sollen nun auch auf den Formularen "Semestereingabe" und "Noteneingabe"
angebracht werden.
14. Makros
Ein Makro ist eine Abfolge von Aktionen, die sich mit einem Tastendruck oder Mausklick starten lässt und
dann automatisch abläuft.
Es soll für die bestehende Datenbank ein Menü erstellt werden, das automatisch beim Öffnen der
Datenbank erscheint. Durch Schaltflächen soll es dem Benützer ermöglich werden, bequem zu den
einzelnen Formularen und wieder zurück ins Menü zu gelangen. Dieses Menü soll folgendes Aussehen
haben:
Klickt man auf die Schaltfläche Studierende eingeben, gelangt man zum Formular "Semestereingabe".
Praktisch ist es, wenn das aufgerufene Formular gleich im Vollbildmodus geöffnet wird. Dazu müssen im
entsprechenden Formular die Eigenschaften folgendermaßen eingestellt werden:
Eigenschaft
Bildlaufleisten
Datensatzmarkierer
Wert
Nein
Nein
Navigationsschaltflächen
PopUp
Nein
Ja
Gebunden
Ja
Bedeutung
Der Datensatzmarkierer wird nur benötigt, wenn ein Datensatz
gelöscht werden soll.
PopUp-Formulare bleiben immer in Vordergrund, auch wenn es nicht
mehr aktiv ist. Ein Umschalten in den Entwurfmodus ist nicht möglich.
Wird die Eigenschaft auf Ja gesetzt, können in Access keine anderen
Aktionen mehr ausgeführt werden, solange nicht vorher das Formular
bearbeitet und geschlossen wurde. Damit lassen sich also Eingaben
erzwingen. Alle anderen Fenster (auch nicht das Datenbankfenster)
33
und die Menüleiste sind nicht benutzbar.
Achtung bei gebundenen PopUp-Formularen: Fehlt die Möglichkeit
zum Schließen, kann Access nur mehr mittels Task-Manager
geschlossen werden!
Rahmenart
Mit Systemmenüfeld
Keine
Nein
MinMaxSchaltfläche
SchließenSchaltfläche
Kontextmenü
Keine
Nein
Nein
Die Einstellung Nein bewirkt, dass nach dem Öffnen des Formulars
weder das Systemmenü-Symbol in der linken oberen Fensterecke
noch drei Kästchen in der rechten oberen Ecke erscheinen.
Ist das Kontextmenü auf Nein gesetzt, ist das Aufrufen des
Kontextmenüs durch die rechte Maustaste nicht möglich.
All diese Einstellungen bewirken, dass das Formular der Optik eines Dialogfeldes entspricht. Auch für das
Unterformular sind noch einige Eigenschaften zu definieren. Auch dieses ist zuvor mit
Navigationsschaltflächen zu versehen.
Eigenschaft
Bildlaufleisten
Datensatzmarkierer
Wert
Nein
Nein
Navigationsschaltflächen
Rahmenart
Mit Systemmenüfeld
Nein
Keine
Nein
MinMaxSchaltfläche
SchließenSchaltfläche
Kontextmenü
Keine
Nein
Nein
Bedeutung
Der Datensatzmarkierer wird nur benötigt, wenn ein Datensatz
gelöscht werden soll.
Die Einstellung Nein bewirkt, dass nach dem Öffnen des Formulars
weder das Systemmenü-Symbol in der linken oberen Fensterecke
noch drei Kästchen in der rechten oberen Ecke erscheinen.
Ist das Kontextmenü auf Nein gesetzt, ist das Aufrufen des
Kontextmenüs durch die rechte Maustaste nicht möglich.
Zurück zum Menü: Das Formular "Semestereingabe" soll mittels Makro automatisch geöffnet und später
dann auch wieder geschlossen werden. Im Datenbankfenster aktiviert man zunächst das Objekt Makro und
wählt dann NEU aus – das Makrofenster öffnet sich.
In die Spalte Aktion trägt man in chronologischer Reihenfolge alle Befehle ein, die dann nacheinander
abgearbeitet werden. In der Spalte Kommentar lassen sich erklärenden Anmerkungen anbringen.
Es soll nun in diesem ersten Makro zuerst ein Formular geöffnet werden. Aus dem Kombinationsfeld der
ersten Aktionszeile wird Öffnen Formular ausgewählt. Bei den Aktionsargumenten wählt man den Namen
des zu öffnenden Formulars aus, also "Semestereingabe".
34
Als nächstes soll das Formular "Menü", von dem aus das Semestereingabe-Formular aufgerufen wird,
geschlossen werden. Dabei ist der Objekttyp und -name des zu schließenden Objektes zu definieren, da
sonst das aktuelle Fenster geschlossen wird. Zum Schluss wird noch das aktuelle Fenster (in dem Fall ist
das dann das Semestereingabe-Formular) auf Vollbild gesetzt.
Der Aktionsablauf ist also wie folgt festzusetzen:
Aktion
Öffnen Formular
Maximieren
Schließen
Aktionsargumente
Formularname: Semestereingabe
Objekttyp: Formular
Objektname: Menü
Beim Schließen des Makrofensters wird man, wie gewohnt, aufgefordert, einen Speichernamen anzugeben
("Öffnen Semestereingabe").
Damit nun das Makro auch eingebunden werden kann, wird noch das Menü-Formular benötigt. Es wird also
ein neues Formular in der Entwurfsansicht erstellt und ein Bezeichnungsfeld mit dem Titel "Menü" eingefügt.
Das Formular wird unter dem Namen "Menü" abgespeichert. Dann wird die Schaltfläche erzeugt, die einen
zum Formular "Semestereingabe" führen soll. Dazu wird neben der Entwurfsansicht des Menüformulars
noch das Datenbankfenster eingeblendet (mit Hilfe des Menüs FENSTER – NEBENEINANDER). Im
Datenbankfenster wird das Objekt Makros gewählt und das Makro "Öffnen Semestereingabe" markiert. Zieht
man dieses Makro nun mit gedrückter Maustaste in das Entwurfsfenster des Menüs, wird beim Loslassen
der Maustaste an der gewünschten Stelle automatisch eine Schaltfläche kreiert, deren Aussehen (Größe,
Beschriftung, Name usw.) dann noch nach Bedarf verändert werden kann. In den Eigenschaften der
Schaltfläche wurde im Register Ereignis der Makroname eingefügt.
Natürlich könnte man die Schaltfläche auch über die Toolbox erstellen, wobei der BefehlsschaltflächenAssistent sofort abzubrechen ist. Genauso wie hier im Eigenschaftsfenster ersichtlich ist, müsste in der
Ereigniszeile Beim Klicken der entsprechende Makroname eingetragen werden.
Um das Menü zu vervollständigen wird auch das Formular "Noteneingabe" mit den entsprechenden
Schaltflächen und Eigenschaften versehen, ein Makro erstellt und die Schaltfläche zum Öffnen des
Formulars ins Menü eingetragen.
Damit von nun an beim Öffnen der Datenbank immer gleich automatisch das Menü geöffnet wird, braucht
man ein Startmakro. Man wählt also im Datenbankobjekt Makro den Befehl NEU und erstellt folgende
Aktionsabfolge:
Aktion
Öffnen Formular
Aktionsargumente
Formularname: Menü
Datenmodus: Nur Lesen
Maximieren
35
Dieses Makro wird unter dem Namen AUTOEXEC abgespeichert. Das Makro dieses Namens wird beim
Öffnen einer Datenbank automatisch beim Start abgearbeitet. Soll beim Starten verhindert werden, dass
dieses Makro abgearbeitet wird, so ist das Programm mit gedrückter Umschalttaste zu starten.
Damit man aus der Datenbank (sprich aus dem Menü) wieder aussteigen kann, ist ein neues Makro zum
Schließen des Formulars und Beenden des Programms notwendig. Will man dem Benutzer vom Menü aus
einen Zugriff auf das Datenbankfenster ermöglichen, bräuchte man eine Schaltfläche zum Schließen des
Menüs. Das Makro zum Beenden würde dann so aussehen:
Aktion
Schließen
Aktionsargumente
Objekttyp: Formular
Objektname: Menü
Verlassen
Im Menü-Formular wird dann wieder eine entsprechende Schaltfläche erstellt.
Die Eigenschaften des Menüs müssen natürlich jetzt auch noch entsprechend eingestellt werden:
Eigenschaft
Bildlaufleisten
Datensatzmarkierer
Navigationsschaltflächen
PopUp
Gebunden
Rahmenart
Mit Systemmenüfeld
MinMaxSchaltfläche
SchließenSchaltfläche
Kontextmenü
Wert
Nein
Nein
Nein
Ja
Ja
Keine
Nein
Keine
Nein
Nein
Und noch einen Schönheitsfehler hat das Menü-Konstrukt: Man kommt zwar jetzt vom Menü aus zu den
verschiedenen Formularen, aber die Formulare selbst lassen sich nur schließen. Es fehlt also die
Möglichkeit, vom Formular wieder ins Menü zu wechseln. Darum werden neue Makros erstellt:
Aktion
Öffnen Formular
Maximieren
Schließen
Aktionsargumente
Formularname: Menü
Datenmodus: Nur lesen
Objekttyp: Formular
Objektname: Semestereingabe
Noteneingabe,
Information Studierende
Die Schaltflächen zum Schließen müssen auf den jeweiligen Formularen natürlich noch mit den Makros
verknüpft werden. Dazu wählt man im Register Ereignis der jeweiligen Schaltfläche bei der Eigenschaft Beim
Klicken das passende Makro aus. Achtung auch bei der Namensvergabe bei den Makros: Die Aktionsfolgen
sollten eindeutige Namen bekommen, damit es später bei der Auswahl zu keinen Irrtümern kommt.
Folgende Makros wurden bis jetzt in der Schülerverwaltungsdatenbank erstellt:
36
Da bei umfassenden Datenbanken meist eine recht große Anzahl an Makros vorhanden ist, werden diese
sinnvollerweise zu Makrogruppen zusammengefasst. Pro Makrofenster können dann gleich mehrere
Makros erstellt werden, wobei jedem Makro ein Makroname gegeben wird. Klickt man im Makrofenster das
Symbol "Makroname" an, wird eine zusätzliche Spalte Makroname eingefügt.

Symbol zum Erstellen einer Makrogruppe
Insgesamt werden die einzelnen Makros aber unter einem Namen abgespeichert, können aber dann auch
wieder separat angesprochen (Makrogruppenname.Makroname) und ausgeführt werden.
Außerdem lassen sich in Makros bestimmte Bedingungen einbauen. Z.B. könnte man im Formular
"Semestereingabe" eine Meldung anzeigen lassen, die immer dann erscheint, wenn das Feld "Semester"
leer ist. Die Spalte Bedingung erhält man, wenn man das Symbol "Bedingung" anklickt.

Symbol zum Einfügen von Bedingungen
Das Kriterium für dieses Makro ist, ob im Feld "Semester" ein Eintrag ist oder nicht. Damit dieses Feld
angesprochen werden kann, braucht man folgende Syntax: Objektgruppe!Objektname!Steuerelementname
Beinhalten einzelne Objektnamen Leerzeichen, müssen diese Objektnamen in eckige Klammern gesetzt
werden, was man prinzipiell immer tun kann.
Das Makro müsste dann also so aussehen:
Bedingung
IstNull([Formulare]![Semestereingabe]![Semester])
Aktion
Meldung
Aktionsargumente
Meldung: Bitte Semester eingeben!
Typ: Information
Titel: Information
StopMakro
Die Funktion IstNull() prüft, ob ein Feld leer ist oder nicht. Wenn es leer ist, erscheint eine Meldung und das
Makro ist damit beendet. Natürlich könnte man noch eine Aktion eingeben, für den Fall, dass das Feld nicht
leer ist.
Dieses Makro wird nun ins Formular "Semestereingabe" eingebunden, und zwar beim Ereignis: Beim
Anzeigen.
15. Kombinationsfelder und deren Synchronisation
Als letztes Beispiel soll ein Formular erstellt werden, in dessen Kopf man aus einem Kombinationsfeld zuerst
ein Schuljahr auswählt, woraufhin ein weiteres Kombinationsfeld eingeblendet wird, aus dem ein zum
37
Schuljahr passendes Semester auszuwählen ist. Hat man auch das Semester ausgewählt, erscheint im
Detailbereich des Formulars eine Auflistung der Studierenden dieses Semester und ihrer Informatiknoten.
Dafür braucht man zuerst einmal eine Auswahlabfrage mit folgenden Feldern:
Feld:
ID-Semester
Nachname
Vorname
Tabelle:
Sortierung:
Studierende
Studierende
Aufsteigend
Studierende
Note
Access
Noten
Note
Programmieren
Noten
Note
Theorie
Noten
Das Feld " ID-Semester" wird zur eindeutigen Identifikation der Studierenden benötigt, damit Sie auch in die
richtigen semester zugeteilt werden.
Da ja auch die Studierenden angezeigt werden sollen, bei denen noch keine Noten eingetragen wurden,
sind die Verknüpfungseigenschaften zwischen den beiden Tabellen in der Abfrage wie folgt einzustellen
(durch einen Doppelklick auf die Verknüpfungslinie):
Die Abfrage wird unter dem Namen "Anzeige Studierende + Noten" abgespeichert.
Als nächstes wird ein tabellarisches Formular (Autoformular: Tabellarisch) aus der vorher erstellten
Abfrage angelegt. In der Entwurfsansicht vergrößert man dann noch den Formularkopf, in dem später die
Kombinationsfelder angebracht werden. Das Formular wird unter dem Namen "Anzeige Studierende +
Noten".
Im nächsten Schritt erfolgt die Erstellung des ersten Kombinationsfeldes für die Auswahl des
Schuljahres. Auch diesem liegt wieder eine Abfrage zugrunde, die "Anzeige Schuljahr" genannt werden
soll. Für diese Abfrage benötigt man lediglich das Feld "Schuljahr" aus der Tabelle "Semester". Es soll
aufsteigend sortiert werden. Das Problem ist, dass ja zu jedem Schuljahr meist mehrere Semester vorliegen.
Im Kombinationsfeld soll aber jedes Schuljahr nur einmal aufscheinen. Deshalb wird in den
Abfrageeigenschaften (können durch einen Klick mit der rechten Maustaste in die obere Hälfte des
Abfragefensters aufgerufen werden) Keine Duplikate auf Ja gesetzt.
Um nun das Kombinationsfeld zu erstellen, öffnet man das zuvor erstellte Formular in der Entwurfsansicht,
wählt aus der Toolbox die Schaltfläche für das Kombinationsfeld aus und zieht im Formularkopf eine
entsprechende Fläche auf. der Kombinationsfeld-Assistent hilft nun bei der weiteren Vorgehensweise:
1. Die Datenherkunft muss definiert werden. Man wählt die Option Das Kombinationsfeld soll die Werte
aus einer Tabelle oder Abfrage entnehmen.
2. Als nächstes muss die Tabelle bzw. Abfrage ausgewählt werden, aus der die Daten bezogen
werden. Man wählt die Abfrage "Anzeige Schuljahr" aus.
3. Dann wählt man die Felder aus, die im Kombinationsfeld angezeigt werden sollen, was in diesem
Fall nur das Schuljahr ist.
4. Schließlich lässt sich noch die gewünschte Breite des Kombinationsfeldes einstellen.
5. Weiters ist auszuwählen, ob der gewählte Wert in der Datenbank gespeichert oder lediglich
zwischengespeichert werden soll – man wählt die Option Zur späteren Verwendung
zwischenspeichern.
6. Eine Beschriftung wird vorgeschlagen – hier kann "Schuljahr" verwendet werden.
Nachdem man das Kombinationsfeld fertig gestellt hat, sollte ihm noch ein eindeutiger Name zugeordnet
werden (etwa "cmdSchuljahr"), was in den Eigenschaften des Kombinationsfeldes einzustellen ist.
Weiter geht es mit der Erstellung des zweiten Kombinationsfeldes für die Auswahl des Semesters. Es
sollen hier nur die Semester angezeigt werden, die auch im ausgewählten Schuljahr, d.h. in dem Schuljahr,
das im ersten Kombinationsfeld ausgewählt wurde, existieren. Die Datenbereitstellung erfolgt wieder über
38
eine Abfrage, für die man die Felder "ID-Semester" (dient zur eindeutigen Identifikation), "Schuljahr" und
"Semester" benötigt.
Damit der Eintrag aus dem Kombinationsfeld "Schuljahr" übernommen wird, nimmt man direkt auf dieses
Steuerelement Bezug. Somit muss das Kriterium im Feld "Schuljahr" lauten:
=[Formulare]![Anzeige Studierende + Noten]![cmbSchuljahr]
Allgemein spricht man ein Steuerelement mit folgender Syntax an:
[Objekttyp]![Objektname]![Steuerelementname]
Die Abfrage wird unter "Anzeige Semester" abgespeichert.
Für die Erstellung des dazugehörigen Kombinationsfeldes wird wieder der Assistent zu Rate gezogen. Die
Werte stammen aus der Abfrage "Anzeige Semester". Anzeigen lässt man die Felder "Semester" und "IDSemester", denn nur dieser Wert identifiziert eindeutig, welche Studierende in welches Semester gehören.
Die Breite des ID-Feldes wird quasi auf Null gestellt, damit es später nicht gezeigt wird. Zur eindeutigen
Identifikation wird das Feld "ID-Semester" angegeben. Wieder werden die Daten nur zur späteren
Verwendung zwischengespeichert. Und schließlich legt man noch die Beschriftung für das Kombinationsfeld
fest sowie dann nach seiner Fertigstellung den internen Namen (z.B. "cmbSemester").
Noch funktioniert die Datenübergabe vom 1.Kombinationsfeld aufs 2.Kombinationsfeld nicht. Hierfür ist die
Synchronisation der beiden Kombinationsfelder erforderlich, was mit einem kurzen Makro ("Semester
auswählen") erledigt werden kann:
Aktion
AktualisierenDaten
Aktionsargumente
Steuerelementname: cmbSemester
Der Befehl Aktualisieren Daten bewirkt, dass das Objekt neu abgefragt bzw. berechnet wird. In diesem
Beispiel heißt das, dass die Abfrage "Anzeige Semester" neu durchgeführt wird.
Das Makro muss dann noch an der richtigen Stelle eingebunden werden, und zwar gibt man bei den
Eigenschaften des "cmbSchuljahr" unter dem Register Ereignis ein, dass das Makro "Semester auswählen"
bei Änderung durchzuführen ist.
Schließlich ist noch die Ermittlung der passenden Studierendendaten notwendig, d.h. eine Synchronisation
der Datensätze mit dem "cmbSemester" steht noch aus. Dies kann man mit einem Filter bewerkstelligen.
Es wird das Formular "Anzeige Studierende + Noten" in der Formularansicht" geöffnet und aus dem Menü
DATENSÄTZE der FILTER – SPEZIALFILTER/-SORTIERUNG ausgewählt.
Im Filter wird lediglich das Feld "ID-Semester" mit folgendem Kriterium benötigt:
[Formulare]![Anzeige Studierende + Noten]![cmbSemester]
Normalerweise werden Filter nicht gespeichert. Dieser Filter muss hingegen abgespeichert werden, und
zwar als Abfrage. Im Menü DATEI wird der Punkt ALS ABFRAGE SPEICHERN ausgewählt und der
Speichername "Filter" eingegeben.
Im Kombinationsfeld "cmbSemester" ist der eindeutige Wert "ID-Semester" zwischengespeichert. Dieser
Wert soll nun in das Feld "ID-Semester" der folgenden Datensätze übernommen werden.
Sobald sich die Semesterwahl verändert, soll dieser Filter angewendet werden. Ein Makro macht dies
möglich:
Aktion
AnwendenFilter
Aktionsargumente
Filtername: Filter
Das Makro wird unter dem Namen "Filter anwenden" gespeichert. Eingebaut wird es in den Eigenschaften
des "cmbSemester", wo es Bei Änderung ablaufen soll.
39
Das Formular müsste jetzt eigentlich funktionieren. Vielleicht würden noch ein paar optische
Verschönerungen nicht schaden …
 Man könnte z.B. über den Kombinationsfeldern Bezeichnungsfelder einfügen, die die Aufschrift
"Bitte wählen Sie ein Schuljahr (bzw. Semester) aus" tragen. Man gibt ihnen entsprechende Namen,
nämlich "lblSchuljahr" und "lblSemester".
 Weiters sollte beim Öffnen des Formulars nur das 1.Bezeichnungsfeld sowie das dazugehörige
Kombinationsfeld erscheinen. Bei allen anderen Steuerelementen (also beim 2. Bezeichnungsfeld
und dem dazugehörigen Kombinationsfeld) wird die Eigenschaft Sichtbar auf Nein gesetzt.
Außerdem ändert man die Sichtbarkeit des gesamten Detailbereichs des Formulars.
 Damit die unsichtbar gesetzten Felder und Datensätze dann im richtigen Augenblick wieder sichtbar
werden, muss man die zuvor erstellten Synchronisationsmakros noch erweitern:
MAKRO "SEMESTER AUSWÄHLEN"
Aktion
AktualisierenDaten
SetzenWert
Aktionsargumente
Steuerelementname: cmbSemester
Element: [lblSemester].[Sichtbar]
Ausdruck: Ja
Element: [cmbSemester].[Sichtbar]
Ausdruck: Ja
Element: [Detailbereich].[Sichtbar]
Ausdruck: Nein
SetzenWert
SetzenWert
Durch den Befehl SetzenWert kann man den Wert eines Formularfeldes, aber auch die
Eigenschaften eines Steuerelements verändern. Die Eigenschaft des Steuerelements wird dabei so
angesprochen:
[Steuerelementname].[Eigenschaft]
MAKRO "FILTER ANWENDEN"
Aktion
AnwendenFilter
SetzenWert
Aktionsargumente
Filtername: Filter
Element: [Detailbereich].[Sichtbar]
Ausdruck: Ja
Die Abfolge sieht nun folgendermaßen aus:
1.
2.
40
3.
16. Formulare mit Suchfunktion
Es soll ein Formular erstellt werden, in dessen Kopf man den Vor- und Nachnamen eines Studierenden
eingeben kann und über einen entsprechenden Button eine Suchabfrage starten kann. Im Detailbereich des
Formulars, der zunächst auf unsichtbar gestellt wurde, sollen dann die Daten des gesuchten Studierenden
(Adresse, Telefonnummer, E-Mail sowie Geburtsdatum) aufscheinen.
Es wird ein neues Formular in der Entwurfsansicht erstellt. Im Formularkopf werden zuerst zwei
unabhängige Textfelder aufgezogen. Man ändert die Beschriftungen auf "Vorname" und "Nachname" um
und gibt den Feldern die Namen "Studierendenvorname" sowie "Studierendennachname".
Weiters wird eine Befehlsschaltfläche erzeugt, über die dann ein Makro aufgerufen wird. Der Formularkopf
könnte dann etwa folgendes Aussehen haben:
In den Formulareigenschaften wird unter der Rubrik Daten die Datenherkunft eingestellt. In diesem Fall
stammen sämtliche Daten aus der Tabelle "Studierende". Es erscheint daraufhin die Feldliste mit sämtlichen
zur Verfügung stehenden Datenfeldern. Die benötigten Felder zieht man nun einfach in den Detailbereich
des Formulars. In den Eigenschaften des Detailbereichs wird unter der Rubrik Format der Wert Sichtbar
auf Nein gesetzt.
Das Formular wird unter dem Namen "Studierendensuche" abgespeichert.
Für das Auslesen des eingegebenen Studierendennamen ist eine Auswahlabfrage mit entsprechendem
Filterkriterium notwendig. Für die Abfrage werden nur die Felder "Vorname" und "Nachname" aus der
Tabelle "Studierende" benötigt. Mit Hilfe der Kriterien wird nun herausgefiltert, was der Benutzer im
Suchformular in die Felder "Studierendenvorname" und "Studierendennachname" eingetragen hat. Damit
diese Felder angesprochen werden können, braucht man folgende Syntax:
Objektgruppe!Objektname!Steuerelementname
Die Objektgruppe sind in diesem Fall die "Formulare". Der Objektname lautet "Studierendensuche" und der
Steuerelementname "Studierendenvorname" bzw. "Studierendennachname". Somit ist unter den Kriterien
folgendes einzutragen:
Wie [Formulare]![Studierendensuche]![Studierendenvorname]
Wie [Formulare]![Studierendensuche]![Studierendennachname]
41
Man kann um die jeweiligen Elemente auch eckige Klammern setzen. Diese sind v.a. dann zwingend
notwendig, wenn sich die Elementnamen aus jeweils mehreren Wörtern zusammensetzen.
Die Abfrage wird unter dem Namen "Filter Studierende" abgespeichert.
Im letzten Schritt wird ein Makro erstellt, welches beim Betätigen der Schaltfläche die Filterabfrage aufruft
und den Detailbereich des Formulars sichtbar macht. Folgende Aktionen werden dafür benötigt:
Aktion
AnwendenFilter
SetzenWert
Aktionsargumente
Filtername: Filter Studierende
Element: [Detailbereich].[Sichtbar]
Ausdruck: Ja
Durch den Befehl SetzenWert kann man den Wert eines Formularfeldes, aber auch die Eigenschaften eines
Steuerelements verändern. Die Eigenschaft des Steuerelements wird dabei so angesprochen:
[Steuerelementname].[Eigenschaft]
Das Makro wird unter dem Namen "Studierenden suchen" abgespeichert und dann mit der
Befehlsschaltfläche des Suchformulars verknüpft. Dabei wird bei den Eigenschaften der Schaltfläche beim
Ereignis Beim Klicken das entsprechende Makro ausgewählt.
Wird nun eine Suche durchgeführt, zeigt sich folgendes Bild:
42
Herunterladen