Autor: Andreas Schöbel Seite 1 Grundlagen Access 2010 Wesen relationaler Datenbanken Datenbanken stellen (große) Sammlungen von Daten dar, die zur Auswertung und Bearbeitung zur Verfügung gestellt werden. Datenbanken bezeichnen sowohl die Gesamtheit der Datenbasis als auch den einzelnen Datencontainer. Datenbanksysteme (DBS) besteher aus einen oder mehreren Datenbanken (DB) und einem Datenbankmanagementsystem (DBMS), das die Funktionalität zur Bearbeitung der Daten und zur Sicherheit des Datenbestandes bereit stellt. Für den Zugriff auf die Datenbanken werden Werkzeuge in Form von Sprachen zur Verfügung gestellt. DBS = nDB + DBMS Relationale Datenbanken speichern die Daten in Form von Tabellen, die im mathematischen Sinne Relationen sind. Die einzelnen zusammengehörigen Daten bilden also Tupel, die in der ganzen Tabelle gleich strukturiert sind. Die Beziehungen zwischen den verschiedenen Tabellen werden ebenfalls als Relationen bezeichnet und gelegentlich auch durch solche abgebildet. Im mathematischen Sinne sind das Mengenoperationen über die einzelnen Relationen (Tabellen) Datensatz: speichert eine Instanz eines Objektes (einer Entität), in dem er deren Attribute auflistet Datenbank(tabelle): Container zur Aufnahme der Instanzen eines Objekt (types), d. h. einer Entität, Gesamtheit aller Datensätze Feldname: beschreibt ein Attribut der zu speichernden Entität Feld: Teil eines Datensatzes zur Aufnahme des Wertes eines bestimmten Attributes, kleinste, bedeutungstragende Einheit Felder oder Feldkombinationen, mit denen sich ein ganzer Datensatz eindeutig identifizieren lässt, heißen Schlüssel. Der für die Benutzung besonders herausgehobene Schlüssel heißt Primärschlüssel. Ein Feld, das die Beziehung zu einer anderen Tabelle herstellt und in der anderen Tabelle ein Schlüssel ist, heißt Fremdschlüssel. Autor: Andreas Schöbel Seite 2 Grundlagen Access 2007 Datenbanksichten (Schichten) 3 Schichten (Schemata / Sichten) einer Datenbank Externes Schema / externe Sicht Konzeptionelles Schema / logische Sicht Internes Schema / interne Sicht File 1 File 2 File 3 Externes Schema Im externen Schema wird beschrieben, wie sich die Daten der Datenbank dem Nutzer darbieten, also welche Daten in welcher Struktur mit welchen Bearbeitungsrechten welchem Nutzer zur Verfügung gestellt werden. Konzeptionelles Schema / logische Sicht Im konzeptionellen Schema wird die innere, also logische Struktur der Datenbank beschrieben. Es wird also festgelegt, welche Datenbanktabellen bei relationalen Datenbanken mit welcher Struktur und welchen Beziehungen vorhanden sind. Hierzu gehören auch die detailierte Bestimmung der Felder und die Bestimmung von Schlüsseln. Die Aufstellung dieses Schemas erfordert es, eine Reihe von Regeln einzuhalten. Internes Schema / interne Sicht Im internem Schema wird die physische Ablage der Daten auf dem Datenträger beschrieben. Autor: Andreas Schöbel Seite 3 Grundlagen Access 2010 Bestandteile von Access-Datenbanken Formulare Tabellen Module Berichte Automatisieren Makros Abfragen wahl und Datenmanipulation beinhalten: Kontrollschaltflächen Befehlsschaltflächen Kombinationsflächen Listenfelder Optionsschaltflächen usw. (alle Windows-GrafikElemente und zusätzlich sogenannte AktivX-Elemente) Tabellen die eigentlichen Datenquelle die Datensätze werden in Tabellen abgelegt (Zeilen) die Tabellen verfügen über Felder (Spalten) für die Felder steht eine Vielzahl von Datentypen zur Verfügung Abfragen gespeicherte Auswertungen der Datenbanktabellen können auch Selektionen aus mehreren Tabellen (die verknüpft sind) beinhalten (Daten aus mehreren Tabellen selektieren) können auch benutzt werden, um Daten zu manipulieren Erstellen neuer Tabellen auf Grundlage der selektierten Daten eingeben von Daten löschen von selektierten Daten verändern von selektierten Daten Formulare Berichte bessere Darstellung der Daten auf dem Drucker kann vorher auf dem Bildschirm betrachtet werden lassen Seiten- und Abschnittsüberschriften zu lassen Gruppierungen (nach Namen bei Kunden z. B.) zu und Zusammenfassungen der Gruppe (Summe der Artikelpreise) Makros lassen die Benutzung aller AccessMenübefehle und deren Zuordnung zu grafischen Steuerelementen und Handlungen des Nutzers zu (EreignisseReaktionen) bessere Darstellung der Daten aus den Tabellen bzw. Abfragen können auch Daten aus verknüpften Tabellen bzw- Abfragen gleichzeitig darModule stellen VBA-Code, der an der Stelle von Makros können wahlweise einen oder mehrere genutzt werden kann Datensätze darstellen bietet weit mehr Möglichkeiten als MakVeränderung der Modellvorstellung: ros, setzt aber einige Programmierstatt Tabelle Karteikasten kenntnisse voraus können eine Vielzahl verschiedener grafischer Steuerelemente zur Datenaus- Autor: Andreas Schöbel Seite 4 Grundlagen Access 2010 Access-Spezifikation Maximale Größe einer Access-Datenbank 2 GB Anzahl der Objekte in einer Datenbank 32.768 Anzahl der Module 1.000 Anzahl der Zeichen für einen Objektnamen 64 Anzahl gleichzeitiger Benutzer 255 Anzahl Zeichen für ein Kennwort 20 Anzahl Zeichen in einem Benutzernamen 20 Anzahl in einem Tabellen– oder Feldnamen 64 Anzahl der Felder in einer Tabelle 255 Anzahl der geöffneten Tabellen 2048 Maximale Größe einer Tabelle 2 GB Anzahl der Zeichen in einem Feld vom Typ Text 255 Anzahl der Zeichen in einem Feld vom Typ Memo 65.535 Größe eines Feldes vom Typ OLE 1 GB Anzahl der Indizes in einer Tabelle 32 Anzahl der Felder in einem Index 10 Anzahl der Zeichen in einer Gültigkeitsmeldung 255 Anzahl der Zeichen in einer Gültigkeitsregel 2.048 Anzahl der Zeichen in einer Tabellen– oder Feldbeschreibung 255 Maximale Zeichenzahl (ohne Memo– und OLE-Feld, bei Kompression) 4.000 Zeichenzahl in den Eigenschaftseinstellungen eines Feldes 255 Anzahl der Tabellen in einer Abfrage 32 Anzahl der Verknüpfungen in einer Abfrage 16 Anzahl der Felder in einer Abfrage 255 Anzahl von verschachtelten Abfragen 50 Maximale Anzahl von Zeichen in einem Feld des Datenbankentwurfs 1.024 Anzahl der Zeichen für den Namen eines Parameters 255 Anzahl der AND-Verknüpfungen in WHERE– und HAVING-Klauseln 99 Anzahl der Zeichen in einer SQL-Anweisung 64.000 Anzahl der Zeichen in einem Bezeichnungssteuerelement 2.048 Anzahl der Zeichen in einem Textfeld-Steuerelement 65.536 Maximale Breite eine Berichtes oder Formulars und Höhe eine Bereiches 55,87 cm Gesamthöhe eines Berichtes oder Formulars 508 cm Anzahl der Gruppenbereiche in Berichten 10 Anzahl der maximale in der Lebensdauer hinzufügbare Steuerelemente 754 Anzahl der Aktionen in einem Makro 999 Autor: Andreas Schöbel Seite 5 Grundlagen Access 2010 Access-Oberfläche Startfenster (Backstage) zuletzt genutzte Datenbanken und andere Bereiche des Backstage-Bereiches Datenbankvorlagen Schnellzugriffleiste Register (Hier aktiv: Datei = Backstage) Kontextsensitiver Abschnitt Menüband Register Befehlsgruppe Schnellstart für Dialogfelder Diverse Befehlsschaltflächen Geöffnete Datenbank Register der Fenster Navigator Geöffnetes Objekt Autor: Andreas Schöbel Seite 6 Tabellenentwurf Access 2010 Felddatentypen Felddatentyp Felder und Ihre Größe Text Text mit einer Textlänge bis zu 255 Zeichen die Zeichenlänge wird als Feldgröße angegeben Memo Text mit einer maximalen Größe von 65.535 Zeichen die Feldgröße ist nicht einstellbar, sondern wird dynamisch angepasst Zahl Ein beliebiger Zahlenwert Feldgrößen Byte 1 Byte Integer 2 Byte Long Integer 4 Byte Single 4 Byte Double 8 Byte Dezimal 12 Byte ReplikationsID 16 Byte 0 bis 255 -32.768 bis 32.767 -2.147.483.648 bis 2.147.483.647 -3,402823*1038 bis -1,401298*10-45 1,401298*10-45 bis 3,402823*1038 Genauigkeit 7 Stellen -1,79769313486232*10308 bis -4,9405645841247*10-324 4,9405645841247*10-324 bis 1,79769313486232*10308 Genauigkeit 15 Stellen -1028–1 bis 1028-1 Genauigkeit 28 Stellen Global Unique Identifier (GUID) automatisch vergebene, weltweit eindeutige Datensatznummer Datum/Uhrzeit Datum und Uhrzeit zwischen dem Jahr 100 und 9999 Währung Zahlenwert zwischen -922.337.203.685.477,5808 und 922.337.203.685.477,5807 mit einer Genauigkeit von 4 Stellen nach dem Komma, die Größe ist nicht weiter einstellbar AutoWert automatisch erstellter Wert In der Feldgröße kann zwischen Long Integer (8 Byte) und ReplikationsID (16 Byte) gewählt werden Ja/Nein Boolscher Datentyp - es gibt nur zwei mögliche Inhalte: Ja oder Nein, Wahr oder Falsch, An oder Aus usw. die Feldgröße kann nicht besonder eingestellt werden OLE-Objekt In diesen Feldern können OLE-Objekte gespeichert werden (PaintBilder, Excel-Tabellen, Word-Texte usw.), die Feldgröße kann nicht eingestellt werden (max. 1 GB) Hyperlink Ein Hyperlinkadresse kann eingegeben werden, die Feldgröße kann nicht geregelt werden NachschlageAssistent Verknüpfungsfeld zu einer anderen Tabelle oder Werteliste die Feldgröße hängt vom verknüpften Feld ab mehrwertige Felder und das Editieren der Werte durch den Benutzer sind möglich Anlage Dateianhänge (insg. 2 GB, je Datei max. 256 MB) Berechnet Erlaubt es, den Feldinhalt aus anderen Felder durch Formeln abzuleiten Autor: Andreas Schöbel Seite 7 Tabellenentwurf Access 2010 Beziehungen zwischen Tabellen Beziehungen (Verknüpfungen) zwischen Datenbanktabellen Die Art der Verknüpfung ergibt sich aus der Art der Felder, über die die Verknüpfung hergestellt wird Arten von Verknüpfungen zwischen Tabellen 1:1 - Verknüpfungen w Beide verknüpften Felder kommen in beiden Tabellen als Schlüssel Adressdaten 1 für der jeweiligen Tabelle vor (hier z. B. Personalnummer) w Für jeden Datensatz der Tabelle „Adressdaten 1“ gibt es genau einen Adressdaten 2 zugehörigen Datensatz der anderen Tabelle „Adressdaten 2“ und umgekehrt. 1 : 1 - Beziehung 1:n - Verknüpfungen w Eines der verknüpften Felder ist ein Schlüssel - möglichst ein Primärschlüssel - für die eine Tabelle - der korrespondierende Fremd- Klasse schlüssel ist aber kein Schlüsselfeld in seiner Tabelle (hier z. B. Klasse) w Zu jedem Datensatz in der Tabelle „Klasse“ (mit dem Primärschlüssel) gibt es mehrere Datensätze in der Tabelle „Schüler“, aber nicht umgekehrt - zu jedem Datensatz der Tabelle „Schüler“ gibt es nur einen Datensatz in der Tabelle „Klasse“. m:n - Verknüpfungen w Keines der Felder, auf denen die Verknüpfung beruht sind in ihren Schüler 1 : n - Beziehung Schrauben Muttern Tabellen Schlüsselfelder (hier z. B. Gewindegröße) w Zu jedem Datensatz der Tabelle „Schrauben“ gibt es mehrere zugehörige Datensätze in der Tabelle „Muttern“ und zu jedem Datensatz in der Tabelle „Muttern“ gibt es mehrere zugehörige Datensätze in der Tabelle „Schrauben“ m : n - Beziehung Darüber hinaus kann für jede Verknüpfung (Beziehung) festgelegt werden, ob sie nur die Datensätze beider Tabellen aufnehmen soll, für die es in der jeweils anderen Tabelle auch eine Entsprechung gibt, oder ob auch aus einer der beiden verknüpften Tabellen Datensätze aufgenommen werden sollen, für die es in der anderen Tabelle keine Entsprechung gibt. Resultierende Möglichkeiten Weiterhin lässt sich „Referentielle Integrität“ prüfen, d. h., ob es zu jedem Datensatz der Detailtabelle auch eines Datensatz in der Haupttabelle gibt. Dabei kann veranlasst werden, dass bei Löschungen eines Datensatzes der Haupttabelle auch der zugehörige Datensatz gelöscht wird. Wird der Schlüssel der Haupttabelle geändert, so kann auch der zugehörige Fremdschlüssel automatisch korrigiert werden. Autor: Andreas Schöbel Seite 8 Tabellenentwurf Access 2010 Feldeigenschaften Feldeigenschaft Bedeutung Feldname Feldname mit 64 Zeichen, im Strukturbereich festzulegen Felddatentyp Auswahlfeld im Strukturbereich, Standard ist Text mit 50 Zeichen Beschreibung Kommentar für das Feld Primärschlüssel Über Schaltfläche oder Kontextmenü festzulegende Eigen- Die folgenden Eigenschaften sind im Detailbereich festzulegen Feldgröße Für Textfelder die erlaubte Zeichenzahl, für Zahlfelder der Wertebereich Format Vordefinierte und selbsterstellbare Formate für Zahlen Dezimalstellenanzeige Anzahl der Nachkommastellen Eingabeformat Formate für die Eingabegestaltung (Eingabemaske) Beschriftung Definiert eine vom Feldnamen abweichende Spaltenüberschrift Standardwert Vorgabewert, der automatisch bei neuen Datensätzen in das Feld eingetragen wird Gültigkeitsregel Legt die Regeln für die Eingabe von Werten durch Ausdrü- Gültigkeitsmeldung Meldung, die erscheint, wenn die Gültigkeitsregel bei der Eingabe nicht eingehalten wurde Eingabe erforderlich Legt fest, ob das Feld leer bleiben darf oder Werte enthalten muss Leere Zeichenfolge Legt fest, ob als Eingabe auch eine leere Zeichenfolge ("") erlaubt ist Neue Werte Legt für Autowert-Felder "Inkrement" oder "Zufall" fest Indiziert Legt fest, ob für das Feld ein Index gebildet werden soll und falls ja, ob doppelte Werte erlaubt sind Unicode-Kompression komprimierte Speicherung für Unicode-Zeichen IME-Modus nur für ostasiatische Sprachen (Input Message Editor) IME-Satzmodus für Japanisch Smarttags Erlaubt es, dem Feld ein Smarttag zuzuordnen Textformat Erlaubt Rich-Text-Memofelder (mit Formatierung) Textausrichtung Legt Ausrichtung der Daten im Feld fest (links, rechts, ...) Datumsauswahl anzeigen Legt fest, ob ein Datumsauswahlfeld geöffnet werden kann Nur anfügen verbietet das Ändern oder Löschen eingefügter Daten Autor: Andreas Schöbel Seite 9 Tabellenentwurf Access 2010 Normalisieren Normalisieren der Datenbank während des Entwurfs = Gewährleisten der ersten bis dritten Normalform: 1. Normalform: Eine Relation befindet sich in der ersten Normalform, wenn die Attribute nur atomare Werte aufweisen (d. h., keine Aufzählungen mehrere Werte in Attributen) 2. Normalform: Eine Relation befindet sich in der zweiten Normalform, wenn sie sich bereits in der ersten Normalform befindet und alle Nichtschlüsselattribute ausschließlich vom gesamten Primärschlüssel bzw. Primärschlüsselkombination abhängt (d. h., bei Primärschlüssel, die sich aus Attributkombinationen ergeben, darf es keine eindeutigen Abhängigkeiten von Teilschlüssel geben) 3. Normalform: Eine Relation befindet sich in der dritten Normalform, wenn sie sich in der zweiten Normalform befindet und kein Nichtschlüsselattribut eindeutig von einem anderen Nichtschlüsselattribut abhängt (d. h., keine transitiven Funktionalitäten) Darstellung des logischen Datenbankschemas Titel PK ISBN Titel Autor Verlag Erscheinungsjahr Leser PK,I1 Leser-ID Name Vorname Geburtsjahr Straße PLZ Ort Bücher PK,I1 Buch-ID FK1,I2 ISBN Ausleihen FK1,I2 Buch-ID FK2,I4,I3 Leser-ID Ausleihdatum Rückgabedatum Autor: Andreas Schöbel Seite 10 Tabellenentwurf Access 2010 Symbole für die Feldformate Feldformat Legt fest, wie die Feldinhalte dargestellt werden. Entweder Auswahl mit Hilfe von Kombinationsfeldern oder Eingabe von Formatstrings: 0, # = Ziffer , = Tausenderpunkt und Dezimaltrennzeichen % = Umrechnung in Prozent und Darstellung des Prozenttrennzeichens E-, E+, e+, e= Darstellung in Exponentialschreibweise -, +, $, (, ) = werden genau dargestellt, darstrellen von Formatzeichen: mit \ davor * = auffüllen mit Sternen t, tt, ttt, tttt = Datumstag ttttt = kurzes Windowsdatumsformat tttttt = langes Windowsdatumsformat w = Wochentag ww = Woche m, mm, mmm, mmmm = Monat q = Quartal j = Tag des Jahres jj, jjjj = Jahr h, hh = Stunde n, nn = Minute s, sms = Sekunde zzzz = Windowssystemzeit @ = Textzeichen (obligatorisch, notfalls Leerzeichen) & = Textzeichen (fakultativ) < = nachfolgenden Text in Kleinbuchstaben > = nachfolgenden Text in Großbuchstaben Es sind mehrere Teile möglich. Bei Zahlen: positive Werte, negative Werte, Nullwerte, keine Eingabe Bei Text: Normaler Text, Leerer Text, keine Eingabe Autor: Andreas Schöbel Seite 11 Tabellenentwurf Access 2010 Symbole für die Eingabeformate Eingabeformat Legt fest, wie die Eingabe erfolgen muss. Für Text und Datum/Zeit steht ein Formatassistent zu Verfügung. Es können wieder Formatzeichen eingegeben werden: 0 = obligater Ziffer 9 = fakultative Ziffer # = fakultative Ziffer (fehlende durch Leerzeichen ersetzt L = ein obligater Buchstabe ? = ein fakultativer Buchstaben A = ein beliebiges obligates alphanumerisches Zeichen a = ein beliebiges fakultatives alphanumerisches Zeichen & = ein beliebiges obligates Zeichen C = ein beliebiges fakultatives Zeichen .,:;-/ = das Zeichen selbst > = umwandeln der Folgezeichen in Großbuchstaben < = umwandeln der Folgezeichen in Kleinbuchstaben ! = Füllung der Maske von rechts nach links \ = bei nachfolgenden Formatierungszeichen werden diese als Textzeichen behandelt Drei Teile: Formatstring, Speichern (0) oder nicht speichern (1) der Formatierung, Platzhalter Autor: Andreas Schöbel Seite 12 Abfragen Access 2010 Arten von Abfragen 1 Abfragen Auswahlabfragen Kreuztabellenabfragen Aktionsabfragen Selektionen Tabellenerstellungsabfragen Projektionen Anfügeabfragen Aktualisierungsabfragen Löschabfragen Untertypen Abfragen mit Verknüpfung Abfragen mit Berechnungen Abfragen mit Gruppierungen Parameterabfragen Abfragen mit Sortierung UNION-Abfragen (Nur bei SQL) Kombinationen sind möglich zwischen: den Abfragetypen und mehreren Untertypen den Arten von Auswahlabfragen Abfragen mit Verknüpfungen beziehen mehrere Ausgangstabelle ein. Abfragen mit Berechnungen erzeugen in der Ergebnistabelle zusätzliche Felder, deren Inhalt sich aus Berechnungen bzw. Unterabfragen ergeben. Abfragen mit Gruppierungen fassen einzelne Felder nach gleichen Inhalten als Ausgabedatensatz zusammen und berechnen die Inhalte für andere ausgewählte Felder mit Aggregatfunktionen. Parameterabfragen legen Teile der Abfrage erst zum Ausführungszeitpunkt über erfolgen Eingabeaufforderungen fest. Sortierungen erfolgen nach Feldinhalten. Autor: Andreas Schöbel Seite 13 Abfragen Access 2010 Arten von Abfrage 2 Auswahlabfragen Selektion Projektion Originaltabelle Originaltabelle Eine Selektion wählt Datensätze aus. Eine Projektion gibt ausgewählte Attribute wieder. Temporäre Ergebnistabelle Temporäre Ergebnistabelle Kreuztabellenabfrage Ausgangstabelle Kreuztabelle Bei Kreuztabellen werden aus gleichen Inhalten eines Feldes einer Ausgangstabelle Felder der Kreuztabelle. Aus gleichen Inhalte eines anderen Feldes der Ausgangstabelle werden Datensätze. Am Schnittpunkt erfolgt eine Berechnung mit Aggregatfunktionen. Aktionsabfragen Tabellenerstellungsabfrage Ausgangstabelle Aktualisierungabfrage Tabelle vorher Tabelle nachher Neue Tabelle Diese Abfrage erstellt eine Tabelle aus ausgewählten Daten. Diese Abfrage ändert Daten in einer bestehenden Tabelle. Anfügeabfrage Löschabfrage Tabelle 1 Tabelle 2 Tabelle vorher Tabelle 2 Tabelle nachher Diese Abfrage fügt Daten an eine bestehende Tabelle an. Diese Abfrage löscht ausgewählte Datensätze. Autor: Andreas Schöbel Seite 14 Abfragen Access 2010 Erstellen von Abfragen 1 Ergebnisse von Abfrage: Auswahlabfragen erzeugen die temporäre Ergebnistabelle aus den zum Zeitpunkt der Abfragedurchführung aktuellen Daten. Die temporäre Ergebnistabelle kann wie eine Datentabelle benutzt werden. D. h., Abfragen können auch als Datengrundlage für andere Abfragen dienen. Temporäre Ergebnistabelle können DynaSets oder SnapShots sein. DynaSets sind bearbeitbare Datenauszüge. SnapShots sind nicht bearbeitbar. Bei einfachen Selektionen und Projektionen (außer für berechnete Felder) ist das Ergebnis in der Regel ein DynaSet. Bei Gruppierungen und Kreuztabellenabfragen ist das Ergebnis immer ein SnapShot. Aktionsabfragen beeinflussen oder erstellen Tabellen, wenn sie ausgeführt werden. Erstellen von Abfragen mit Assistent 1. Starten des Auswahlabfrage-Assistenten 2. Auswahl von Tabellen und Feldern 3. Festlegen des Abfragenamens (darf nicht mit einem Tabellennamen konkurrieren) 4. Ergebnistabelle Autor: Andreas Schöbel Seite 15 Abfragen Access 2010 Erstellen von Abfragen 2 Erstellen von Abfragen in der Entwurfsansicht Strukturbereich: Hier werden die in die Abfrage einzubeziehenden Tabellen und ihre Verknüpfungen angegeben. Verknüpfungen lassen sich erstellen und (mit der rechten Maustaste) bearbeiten. Eigenschaftsfenster Entwurfsbereich: Hier werden die in das Ergebnis einzubeziehenden Felder angegeben. In der Feldzeile können Feldnamen und Berechnungsformel für berechnete Felder eingegeben werden. Syntax: Feldname: Ausdruck. Hierfür steht ein Ausdruckseditor zur Verfügung (rechte Maustaste: Aufbauen) In der Sortierungszeile werden die Sortierungen festgelegt. Dabei spielt die Feldreihenfolge ein Rolle. In den Kriterienzeilen werden Selektionsausdrücke eingegeben Weiterhin kann mit der rechten Maustaste (Funktionen) eine Zeile für Gruppierungs-– und Aggregatfunktionen geöffnet werden. Erstellen von Aktionsabfragen 1. Erstellen einer Auswahlabfrage, die die DaAktualisierungsausdruck für die zu aktualitensätze und Felder auswählt, aus denen sierenden Felder angegeben werden, bei eine neue Tabelle erstellet werden soll Tabellenerstellungsabfragen der Name der (Tabellenerstellungsabfrage) oder die gezu erstellenden Tabelle, bei Anfügeabfraändert werden soll gen der Name der Tabelle an die die Daten (Aktualisierungsabfrage) bzw. die an eine anzufügen sind. andere, entsprechend strukturierte Tabelle 4. Gegebenenfalls Speichern der Abfrage. angefügt werden sollen (Anfügeabfrage) 5. Ausführen der Abfrage. Die Abfrage wird oder die die Datensätze auswählt die geüber das Register "Entwurf", Gruppe löscht werden sollen (Löschabfrage). "Ergebnis" oder nach dem Schließen der 2. Im Register "Entwurf", Gruppe Abfrage durch Öffnen des entsprechenden "Abfragetyp" den Abfragetyp auswählen. Objektes ausgeführt. Einfache "Öffnen" 3. Spezielle Einstellungen vornehmen. Bei öffnet die Abfrage nicht zum Ändern, sonAktualisierungsabfragen muss danach der der führt sie aus! Autor: Andreas Schöbel Seite 16 Abfragen Access 2010 Ausdrücke, Operatoren und Platzhalter Ausdrücke Bedeutung Beispiel Einfacher Ausdruck mit Konstanten [Brutto]/119*19 Berechnete Spalte mit Spaltenname Brutto: [Netto]*1,19 Formel mit Bezug auf Tabellen [Artikel]![Netto]*1,19 Formel mit Bezug auf Tabellen (vereinfacht) [Artikel].[Netto]*1,19 Formel, die sich auf einen Eigenschaftswert eines Formulars bezieht Formulare![Artikel]![Wert].Standardwert Formel mit mit Funktion Summe([Netto]) Operatoren Operator Bedeutung Operator Bedeutung ^ Potenz <= Kleiner als oder Gleich - Negatives Vorzeichen >= Größer als oder Gleich * Multiplikation Wie Mustervergleich / Division Nicht Negation \ Ganzzahldivision Und Konjuktion Mod Rest der Ganzzahldivision Oder Disjunktion + Addition ExOder Exklustion - Subtraktion Äqv Äquivalenz & Textverkettung Imp Implikation = Gleich Zwischen ... Und .. Geschlossener Intervall <> Ungleich In(...) Innerhalb einer Liste < Kleiner als Ist Null Vergleich auf Nullwert > Größer als Ist Nicht Null Kein Nullwert Platzhalter Platzhalter Bedeutung Beispiel ? Ein beliebiges Zeichen M??er * Null oder beliebig viele beliebige Zeichen M*er # Eine Ziffer Maier# [] Eines der Zeichen in der Klammer M[ae][iy]er [-] Eines der aufgezählten Zeichen Maier[1-3] [!] Nicht das aufgeführte Zeichen M[!a]ier Autor: Andreas Schöbel Seite 17 Abfragen Access 2010 Wichtige Funktionen Funktion Bedeutung Abs(Wert) Liefert den absoluten Betrag des wertes DatAdd(Intervall;Wert;Datum) Addiert zum Datum entwprechend "Intervall" Werte hinzu Intervall: "jjjj", "q", "m", "j", "t", "w", "ww", "h", "n", "s" DatDiff(Intervall;Dat1;Dat2) Bildet die Differenz zwischen den Datums entspr. Intervall DatSeriell(Jahr;Monat;Tag) Bildet aus den Angaben ein Datum Datum() Liefert das aktuelle Datum DatWert(String) Wandelt eine Zeichenfolge in ein Datum um Format(Wert;Formatstring) Formatiert den Wert entsprechend des Formatstrings Glätten(String) Entfernt führende und folgende Leerzeichen InStr(String1;String2) Sucht das Vorkommen des String2 in String1 IstDatum(Wert) Prüft, ob der Wert ein Datum ist IstLeer(Wert) Prüft, ob Wert leer ist IstNull(Wert) Prüft ob der Wert einen Nullwert einhält IstNumerisch(Wert) Prüft, ob der Wert numerisch ist Jahr(Datum) Liefert den Jahresteil des Datums Jetzt() Liefert das aktuelle Datum und die aktuelle Zeit Länge(String) Liefert die Anzahl der Zeichen in String Links(String;Anzahl) Liefert die Anzahl Zeichen von der linken Seite des Strings Minute(Zeit) Liefert den Minutenteil der Zeit Mittelwert(Wertemenge) Liefert den Mittelwert der Wertemenge Monat(Datum) Liefert den Monatsteil des Datums Rechts(String;Anzahl) Liefert die Anzahl der Zeichen von rechts im String Runden(Wert[;Stelle]) Rundet den Wert auf die angegebene Stellenzahl Sekunde(Zeit) Liefert den Sekundenteil der Zeit Str(Wert) Wandelt den Wert in einen String um Stunde(Zeit) Liefert den Stundenteil der Zeit Summe(Wertemenge) Liefert die Summe der Wertemenge Tag(Datum) Liefert den Tagteil des Datums Wenn(Bedingung;Dann;Sonst) Wertet die Bedingung aus, bei True wird der Dann- Wert(String) Wandelt den String in einen numerischen Wert um Wochentag(Datum[;ErsterTag]) Liefert die Zahl des Wochentags von Datum Zeit() Gibt die aktuelle Zeit wieder ZeitSeriell Liefert die Zeit einsprechend der angegebenen Werte Autor: Andreas Schöbel Seite 18 Abfragen Access 2010 SQL 1 Allgemeine Erläuterungen In den folgenden Syntaxschemata werden angegeben: IN GROßBUCHSTABEN In Groß- und Kleinschreibung In eckigen Klammern [...] Mit Pipe-Operator | Mit geschweiften Klammern {} Reservierte Worte Zu ersetzende Begriffe Optionale Teile Alternativen Obligatorische Auswahlmöglichkeiten In den Abfragen werden verwendet: Eckige Klammern [] Zur Begrenzung von Tabellen- und Feldnamen. Sie sind notwendig, wenn Leerzeichen oder andere verwechselbare Zeichen in den Namen vorkommen Punkt . Seperator zwischen Tabellen- und Feldnamen Hochkomma '...' Zur Eingrenzung von Strings Rauten #...# Zur Eingrenzung von Datumsangaben Der Wert NULL Als Zeichen für leere Felder Semikolon ; Abschluss der Anweisung Platzhalter: Stern * Fragezeichen ? Raute # Ein Zeichen Mehrere Zeichen Eine Ziffer Die anderen Platzhalter und Operatoren sind Access-üblich DML / DQL Auswahlabfrage bzw. -anweisung SELECT [ALL | DISTINCT | DISTINCTROW | TOP nn] { * | Ausdruck | Tabelle.* | [Tabelle.]Feld1 [AS Alias1] [, [Tabelle.]Feld2 [AS Alias2] [, ...]]} FROM Tabellenausdruck [, ...] [IN ExterneDatenbank] [WHERE Bedingung] [GROUP BY Feld1 [, Feld2 [, ...]] [HAVING Bedingung]] [ORDER BY [ASC | DESC] Feld1 [, Feld2 [, ...]]]; Erläuterungen * ALL DISTINCT DISTINCTROW TOP nn WHERE GROUP BY HAVING ORDER BY ASC DESC Alle Felder Alle Datensätze werden angezeigt (Standard – kann daher weggelassen werden) Unterdrücken von doppelten Datensätzen (doppelt im Sinne der Ergebnistabelle) – führt zu einem SnapShut Unterdrücken von doppelten Datensätzen, die durch die Verknüpfung von Tabellen entstehen – kann trotzdem eine DynaSet erzeugen Zeigt nur die Anzahl der ersten nn Datensätze an Schränkt die zur Auswahl herangezogenen Datensätze ein. Kann neben Vergleichsoperatoren auch enthalten: LIKE Für Mustervergleiche ("Wie") BETWEEN ... AND … Als Bereichsoperator ("Zwischen"... "und"...) IN, EXIST Vergleich mit Liste einer Unterabfrage Gruppiert die Datensätze nach den angegebenen Feldern – fasst gleiche Werte zu einer Gruppe zusammen, erlaubt die Anwendung von Aggregatfunktionen auf die Gruppe. Alle in der Feldliste angegebenen Felder müssen gruppiert sein. Einschränkung, die auf die Gruppe angewendet wird Sortierungen Aufsteigend – Standard kann daher weggelassen werden Absteigend Verknüpfungen FROM Tabelle1 {INNER | LEFT | RIGHT} JOIN Tabelle2 ON Tabelle1.Feld1 { = | < | > | <= | >= | <>} Tabelle2.Feld2 Erläuterungen INNER JOIN LEFT JOIN RIGHT JOIN Verknüpfung erfasst nur die Datensätze, die das verknüpfte Feld in beiden verknüpften Tabellen aufweist; Besteht eine 1:n-Vernüpfung, so entstehen genau soviel Datensätze, wie die n-Tabelle an verknüpften Datensätzen aufweist. Besteht eine m:n-Verknüpfung, so entsteht aus jeder verknüpften Kombination ein Datensatz Wie Inner Join, nur werden zusätzlich auch alle unverknüpften Datensätze der linken Tabelle aufgenommen Wie Inner Join, nur werden zusätzlich auch alle unverknüpften Datensätze der rechten Tabelle aufgenommen Autor: Andreas Schöbel Seite 19 Abfragen Access 2010 SQL 2 Parameter-Deklaration PARAMETERS Name Datentyp [, Name Datentyp [, ...]]; Erläuterungen Datentyp Siehe Tabellendefinition Abfrageeinschränkung mit Unterabfrage {HAVING | WHERE} { = | < | > | <= | >= | <>} [ANY | ALL | SOME] (SQLAnweisung) {HAVING | WHERE} Ausdruck [NOT] IN (SQLAnweisung) {HAVING | WHERE} [NOT] EXISTS (SQLAnweisung) Erläuterungen ALL Um TRUE zu Liefern muss der Vergleich auf allen Werten der Unterabfrage zu treffen; Liefert die Unterabfrage eine leere Menge so ist das Ergebnis auch TRUE; Liefert der Vergleich mit einem Wert der Ergebnismenge der Unterabfrage FALSE, so ist das Ergebnis auch FALSE (AND-Verknüfung der Vergleiche mit der Ergebnismenge) - Die Unterabfrage darf nur eine Spalte beinhalten ANY Ist die Ergebnismenge der Unterabfrage leer, so ist das Ergebnis FALSE, ist das Ergebnis mindestens eines Vergleiches mit einem Wert der Unterabfrage TRUE, so ist das Gesamtergebnis TRUE, sonst FALSE (OR-Verknüpfung der Vergleiche mit der Ergebnismenge der Unterabfrage) - Die Unterabfrage darf nur eine Spalte beinhalten SOME Wie ANY IN Testet, ob der Ausdruck in der Ergebnismenge (Unterabfrage) enthalten ist. Die Unterabfrage darf nur eine Spalte beinhalten EXIST Prüft, ob die Menge der Unterabfrage nicht leer ist Avg(Ausdr) Count(Ausdr) First(Ausdr) Last(Ausdr) Min(Ausdr) Max(Ausdr) Mittelwert Anzahl Erster Wert Letzter Wert Minimum Maximum StDev(Ausdr) StDevP(Ausdr) Sum(Ausdr) Var(Ausdr) VarP(Ausdr) Standardabweichung der Grundgesamtheit Standardabweichung der Stichprobe Summe Varianz der Grundgesamtheit Varianz der Stichprobe Anfügeabfrage INSERT INTO Ziel [IN ExterneDatenbank] [(Feld1[, Feld2[, ...]]])] SELECT [Quelle.]Feld1[, Feld2[, ...]] FROM Tabellenausdruck; INSERT INTO Ziel [IN ExterneDatenbank] [(Feld1[, Feld2[, ...]]])] VALUES (Wert1[, Wert2[, ...]); Aktualisierungabfrage UPDATE Tabelle SET Feld1 = Ausdruck1[, Feld2 = Ausdruck[, ...]] WHERE Kriterien; Löschabfrage DELETE [[Tabelle.]*] FROM Tabelle WHERE Kriterien; Kreuztabellenabfrage TRANSFORM AggFunktion Auswahlanweisung PIVOT Pivot-Feld [IN (Wert1[, Wert2[, ...]])]; Erläuterungen AggFunktion Auswahlanweisung Pivot-Feld Ausdruck mit einer auf ein Feld angewendeten Aggregatfunktion, die zur Berechnung der Datensatzfelder benutzt werden – Es werden die Tabellen der SELECT-Anweisung herangezogen SELECT-Anweisung mit GROUP-BY-Klausel, die Feldinhalte liefert, die als "Zeilenüberschriften"dienen Feld, das für Spaltenüberschriften dient – Es werden die Tabellen der SELECT-Anweisung herangezogen UNION-Abfrage [TABLE] Abfrage1 UNION [ALL] [TABLE] Abfrage2 [UNION [ALL] [TABLE] AbfrageN [ ... ]]; Erläuterungen ALL Standardmäßig werden bei UNION-Abfragen doppelte Datensätze unterdrückt, mit ALL geschieht das nicht Autor: Andreas Schöbel Seite 20 Abfragen Access 2010 SQL 3 Tabellenerstellungsabfrage SELECT Anweisungen INTO NeueTabelle [IN ExterneDatenbank] FROM Quelle; DDL Tabellendefinition CREATE TABLE Tabelle ( Feld1 Typ[(Größe)] [NOT NULL] [Index1] [, Feld2 Typ[(Größe)] [NOT NULL] [Index2] [, ...]] [, CONSTRAINT Einschränkung [, ...]]); Erläuterungen CONSTRAINS Einschränkung – kann Eindeutigkeiten und Beziehungen zu anderen Tabellen festlegen, erzeugt u. U. einen Index zur Realisierung Datentypen Datentyp BINARY BIT TINYINT MONEY DATETIME UNIQUEIDENTIFIER REAL FLOAT SMALLINT INTEGER DECIMAL TEXT IMAGE CHARACTER Beschreibung Beliebige Arten von Daten können in einem Feld diesen Typs gespeichert werden. Die Art, wie Daten in ein BINARY-Feld eingegeben werden, bestimmt die Art der Ausgabe. Ja/Nein-Werte (boolesche Werte) sowie Felder. Eine Ganzzahl von 0 bis 255. Eine Ganzzahl von – 922.337.203.685.477,5808 bis 922.337.203.685.477,5807. Eine Datums- oder Zeitangabe ab dem Jahr 100 bis zum Jahr 9999. Eine eindeutige Kennnummer. Eine Gleitkommazahl einfacher Genauigkeit, die die folgenden Werte annehmen kann: -3,402823E38 bis -1,401298E-45 für negative Werte, 1,401298E -45 bis 3,402823E38 für positive Werte und 0. Eine Gleitkommazahl doppelter Genauigkeit, die die folgenden Werte annehmen kann: -1.79769313486232E308 bis -4.94065645841247E-324 für negative Werte, 4,94065645841247E-324 bis 1,79769313486232E308 für positive Werte und 0. Eine Ganzzahl von – 32.768 bis 32.767. Eine Ganzzahl von – 2.147.483.648 bis 2.147.483.647. Ein genauer numerischer Datentyp, der Werte von 1028 - 1 bis - 1028 - 1 enthält. Sie können sowohl Präzision (1 - 28) als auch Dezimalstelle (0 - definierte Präzision) definieren. Die Standardwerte für Präzision und Dezimalstelle lauten 18 bzw. 0. Von 0 bis maximal 2,14 GB. Von 0 bis maximal 2,14 GB. Wird für OLE-Objekte verwendet. Von 0 bis 255 Zeichen. Autor: Andreas Schöbel Seite 21 Abfragen Access 2010 SQL 4 Einschränkungen in Tabellendefinitionen oder -änderungen inkl. Beziehungsdefinition CONSTRAINT Name {PRIMARY KEY | UNIQUE | NOT NULL | REFERENCES FremdTabelle [(FremdFeld1, FremdFeld2)] [ON UPDATE CASCADE | SET NULL] [ON DELETE CASCADE | SET NULL] }; Mehrfeldereinschränkung: CONSTRAINT Name {PRIMARY KEY (Primär1[,Primär2[, ...]]) | UNIQUE (Eindeutig1[,Eindeutig2[, ...]]) | NOT NULL (Nichtnull1[, Nichtnull2 [, ...]]) | FOREIGN KEY [NO INDEX] (Ref1[, Ref2 [, ...]]) REFERENCES FremdTabelle [(FremdFeld1 [, FremdFeld2 [, ...]])]} [ON UPDATE {CASCADE | SET NULL}] [ON DELETE {CASCADE | SET NULL}]; Erläuterungen PRIMARY KEY Bestimmt einen Primärschlüssel UNIQUE Legt Eindeutigkeit fest NOT NULL Legt fest, dass keine leeren Felder erlaubt sind FOREIGN KEY Fremdschlüsselfestlegung REFERENCES Legt Beziehungen zu einer anderen Tabelle fest ON UPDATE Aktualisierungsweitergabe ON DELETE Löschweitergabe CASCADE Bei Aktualisierung / Löschung diese Weitergeben SET NULL Bei Aktualisierung / Löschung Fremdschlüssel auf NULL setzen Indexdefinition CREATE [ UNIQUE ] INDEX Index ON Tabelle ( Feld [ASC|DESC][, Feld [ASC|DESC][, ...]]) [WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]; Erläuterungen: UNIQUE PRIMARY DISALLOW NULL IGNORE NULL ASC DESC Eindeutigkeit festlegen Festlegen als Primärschlüssel NULL-Werte verboten NULL-Werte erlaubt Aufsteigend sortiert Absteigend sortiert Tabellenänderung ALTER TABLE Tabelle {ADD {COLUMN Feld Typ[(Größe)] [NOT NULL] | CONSTRAINT Einschränkung} | ALTER {COLUMN Feld Typ[(Größe)] [NOT NULL] | CONSTRAINT Einschränkung} | DROP {COLUMN Feld | CONSTRAINT Einschränkung} }; Erläuterungen ADD ALTER DROP COLUMN CONSTRAINS Hinzufügen Ändern Löschen Spalte Einschränkung Tabelle bzw. Index löschen DROP {TABLE Tabelle | INDEX Index ON Tabelle}; Autor: Andreas Schöbel Seite 22 Formulare Access 2010 Grundlagen Formulare und Berichte stellen die von Access zur Verfügung gestellt Benutzerschnittstelle dar (mit den Abfragen zusammen sind sie Teil der externen Sicht) Sie basieren auf einer oder mehreren Tabellen und Abfragen und besitzen eigene Fähigkeiten, die den Abfragemöglichkeiten zum Teil ähneln (Verknüpfen von Tabellen, Gruppieren von Datensätzen einschließlich Aggregatfunktionen, Sortieren usw.) Formulare dienen der Darstellung und überwiegend auch der Bearbeitung der Daten auf dem Bildschirm. Sie können auch ausgedruckt werden. Formulare lassen sich erstellen mittels: Assistenten Mittels der Entwurfsansicht Entwurfsansicht Formularkopf - einmal am Anfang der Formulars ausgeführt Seitenkopf - am Anfang jeder gedruckten Seite ausgeführt Detailbereich - für jeden Datensatz einmal ausgeführt Seitenfuß - am Ende jeder gedruckten Seite ausgeführt Formularfuß - einmal am Ende des Formulars ausgeführt. Autor: Andreas Schöbel Seite 23 Berichte Access 2010 Grundlagen Berichte dienen der Darstellung der Daten überwiegend beim Ausdruck, gegebenenfalls aber auch auf dem Bildschirm und für den Text-Export. Berichte lassen sich erstellen mittels: Assistenten Mittels der Entwurfsansicht Entwurfsansicht Berichtskopf - einmal am Anfang der Berichts ausgeführt Seitenkopf - am Anfang jeder gedruckten Seite ausgeführt Gruppenkopf - am Anfang jeder Gruppe ausgeführt Detailbereich - für jeden Datensatz einmal ausgeführt Gruppenfuß - am Ende jeder Gruppe ausgeführt Seitenfuß - am Ende jeder gedruckten Seite ausgeführt Berichtsfuß - einmal am Ende des Berichts ausgeführt.