5 Abfragen zur Analyse Ihrer Daten

Transcription

5 Abfragen zur Analyse Ihrer Daten
Abfragen zur Analyse Ihrer Daten
5 Abfragen zur Analyse Ihrer Daten
Ziele dieses Kapitels
A Sie lernen, was eine Abfrage ist.
A Sie erfahren, was eine Verknüpfung ist.
A Sie lernen verschiedene Abfragetypen kennen.
A Sie lernen die formularbasierte Abfragetechnik kennen.
Projektaufgabe in diesem Kapitel
1. Sie erstellen eine Abfrage („QRY_Adressen“) für die Tabelle „Adressen“ unter
Anwendung der formularbasierten Abfragetechnik.
Microsoft® Office Access 2003 Aufbau
- 61 -
Abfragen zur Analyse Ihrer Daten
5.1 Was sind Abfragen?
Wenn Sie eine Tabelle und eine Abfrage jeweils in der Datenblattansicht öffnen, werden Sie
auf den ersten Blick keinen großen Unterschied zwischen diesen beiden Datenbankobjekten
feststellen können.
Abb. 5.1: Vergleich einer Tabelle (oben) mit einer Auswahlabfrage
Tatsächlich können Sie eine Abfrage mit den gleichen Verfahren bearbeiten wie das
Datenblatt einer Tabelle. Im Gegensatz zu einer Tabelle, in die Sie Daten direkt eingeben
können, speichern Sie mit einer Abfrage keine Daten, sondern lediglich Regeln, mit denen
Access auf die Daten einer Tabelle zugreifen soll. Das Ergebnis einer Abfrage heißt
„Dynaset“. Dynasets sind nur so lange aktiv wie eine Abfrage geöffnet ist.
Wenn Sie eine Abfrage öffnen, bildet Access unter Verwendung dieser Regeln den Dynaset.
Schließen Sie die Abfrage, wird der Dynaset wieder gelöscht. Abfragen oder Dynasets
benötigen daher kaum Speicherplatz in einer Datenbankdatei.
Eine Abfrage kann ihrerseits auch eine oder mehrere andere Abfragen als Datenquelle(n)
verwenden. Zu irgendeinem Zeitpunkt jedoch muss eine dieser Abfragen auf eine Tabelle
zugreifen, um Zugang zu den gespeicherten Daten zu erhalten, sonst wäre die Abfrage
mangels Daten sinnlos.
- 62 -
© ikon VerlagsGesmbH, 2004
Abfragen zur Analyse Ihrer Daten
5.1.1 SQL — Das Geheimnis einer Abfrage
Wenn Sie mit Abfragen arbeiten, stoßen Sie früher oder später auf den Begriff der
SQL(„Structured Query Language“)-Anweisung. Genau genommen, genau jetzt!
SQL ist eine Sprache, mit der Sie die Daten in einer Datenbank abrufen, sortieren und filtern
können. Hinter jeder Abfrage steht eine entsprechende SQL-Anweisung, die je nach Art der
Abfrage sehr komplexe Strukturen annehmen kann.
Abb. 5.2: Eine SQL-Anweisung in der SQL-Ansicht einer Abfrage
Bei SQL handelt es sich um eine Sprache, die von vielen Datenbanksystemen sozusagen in
unterschiedlichen Dialekten gesprochen genutzt wird. Im Regelfall ist es in Access
ausreichend, den speziellen Dialekt zu beherrschen, den Access verwendet.
Erstellen Sie eine Abfrage, erstellt Access die entsprechenden SQL-Anweisungen
automatisch für Sie im Hintergrund. Letztlich bietet die Entwurfsansicht einer Abfrage
lediglich eine visuell geprägte Umgebung, um SQL-Anweisungen erstellen zu können.
Wenn Sie in Access mit einer Abfrage alle Datensätze aus der Tabelle „Artikel“ in der
Beispieldatenbank „Nordwind.mdb“ ausgeben möchten, deren Artikelname mit einem „C“
beginnt, müssten Sie die folgende Abfrage erstellen:
Abb. 5.3: Auswahlabfrage in der Entwurfsansicht
Microsoft® Office Access 2003 Aufbau
- 63 -
Abfragen zur Analyse Ihrer Daten
Wenn Sie das Pendant zu dieser Abfrage in einer Projektdatei erstellen möchten, die mit
einem SQL-Server verbunden ist, würden Sie in der Projektdatei die folgende Sicht erstellen:
Abb. 5.4: Die gleiche Auswahlabfrage als Sicht in einer Projektdatei
Beide Abfragen liefern jeweils die gleichen Datensätze zurück. Entscheidend an dieser Stelle
ist der Unterschied in der Syntax der „Where“-Klausel der SQL-Anweisung.
In der Jet-Datenbank lautet diese:
„WHERE (((Artikel.Artikelname) Like "C*"));”
In der SQL-Server-Datenbank lautet die Anweisung:
„WHERE (Artikelname LIKE N'C%')”.
Was uns an dieser Stelle beispielhaft interessiert, ist die unterschiedliche Wildcard, also das
Zeichen, das als Joker für jede beliebige Zeichenfolge steht, die in unserem Beispiel dem
ersten Buchstaben des Abfragekriteriums („C“) folgt.
Access verwendet das Sternchen („*“) als Wildcard, während der SQL-Server in seinem
eigenen „Dialekt“ das Prozentzeichen („%“) verwendet. Wenn Sie nun über die ODBCSchnittstelle und eingebundene Tabellen auf die Daten eines SQL-Servers zugreifen, wird der
ODBC-Treiber unter anderem für die Übersetzung des Sternchens in ein Prozentzeichen
sorgen.
Wie Sie noch sehen werden, machen es bestimmte Abfragetypen in Jet-Datenbanken in
Access notwendig, dass Sie sich auch mit den Dialekten anderer Datenbanksysteme
auseinandersetzen.
- 64 -
© ikon VerlagsGesmbH, 2004
Abfragen zur Analyse Ihrer Daten
5.2 Verknüpfungen
Durch Abfragen lassen sich Daten aus verschiedenen Tabellen nahezu beliebig miteinander
kombinieren. Über eine Verknüpfung zwischen zwei Tabellen in der Entwurfsansicht einer
Abfrage legen Sie fest, wie die Daten der Tabellen untereinander in Verbindung stehen.
Abb. 5.5: Verknüpfungen zwischen zwei Tabellen im Abfrageentwurf
Wenn Sie keine Verknüpfung zwischen den Tabellen herstellen, zeigt Access jede mögliche
Kombination der Datensätze zwischen den beiden Tabellen an. Wenn Tabelle „A“ also
beispielsweise drei Datensätze und Tabelle „B“ ebenfalls drei Datensätze beinhaltet, gibt die
Abfrage insgesamt neun Datensätze zurück. Solche Ergebnisse heißen auch „Kreuzprodukt“
oder „kartesisches Produkt“.
Bedingt durch diese Kombination kann es zu unbrauchbaren Ergebnissen und langen
Abfragedauern kommen. Um sicherzustellen, dass eine Abfrage brauchbare Ergebnisse liefern
kann, müssen Sie sicherstellen, dass die Tabellen durch eine Verknüpfung miteinander
verbunden sind.
Sofern bereits eine Beziehung zwischen den in einer Abfrage verwendeten Tabellen besteht,
wird Access Ihnen vorschlagen, diese Beziehung zu verwenden. Sie können diesen Vorschlag
jedoch verwerfen und im Abfrageentwurf ähnlich wie im „Beziehungen“-Fenster neue
Verknüpfungen erstellen. Die in der Entwurfsansicht einer Abfrage definierten
Verknüpfungen zwischen Tabellen haben nur für diese eine Abfrage Gültigkeit. Sie können
über eine Abfrage keine dauerhaften Beziehungen erstellen oder bestehende Beziehungen
zwischen Tabellen löschen.
Während Sie über Verknüpfungen die Zusammenhänge der Daten unterschiedlicher Tabellen
definieren, gibt der Verknüpfungstyp an, welche Datensätze Sie durch eine Abfrage
auswählen oder bearbeiten.
Grundsätzlich unterscheidet man in Access zwischen zwei Verknüpfungstypen:
A Exklusionsverknüpfungen
A Inklusionsverknüpfungen
Microsoft® Office Access 2003 Aufbau
- 65 -
Abfragen zur Analyse Ihrer Daten
5.2.1 Exklusionsverknüpfungen
Die Exklusionsverknüpfung ist die Standardverknüpfung, die Ihnen Access bei der
Verknüpfung zweier Tabellen in einer Abfrage anbietet. Sie bewirkt, dass die Abfrage in den
verknüpften Feldern nach übereinstimmenden Werten sucht. Access kombiniert und zeigt nur
die Datensätze aus zwei Tabellen an, wenn die Werte der miteinander verknüpften Felder in
beiden Tabellen übereinstimmen. Anhand der übereinstimmenden Werte fasst Access die
Informationen aus beiden Tabellen in der Abfrage zu einem Datensatz zusammen. Sind keine
übereinstimmenden Werte vorhanden, enthält das Ergebnis der Abfrage keine Datensätze.
5.2.2 Inklusionsverknüpfungen
Inklusionsverknüpfungen zeigen alle Datensätze einer Tabelle an, unabhängig davon, ob
Access Übereinstimmungen in dem verknüpften Feld in einer zweiten Tabelle gefunden hat.
Aus der zweiten Tabelle hingegen kombiniert Access nur dann Datensätze mit den
Datensätzen aus der ersten Tabelle, wenn die verknüpften Felder beider Tabellen
übereinstimmende Werte enthalten.
Bei einer Verknüpfung gibt es stets eine linke und eine rechte Tabelle, die über jeweils ein
Feld in jeder Tabelle miteinander verknüpft sind. Abhängig sozusagen von der Position der
Tabelle unterscheidet Access die folgenden Inklusionsverknüpfungen:
A linke Inklusionsverknüpfungen
A rechte Inklusionsverknüpfungen
Linke Inklusionsverknüpfung
Linke Inklusionsverknüpfungen zeigen alle Datensätze aus der linken Tabelle an, auch wenn
Access für die Werte des verknüpften Feldes keine Übereinstimmungen in der rechten Tabelle
finden kann. Dagegen zeigt Access Datensätze aus der rechten Tabelle nur dann an, wenn die
Werte des verknüpften Feldes Übereinstimmungen in der linken Tabelle haben.
Rechte Inklusionsverknüpfung
Rechte Inklusionsverknüpfungen zeigen alle Datensätze aus der rechten Tabelle an, auch
wenn es für die Werte des verknüpften Feldes keine Übereinstimmungen in der linken Tabelle
gibt. Dagegen sehen Sie Datensätze aus der linken Tabelle nur dann, wenn die Werte des
verknüpften Feldes Übereinstimmungen in der rechten Tabelle haben.
Die Aussage, dass die Art der Inklusionsverknüpfung von der Position der Tabelle abhängt,
ist nur bedingt richtig. Sie legen eine linke (erste) und eine rechte (zweite) Tabelle fest,
unabhängig von der tatsächlichen Position der Tabellen in der Bildschirmanzeige.
- 66 -
© ikon VerlagsGesmbH, 2004
Abfragen zur Analyse Ihrer Daten
Abb. 5.6: Festlegung der Verknüpfungsart - Verknüpfungseigenschaften im Abfragentwurf
Sie können zunächst zwischen zwei Tabellen einfach eine Verknüpfung mit gedrückter linker
Maustaste herstellen. Im zweiten Schritt legen Sie dann fest, ob Sie eine
Exklusionsverknüpfung, eine linke Inklusionsverknüpfung oder eine rechte
Inklusionsverknüpfung definieren möchten. Rechtsklicken Sie dazu die Verknüpfung und
wählen Sie aus dem Kontextmenü die Verknüpfungseigenschaften. Sie erhalten die oben zu
sehende Dialogbox, in der Sie die Art der Verknüpfung definieren und mit OK bestätigen.

5.3 Abfragen und Kriterien
Der am meisten verbreitete Abfragetyp, mit dem Sie bei der Arbeit mit Access Kontakt haben
werden, ist die so genannte Auswahlabfrage. Auswahlabfragen rufen Daten aus einer oder
mehreren Tabelle(n) oder Abfrage(n) ab, kombinieren diese und zeigen sie in einem
Datenblatt an.
Sie können Auswahlabfragen zur Filterung der Daten, Einschränkung der Datenmenge oder
für Berechnungen auf der Grundlage der gespeicherten Daten verwenden. Sie können in dem
Datenblatt einer Auswahlabfrage auch Daten verändern oder neue Datensätze hinzufügen. In
jedem Fall werden diese Änderungen jedoch in den als Datenquellen für diese Abfrage
dienenden Tabellen gespeichert.
Um die Datenmenge in Abfragen einzuschränken, verwenden Sie Kriterien.
Microsoft® Office Access 2003 Aufbau
- 67 -
Abfragen zur Analyse Ihrer Daten
5.3.1 Unterabfragen zur Definition von Kriterien
Per Definition gehören Unterabfragen zu den SQL-Abfragen. Im Gegensatz zu den anderen
Vertretern dieses Abfragetyps – Union-, Pass-Through- und Datendefinitions-Abfragen –
können Sie Unterabfragen nicht separat ausführen. Zudem sind Unterabfragen nicht als
eigenständige Datenbankobjekte im Datenbankfenster abrufbar.
Verwechseln Sie Unterabfragen nicht mit Abfragen, die als Datenquellen für eine zweite
Abfrage dienen. Unterabfragen werden innerhalb einer Auswahl- oder Aktionsabfrage
ausgeführt und können verschiedenen Zwecken dienen. Sie können Unterabfragen zum
Beispiel dazu verwenden, um Kriterien für Abfragen zu definieren.
Kriterien dienen dazu, um über eine Abfrage Daten aus einer Tabelle abzurufen, die einer
bestimmten Bedingung – einem Kriterium – entsprechen. Bestimmte Kriterien werden Sie
direkt in die Zeile Kriterien eines Feldes im Abfrageentwurf eintragen können, da Sie deren
Wert genau kennen und sich dieser Wert nicht verändert. Dies ist die einfachste Art, Kriterien
zu definieren.
Abb. 5.7: Auswahlabfrage mit festem Kriterium („Wie ‚München’“) in der Entwurfsansicht
Andere Kriterien hingegen sind unter Umständen variabel, setzen sich aus mehreren logischen
Verknüpfungen zusammen oder beinhalten in sich Bedingungen. Zur Definition solcher
Kriterien dieser Art können Sie Unterabfragen verwenden.
- 68 -
© ikon VerlagsGesmbH, 2004
Abfragen zur Analyse Ihrer Daten
Abb. 5.8: Entwurfsansicht (Auswahlabfrage) mit einer Unterabfrage zur Definition von Kriterien
In diesem Beispiel verwenden Sie für eine Auswahl der Datensätze der Tabelle
„Adressdetails“ eine Kundennummer als Kriterium. Die Kundennummer wird anhand einer
Bedingung („Vorname des Kunden = Max“) in der Tabelle „Adressen“ selektiert.
5.3.2 Abfragen mit wechselnden Kriterien
Sie können in Abfragen Kriterien für eine Abfrage fest vorgeben, indem Sie das Kriterium für
jedes Feld in die Zeile „Kriterien“ im Abfrageentwurf eingeben. Diese Vorgehensweise ist für
bestimmte Aufgaben durchaus ausreichend, wenn es zum Beispiel um die Anzeige der
Adressen für einen bestimmten Wohnort geht. Sie können dann den entsprechenden Ort als
Kriterium in den Abfrageentwurf eingeben.
Wenn Sie nun aber die Adressen für mehrere Orte wahlweise anzeigen möchten, müssten Sie
entweder:
A für jeden Wohnort eine eigene Abfrage erstellen oder
A die Abfrage in der Entwurfsansicht öffnen und das Kriterium neu festlegen.
Beide Alternativen sind für den einfachen Umgang mit einer Datenbank ungeeignet.
Parameterabfragen
Wenn Sie zur Eingrenzung der Datenmenge eine Abfrage erstellen möchten, für die sich die
Kriterienwerte beständig ändern oder deren Werte Sie nicht genau kennen, entwerfen Sie eine
so genannte Parameterabfrage. Anstelle eines festen Kriteriums geben Sie in den
Kriterienbereich einer Abfrage eine Aufforderung zur Eingabe von Abfrageparametern in
eckigen Klammern ein.
Microsoft® Office Access 2003 Aufbau
- 69 -
Abfragen zur Analyse Ihrer Daten
Abb. 5.9: Parameterabfrage in der Entwurfsansicht
Sobald Sie diese Abfrage aufrufen, blendet Access vorm Ausführen der Abfrage ein
Dialogfeld ein, in dem Sie das geforderte Kriterium eintippen und mit OK bestätigen.
Abb. 5.10: Dialog einer Parameterabfrage zur Eingabe von Abfrageparametern
Erst wenn Sie in diesem Dialogfeld die entsprechenden Suchkriterien eingegeben haben, führt
Access die Abfrage aus und zeigt das Ergebnis in der Datenblattansicht der Abfrage.
Die formularbasierte Abfragetechnik
Je weiter Ihre Datenbank zu einer Anwendung reift, desto mehr werden Sie sich wünschen,
eine elegantere Form der Datenpräsentation und Dialogoberflächen zur Kommunikation mit
dem Benutzer der Datenbank zu erhalten.
Hier kommen Formulare ins Spiel. Sie können mit der formularbasierten Abfragetechnik über
Formulare professionelle Oberflächen für die Verwendung von Abfragen gestalten und die
Funktionalität eines Dialogfeldes für die Eingabe von Abfrageparametern gewährleisten.
- 70 -
© ikon VerlagsGesmbH, 2004
Abfragen zur Analyse Ihrer Daten
Projektaufgabe
B Sie erstellen eine Auswahlabfrage als Parameterabfrage. Dabei erstellen Sie statt
einer Aufforderung zur Dateneingabe einen Verweis auf ein Formularfeld, das später als
Eingabefeld für Parameterwerte fungieren soll. (Das entsprechende Formular erstellen
Sie zu einem späteren Zeitpunkt!)
1. Öffnen Sie Ihre „Übungsdatenbank.mdb“.
2. Klicken Sie im Bereich „Objekte“ auf Abfragen und anschließend auf Erstellt eine
neue Abfrage in der Entwurfsansicht.
3. Markieren Sie im Register Tabellen die Tabelle Adressen und klicken auf
Hinzufügen. Klicken Sie danach auf Schließen, um das Dialogfeld zu schließen.
4. Fügen Sie der Abfrage die Felder Kundennummer, Vorname, Name, Postleitzahl
und Ort hinzu. Am einfachsten können Sie Felder hinzufügen, indem Sie in der
Feldliste der Datenquelle einen Doppelklick auf den jeweiligen Feldnamen machen.
5. Klicken Sie in die Zeile Kriterien des Feldes „Name“. Geben Sie in die Zeile den
folgenden Ausdruck ein und drücken Sie anschließend die
-Taste:
[Formulare]![FRM_Suchformular]![Kriterium]
6. Speichern Sie die Abfrage und geben Sie ihr den Namen QRY_Adressen.
Sie haben nun eine Parameterabfrage erstellt, die in der Lage ist, anstatt der von Access
vorgegebenen Dialogfelder ein Formular („FRM_Suchformular“) für die Eingabe von
Parameterwerten zu verwenden. Die Datensätze werden anhand des Nachnamens in der
Tabelle „Adressen“ selektiert. Denken Sie an dieser Stelle daran, dass die Abfrage noch nicht
funktionieren kann, weil das Formular noch nicht existiert. Das werden wir zu einem späteren
Zeitpunkt erstellen.
5.4 SQL-spezifische Abfragen
Während im Grunde hinter allen Abfragen eine SQL-Anweisung steht, können Sie SQLspezifische Abfragen nur unter direkter Verwendung einer SQL-Anweisung erstellen. Sie
können Union-, SQL Pass-Through- und Datendefinitionsabfragen in der Entwurfsansicht
einer Abfrage über das Menü Abfrage, S
 QL-spezifisch erstellen.
5.4.1 SQL Pass-Through-Abfragen
„Pass-Through“-Abfragen sind in der Regel die schnellste und effektivste Alternative, um aus
einer Access-Datenbank auf die Daten eines Datenbankservers zuzugreifen. Wenn Sie die
Tabellen einer SQL-Server-Datenbank über die ODBC-Schnittstelle in eine AccessDatenbank einbinden, übernimmt Access die vollständige Arbeit der Datenabfrage, das
Selektieren sowie das Sortieren der Datensätze.
Microsoft® Office Access 2003 Aufbau
- 71 -
Abfragen zur Analyse Ihrer Daten
Mit einer SQL-Pass-Through-Abfrage dagegen senden Sie Befehle direkt an den
Datenbankserver und fordern so die Daten von dem Datenbankserver an. Dabei übernimmt
die Serveranwendung die Arbeit des Datenabrufs, der Selektion sowie des Sortierens und gibt
lediglich das Ergebnis der Abfrage an Access zurück.
Dieser Vorgang ist im Vergleich zu herkömmlichen Auswahlabfragen weitaus effizienter. Der
Vorteil dieser Abfragen liegt darin, dass sich durch ihre Verwendung die Geschwindigkeit der
Anwendung bei einer steigenden Anzahl von Datensätzen beschleunigen lässt.
Mit Pass-Through-Abfragen umgehen Sie die Übersetzungsarbeit, die der ODBC-Treiber bei
der Übermittlung der Befehle sonst übernehmen müsste. In Pass-Through-Abfragen müssen
Sie deshalb die Befehle in der SQL-Syntax verwenden, die die jeweilige Serveranwendung
unterstützt.
Die folgende Übung setzt voraus, dass entweder eine Verbindung zur SQL Server 2000
Desktop Engine oder einem SQL-Server vorhanden ist und dort die NordwindBeispieldatenbank installiert ist.
Rufen Sie aus dem Verzeichnis „C:\Programme\Microsoft Office\OFFICE11\SAMPLES“ die
Beispieldatenbank „Nordwindcs.adp“ auf. (Dazu ist es eventuell nötig, die Datei
„nordwindcd.sql“ in „northwindcd.sql“ umzubenennen, weil Access andernfalls eine
Fehlermeldung erzeugt!)
Im Falle, dass sich das Nordwind-Projekt noch nicht auf dem Server befindet, wird Access
eine neue Projektdatei erstellen, auf dem Server eine neue Datenbank erstellen und die
Tabellen der Nordwind-Beispieldatenbank einrichten. Klicken Sie dazu bei der
entsprechenden Anfrage einfach auf Ja und OK.
Schließen Sie dann diese Datenbank und öffnen stattdessen die Datenbank „Nordwind.mdb“.
Wechseln Sie in das Datenbankfenster.
B Sie erstellen eine „SQL-Pass-Through“-Abfrage .
1. Klicken Sie auf Einfügen, Abfragen und doppelklicken den Eintrag
Entwurfsansicht.
2. Im Dialogfeld „Tabelle anzeigen“ klicken Sie auf Schließen. Das Dialogfeld
„Tabelle anzeigen“ wird geschlossen. Im Abfrageentwurf sind dementsprechend
keine Tabellen oder Abfragen zu sehen.
3. Klicken Sie auf Abfrage, SQL-spezifisch und wählen die Option Pass-Through.
4. Sie sehen nun die SQL-Ansicht der „Pass-Through“-Abfrage vor sich. Geben Sie
in dieses Fenster die folgende Anweisung ein, die Sie bereits am Anfang dieses
Kapitels kennen gelernt haben:
SELECT Artikel.* FROM Artikel WHERE (Artikelname LIKE 'C%')
Vergegenwärtigen Sie sich noch einmal, dass Sie hier den Dialekt des SQLServers verwenden!
5. Speichern Sie die Abfrage als SQL-Query.
- 72 -
© ikon VerlagsGesmbH, 2004
Abfragen zur Analyse Ihrer Daten
Sie haben nun eine Pass Through-Abfrage erstellt, die von dem Datenbankserver sämtliche
Datensätze aus der Tabelle Artikel anfordert, in denen der Artikelname mit dem Buchstaben
„C“ beginnt.
Sie befinden sich in einer Jet-Datenbank und greifen auf eine Tabelle des SQL-Servers oder
der MSDE zu. Woher bezieht Access nun aber die Informationen, in welcher Datenbank sich
diese Tabelle befindet und auf welchem Server die Datenbank vorhanden ist?
Access benötigt dazu eine ODBC-Datenquelle, die die notwendigen Informationen zur
Herstellung der Verbindung zu der Datenbank und dem Server bereitstellt.
Rufen Sie dazu die Pass-Through-Abfrage in der Datenblattansicht auf. Access wird Sie
auffordern, eine „DSN“ anzugeben, um die Verbindung herstellen zu können.
Abb. 5.11: Dialog zur Auswahl einer ODBC-Datenquelle
Wenn Sie noch keine geeignete DSN erstellt haben, bietet Ihnen Access hier die Möglichkeit
eine neue DSN in der bereits bekannten Art und Weise zu erstellen.
Alternativ dazu können Sie die Verbindungsinformationen in die Zeile ODBC-Verbindung in
den Abfrageeigenschaften der Pass-Through-Abfrage eintragen, um diese dauerhaft mit der
Abfrage zu speichern.
Wenn Sie für diese Eigenschaft keine Verbindungszeichenfolge angeben, wird Access die
Standardzeichenfolge „ODBC“ verwenden. In diesem Fall fordert Access Sie bei jedem
Ausführen der Abfrage auf, die Verbindungsinformationen erneut anzugeben.
Microsoft® Office Access 2003 Aufbau
- 73 -
Abfragen zur Analyse Ihrer Daten
5.4.2 Datendefinitionsabfragen
Sie können mit Datendefinitionsabfragen in der aktuellen Datenbank Tabellen erstellen,
ändern, löschen oder Indizes erstellen. Eine Datendefinitionsabfrage besteht aus einer so
genannten Datendefinitionsanweisung.
Sie wissen bereits, wie Sie manuell Tabellen erstellen und diesen Tabellen einen
Primärschlüssel hinzufügen können. Diese Schritte können Sie durch
Datendefinitionsabfragen automatisieren.
Die folgende Datendefinitionsabfrage erstellt eine neue Tabelle mit dem Namen
„Privatadressen“.
Abb. 5.12: Datendefinitionsabfrage in der Entwurfsansicht
Folgende Datendefinitionsanweisungen stehen Ihnen in Access zur Verfügung:
A Verwenden Sie CREATE TABLE, um eine neue Tabelle zu erstellen.
A Verwenden Sie ALTER TABLE, um einer bestehenden Tabelle ein neues Feld oder
eine Einschränkung (CONSTRAINT) hinzuzufügen. Mit „Constraint“-Klauseln können
Sie zum Beispiel Felder mit einem eindeutigen Schlüssel versehen oder als
Primärschlüsselfeld festlegen.
A Verwenden Sie DROP, um eine Tabelle oder einen Index zu löschen.
A Verwenden Sie CREATE INDEX, um einen Index für ein Feld der Tabelle zu erstellen.
B Sie erstellen eine neue Tabelle mittels einer Datendefinitionsabfrage.
1. Öffnen Sie gegebenenfalls die von Ihnen erstellte „Übungsdatenbank.mdb“. Wechseln
Sie in das Datenbankfenster.
2. Klicken Sie im Menü Einfügen auf Abfrage. Im Dialogfeld „Neue Abfrage“ klicken
Sie zuerst auf den Eintrag Entwurfsansicht und dann auf OK.
3. Im Dialogfeld „Tabelle anzeigen“ klicken Sie auf Schließen.
4. Klicken Sie anschließend auf Abfrage, SQL-spezifisch und dann auf den Menüeintrag
Datendefinition. Sie sehen ein leeres Fenster. Dies ist die Entwurfsansicht der
Datendefinitionsabfrage.
- 74 -
© ikon VerlagsGesmbH, 2004
Abfragen zur Analyse Ihrer Daten
5. Geben Sie in das Fenster bitte folgende Anweisungen ein:
CREATE TABLE Privatadressen
([Kundennummer] integer,
[Nachname] Text,
[Vorname] Text,
[Postleitzahl] Text,
[Wohnort] Text,
CONSTRAINT[Primary] PRIMARY KEY ([Kundennummer]));
Diese Anweisung hat folgende Auswirkungen:
A CREATE TABLE Privatadressen
Access erstellt eine neue Tabelle mit dem Namen „Privatadressen“.
A ([Kundennummer] integer
In der Tabelle „Privatadressen“ erstellt Access ein neues Feld mit dem Namen
„Kundennummer“, dem Felddatentyp „Zahl“ und der Feldgröße „Integer“.
A [Nachname] Text
In der Tabelle „Privatadressen erstellt Access ein neues Feld mit dem Namen
„Nachname“ und dem Felddatentyp „Text“.
A [Vorname] Text
In der Tabelle „Privatadressen“ erstellt Access ein neues Feld mit dem Namen
„Vorname“ und dem Felddatentyp „Text“.
A [Postleitzahl] Text
In der Tabelle „Privatadressen“ entsteht ein neues Feld mit dem Namen
„Postleitzahl“ und dem Felddatentyp „Text“.
A [Wohnort] Text
In der Tabelle „Privatadressen“ erstellt Access ein neues Feld mit dem Namen
„Wohnort“ und dem Felddatentyp „Text“.
A CONSTRAINT[Primary] PRIMARY KEY ([Kundennummer]))
Access deklariert das Feld „Kundennummer“ als Primärschlüsselfeld. Zu diesem
Zweck erstellt Access einen neuen Index:
Indexname: Primary
Feldname: Kundennummer
Indexeigenschaft
Einstellung
Primärschlüssel
Ja
Eindeutig
Ja
Nullwerte ignorieren
Nein
6. Klicken Sie auf das Symbol für „Speichern“, um die Abfrage dauerhaft in Ihrer
Datenbankdatei zu speichern. Geben Sie als Abfragenamen
Qry_Erstellung_Privatadressen ein und klicken auf OK, um den Speichervorgang
abzuschließen.
Microsoft® Office Access 2003 Aufbau
- 75 -
Abfragen zur Analyse Ihrer Daten
7. Doppelklicken Sie anschließend die Abfrage, um sie auszuführen.
8. Bestätigen Sie die Sicherheitsabfrage mit Ja.
9. Öffnen Sie anschließend die Tabelle Privatadressen im Entwurfsmodus, um sich das
Ergebnis der Datendefinitionsabfrage anzuschauen.
Abb. 5.13: Ergebnis der mittels Datendefinitionsabfrage erstellten Tabelle
Sie haben Ihrer Datenbank eine neue Tabelle mit dem Namen „Privatadressen“ hinzugefügt.
Sobald Sie die Abfrage einmal ausgeführt haben, ist die neue Tabelle im Datenbankfenster
aufrufbar. Bevor Sie die Abfrage erneut ausführen können, müssen Sie die Tabelle zuvor
löschen oder umbenennen.
5.4.3 Union-Abfragen
Union-Abfragen kombinieren die Informationen in den Feldern mehrerer Tabellen in einem
Feld. Sie können auf diese Art und Weise die Informationen aus zwei Tabellen in einer
Abfrage zusammenfassen.
Sie können Union-Abfragen nicht aktualisieren. Sie dienen primär zur Zusammenfassung und
Anzeige von Daten. Sie können eine Union-Abfrage jedoch als Datenherkunft für eine
Tabellenerstellungsabfrage verwenden und so die Informationen aus mehreren Tabellen in
einer neuen Tabelle konsolidieren.
- 76 -
© ikon VerlagsGesmbH, 2004
Abfragen zur Analyse Ihrer Daten
Abb. 5.14: SQL-Ansicht einer Union-Abfrage zur Zusammenfassung der Daten aus zwei Tabellen.
Union-Abfragen bieten die einzige Möglichkeit, Daten ohne gemeinsames Merkmal aus
unterschiedlichen Tabellen in einer Abfrage zusammenzuführen. Jede andere Art von Abfrage
wird lediglich die Datensätze aus zwei unterschiedlichen Tabellen anzeigen, deren verknüpfte
Felder identische Werte aufweisen.
Zusammenfassung
A Eine Abfrage speichert Regeln, mit denen ein Benutzer auf die Daten einer Tabelle
zugreifen kann. Das Ergebnis einer Abfrage heißt „Dynaset“. Dynasets sind nur so
lange aktiv, wie eine Abfrage geöffnet ist.
A Hinter jeder Abfrage steht eine SQL-Anweisung.
A Um sicherzustellen, dass eine Abfrage brauchbare Ergebnisse liefern kann, müssen Sie
dafür sorgen, dass die Datenquellen der Abfrage durch eine Verknüpfung miteinander
verbunden sind.
A Kriterien dienen dazu, um über eine Abfrage Daten aus einer Tabelle abzurufen, die
einer bestimmten Bedingung entsprechen.
A In einer Parameterabfrage wird der Benutzer der Datenbank zur Eingabe von
Parameterwerten aufgefordert, welche die Abfrage als Kriterien für dieses Feld
verwenden kann.
A Die formularbasierte Abfragetechnik erlaubt es, Formulare als Eingabemasken für die
Eingabe von Parameterwerten zu verwenden.
A Bei Verwendung von Pass-Through-Abfragen müssen Sie die SQLAnweisungen in der
vom Datenbankserver unterstützten Syntax erstellen.
Microsoft® Office Access 2003 Aufbau
- 77 -
Abfragen zur Analyse Ihrer Daten
Übungsaufgabe 7
Erstellen Sie eine Auswahlabfrage, die die Datensätze der Tabelle „Adressen“ und der Tabelle
„Adressdetails“ miteinander kombiniert und alle Datensätze der Tabelle „Adressen“
beinhaltet, unabhängig davon, ob in der Tabelle „Adressdetails“ übereinstimmende Daten in
dem verknüpften Feld vorhanden sind.
Übungsaufgabe 8
Erstellen Sie eine Auswahlabfrage, die die Datensätze der Tabelle „Adressen“ und der Tabelle
„Adressdetails“ miteinander kombiniert und alle Datensätze anzeigt, für die in beiden
Tabellen übereinstimmende Werte in den verknüpften Feldern vorhanden sind.
Übungsaufgabe 9
Versuchen Sie, die Daten der Tabelle „Adressen“ an die Tabelle „Privatadressen“ mit einer
Anfügeabfrage anzufügen. Verwenden Sie die Tabelle „Adressen“ als Datenquelle für die
Abfrage. Klicken Sie im Abfrageentwurf im Menü „Abfrage“ auf Anfügeabfrage. Wählen Sie
die Tabelle „Privatadressen“ als Zieltabelle aus. Führen Sie in der Datenquelle einen
Doppelklick auf die Felder aus, deren Werte Sie der Tabelle „Privatadressen“ hinzufügen
möchten. Wählen Sie in der Zeile „Anfügen an“ das Feld in der Tabelle „Privatadressen“ aus,
welches die Information aufnehmen soll. Da Sie Felder vom Typ „AutoWert“ als
Primärschlüssel verwenden, übergehen Sie in beiden Tabellen das Feld „Kundennummer“, da
es sonst zu Schlüsselverletzungen kommen könnte, wenn Sie die Abfrage mehrfach
ausführen.
Übungsaufgabe 10
Löschen Sie die Datensätze der Tabelle „Privatadressen“ mittels einer Löschabfrage. Klicken
Sie dazu im Abfrageentwurf im Menü Abfrage auf Löschabfrage. Verwenden Sie die Tabelle
„Privatadressen“ als Datenquelle für die Abfrage und führen Sie einen Doppelklick auf das
Sternchen (*) in der Datenquelle aus.
- 78 -
© ikon VerlagsGesmbH, 2004
Abfragen zur Analyse Ihrer Daten
Testaufgaben
A Frage 1: Welche der folgenden Aussagen sind falsch?
A. Eine Abfrage beinhaltet nie alle Datensätze der als Datenquelle dienenden Tabelle.
B. Eine Abfrage speichert keine Daten.
C. Eine Abfrage kann mehrere Tabellen als Datenquellen verwenden.
D. Eine Auswahlabfrage verändert die Daten der als Datenquelle dienenden Tabelle.
A Frage 2: Was passiert, wenn Sie in einer Abfrage zwei Tabellen, für die keine Beziehung
oder Verknüpfung besteht, als Datenquellen verwenden?
A. Die Abfrage kann nicht ausgeführt werden.
B. Die Abfrage liefert als Ergebnis keine Datensätze zurück.
C. Die Abfrage zeigt jede mögliche Kombination der Datensätze an.
A Frage 3: Welche Standardverknüpfung schlägt Access bei der Erstellung von
Verknüpfungen vor?
A. Exklusionsverknüpfung
B. Linke Inklusionsverknüpfung
C. Rechte Inklusionsverknüpfung
A Frage 4: Was ist eine Parameterabfrage?
A. Eine Abfrage, die Kriterien verwendet
B. Eine Abfrage, die den Benutzer zur Eingabe von Parameterwerten auffordert
C. Eine Abfrage, in der Sie Wildcards benutzen können
A Frage 5: Welchen Vorteil bietet die formularbasierte Abfragetechnik im Vergleich zu
Parameterabfragen?
A. Sie können die Abfrage aus einem Formular heraus aufrufen.
B. Sie können in der Abfrage die Abfragekriterien variabel gestalten.
C. Die Abfrage kann ein Formular als Eingabemaske für Parameterwerte verwenden.
Microsoft® Office Access 2003 Aufbau
- 79 -

Documents pareils