Um gezielte Informationen - auch aus verschiedenen Tabellen einer Datenbank - zu erhalten, benutzt man Abfragen. Man kann dort die Tabellen einer Datenbank miteinander verknüpfen und erhält somit die gewünschten (selektierten) Informationen aus der Datenbank. Voraussetzung dafür ist allerdings, dass die einzelnen Dateien der Datenbank über Felder mit gemeinsamen Inhalten verfügen, über die sie verknüpft werden können. Solche Felder sind vorzugsweise die sogenannten Schlüsselfelder der Datenbank-Dateien. Sie können mit Access unter anderem - aus einer oder mehreren Tabellen einfache Auswahlabfragen Parameter-Abfragen Abfragen mit berechneten Feldern Abfragen mit Auswertungen und Gruppierungen Aktionsabfragen (Änderungs- oder Löschabfragen) durchführen. Die einfache Auswahlabfrage aus einer einzigen Tabelle Abfragen entwerfen ausführen Ziel dieser Abfrage ist, herauszufinden, welche Mietwagen über eine Klimaanlage verfügen ohne andere Informationen preiszugeben. Im Datenbankfenster das Registerblatt "Abfragen" auswählen, dort eine neue Abfrage in der Entwurfsansicht starten. Die Datei, aus der Informationen herausgesucht werden sollen, muss (in einem Auswahlfenster) zunächst der Abfrage hinzugefügt werden; dann wird dieses Fenster wieder geschlossen. Im Abfragefenster können dann die gewünschten Felder per Drag&Drop in den Abfrageentwurf gezogen werden. Per Doppelklick auf den Dateinamen (hier Mietwagen) würden sämtliche Felder der Tabelle in den Abfragentwurf übernommen. Abfragen können bei Bedarf - unter einem informativen Namen - gespeichert werden. A. Jacobi - 1 -
Die einfache Auswahlabfrage aus mehr als einer Tabelle Im Datenbankfenster das Registerblatt "Abfragen" auswählen, dort eine neue Abfrage in der Entwurfsansicht starten. Die Dateien, aus denen Informationen herausgesucht werden sollen, müssen eine nach der anderen der Abfrage hinzugefügt werden; dann wird dieses Fenster wieder geschlossen. Die nebenstehende Abfrage klärt beispielsweise, welche berufliche Position unsere Kunden haben. Dazu ist es notwendig, die Kundendatei (mit dem Feld Position ) mit der Datei Vermietungen zu verknüpfen, da dort jeder Kunde über seine KdnNr erfasst Wenn die Tabellen - wie im obigen Beispiel- über gleichnamige Datenfelder (hier KdnNr) miteinander verknüpft sind, lassen sich die Informationen aus den verbundenen Tabellen herausholen. Trägt man zwei oder mehrere Kriterien in eine Zeile ein, so ist damit eine UND-Verknüpfung geschaffen worden, d.h., es werden nur die Datensätze gefunden, bei denen alle aufgeführten Bedingungen zutreffen. Eine ODER-Verknüpfung erfolgt durch den Kriterien-Eintrag in die ODER-Zeile(n). Hier werden die Kunden selektiert, die für Fahrzeuge weniger als über 50100 PKWs PS zu unter mit über 50 100 pro Tag PS gemietet haben. A. Jacobi - 2 -
Parameter-Abfragen Statt mehrere Abfragen zu erstellen (z.b. welche und wie viele Autos der Marke Ford, Opel, VW, BMW, usw. zu unserem Fuhrpark gehören) kann man auch eine Abfrage entwerfen, bei der erst nach dem Start die gewünschte Marke eingegeben wird. Damit Access sie als sog. Parameterabfrage erkennt, muss sie z.b. wie folgt aufgebaut sein: Im Feld Marke steht als Kriterium nicht mehr eine der o.a. Marken, sondern ein Aufforderungstext in eckigen Klammern, z.b. [Marke eingeben] In diesem Beispiel wird zunächst die Marke, anschließend der Typ verlangt Weiteres Beispiel: zwischen 0 und [Preisobergrenze?] Findet alle Fahrzeuge, die nicht mehr Als die eingegebene Obergrenze an Tagesmiete kosten Weiteres Beispiel: zwischen [Mindest-PS] und 1000 Findet alle Fahzeuge, die mehr als die Mindest-PS Zahl aufweisen. A. Jacobi - 3 -
Abfragen mit berechneten Feldern In Abfragen lassen sich auch Informationen ermitteln, die nicht in den Feldern der genutzten Dateien vorkommen. Aus zwei Kalenderdaten kann man so z.b. die Anzahl der dazwischenliegenden Tage berechnen. Tragen Sie in eine neue Spalte in der Feld-Zeile den gewünschten Feldnamen, gefolgt von einem Doppelpunkt ein und anschließend den Rechenausdruck. Die Syntax sieht dann z.b. folgendermaßen aus: Mietdauer:[RückDatum]-[AufDatum] Welche Fahrzeuge wurden länger als 3 Tage gemietet? oder: FahrzeugAlter:Datum()-[Zulassung] 1 Im Feld Alter würde man ohne die Division durch 365 das Alter in Tagen erhalten. (Klammersetzung beachten!) 1 Datum() liefert in Access das aktuelle Datum, entspricht damit der heute()-funktion in Excel A. Jacobi - 4 -
Auswahlabfragen mit Auswertung von Gruppierungen Will man z.b. wissen, welche Kunden unsere besten Kunden (mit den längsten Mietzeiten) sind, so genügt es nicht, lediglich die einzelnen Mietdauern zu ermitteln, sondern man muss für jeden Kunden die Summe aller Mietzeiten ermitteln. Mittels Mausklick auf das Summensymbol oder mit Menüpunkt Ansicht/Funktionen wird eine neue Zeile, die Funktionszeile in den Abfrageentwurf eingefügt, die für jedes Feld den Eintrag Gruppierung anzeigt. Klicken Sie in die Einträge der Felder, deren Inhalt Sie auswerten wollen. Ein Listenpfeil erscheint. Sie können damit aus einer Liste die gewünschte Auswertung anklicken. Für unser Beispiel gilt die u.a. Auswahl Nach Kundennummer und -Namen wird gruppiert, d.h. jede neue Nummer bzw. jeder neue Namen führt zu einer neuen Gruppe; die Anzahl der Einzelvermietungen wird ermittelt und die Summe der Mietdauer pro Gruppe (d.h. für jeden Kunden) wird errechnet. Hier wird für jeden Autotyp (nicht Marke!) die Anzahl der Miettage ermittelt. A. Jacobi - 5 -
Aktionsabfragen Eine Datenbank muss aktuell sein und damit ständig gepflegt werden. Änderungen, die nur einzelne Datensätze betreffen, müssen manuell erledigt werden. Andere Ereignisse, wie zum Beispiel eine allgemeine Preiserhöhung um einen gleichen Prozentsatz, eine Mehrwertsteuererhöhung u.ä. erfordern die Veränderung der gesamten Datensätze. Solche Änderungen lassen sich einfacher mit einer Aktualisierungsabfrage erledigen. Im obigen Beispiel würde der Tagesmietpreis um 3,5%, der Km-Preis um 5% erhöht. Zur Pflege einer Datenbank gehört auch, dass man nicht mehr benötigte Datensätze entfernt. Dies gewährleistet die Aktualität der Datenbank und spart außerdem noch Speicherplatz. Durch Löschabfragen können nur komplette Datensätze (nicht einzelne Felder) gelöscht werden. A. Jacobi - 6 -