1      Inhaltsverzeichnis

1      Inhaltsverzeichnis. 1

2      Datenbank-Grundlagen.. 3

2.1       Arten von Datenbanken. 3

2.1.1       Sequentieller Zugriff: 3

2.1.2       Index-sequentieller Zugriff 4

2.1.3       Relationales Konzept: 4

2.2       Datenbankplanung. 5

2.2.1       Planung von Datenbanken; Entity-Relationship-Modell 5

2.2.2       Umsetzung des ER-Diagramms in das relationale Modell 7

2.3       Normalisierung von Datenbanken. 7

2.3.1       1. Normalform: 7

2.3.2       2. Normalform: 8

2.3.3       3. Normalform: 9

3      Access XP-Grundlagen.. 10

3.1       Erstellen einer einfachen Datenbank. 10

3.2       Tabelle anlegen. 12

3.2.1       Regeln für Feldnamen, Tabellennamen und anderen Access-Objekten: 13

3.2.2       Felddatentypen: 13

3.2.3       Feldeigenschaften: 14

3.3       Nachschlagefelder: 16

3.4       Primärschlüssel: 17

3.5       Arbeiten mit Tabellen. 18

3.5.1       Dateneingabe: 18

3.5.2       Tabelle sortieren. 19

3.5.3       Suchen in der Tabelle. 19

3.5.4       Filtern in der Tabelle. 19

3.6       Auswahlabfragen. 21

3.6.1       Erstellen einer neuen Auswahlabfrage: 21

3.6.2       Formulieren von Kriterien: 23

3.6.3       Berechnete Felder in Abfragen. 25

3.6.4       Parameterabfragen. 26

3.6.5       Ausführen von Abfragen: 26

3.6.6       Speichern von Abfragen: 26

3.7       Formulare zur Dateneingabe. 29

3.8       Berichte. 34

4      Komplexere Datenbanken.. 41

4.1       Importieren und Verknüpfen von Tabellen. 41

4.2       Beziehungen erstellen. 43

4.3       Auswahlabfragen basierend auf mehreren Tabellen. 44

4.4       Nachschlagefelder 45

4.5       Komplexe Nachschlagefelder, die auf in Beziehung gesetzten Tabellen beruhen: 46

4.6       Aktionsabfragen. 48

4.6.1       Anfügeabfrage. 48

4.6.2       Aktualisierungsabfrage. 50

4.6.3       Löschabfrage. 52

4.6.4       Tabellenerstellungsabfrage. 53

4.7       Formulare auf Grund von komplexeren Abfragen; Unterformulare. 54

4.8       Parameterabfragen. 58

4.9       Selbsterstellte Berichte (Reports) 59

4.10    Kreuztabellenabfragen. 60

4.11    Formulare zur Gestaltung einer Bedieneroberfläche. 61

4.12    Verhalten von Access im Netzwerk. 62

4.13    Absichern einer Access-Anwendung. 62

4.13.1     Einstellung der Startoptionen [Extras]-[Start] 62

4.13.2     Erstellen einer *.MDE-Datei 63

4.14    MS Query. 63

 


 

2      Datenbank-Grundlagen

 

Vorbemerkung: In diesem Kurs wird eine Datenbank für ein kleines Unternehmen erstellt, das Artikel verkauft. Es soll möglich sein, Artikel- und Kundenstammdaten zu verwalten sowie auf „Knopfdruck“ Rechnungen und Adressetiketten auszudrucken.

 

MS Access ist ein relationales Datenbankmanagementsystem (RDBMS). Dabei liegen Expertenfunktionen gleich neben Grundfunktionen.

 

Wir wiederholen aus dem Access-Grundkurs alle wichtigen Schritte und erhöhen die Detailgenauigkeit.

 

2.1   Arten von Datenbanken

 

Eine Datenbank ist eine Sammlung von Daten aus der Realität.

 

2.1.1        Sequentieller Zugriff:

 

Älteres Datenzugriffsverfahren (Speicherung auf Magnetbändern!). Sequenziell = „hintereinander“ (vgl. Videokassette).

 

 

Beispiel: Das CSV-Dateiformat (Comma Separated Value) kann von Excel gelesen werden und wird oft als Schnittstelle zu Großdatenbanksystemen verwendet

 

KNr;Nachname;Vorname;PLZ;Strasse

1;Camino;Alejandra;28001;Gran Vía, 1

2;Feuer;Alexander;04179;Heerstr. 22

3;Trujillo;Ana;05021;Avda. de la Constitución 2222

4;Domingues;Anabela;05634-030;Av. Inês de Castro, 414

5;Fonseca;André;04876-786;Av. Brasil, 442

6;Devon;Ann;WX3 6FW;35 King George

7;Roulet;Annette;31000;1 rue Alsace-Lorraine

8;Moreno;Antonio;05023;Mataderos  2312

9;Cruz;Aria;05442-030;Rua Orós, 92

10;Braunschweiger;Art;82520;P.O. Box 555

11;Batista;Bernardo;02389-673;Rua da Panificadora, 12

12;Schmitt;Carine;44000;54, rue Royale

13;González;Carlos;3508;Carrera 52 con Ave. Bolívar #65-98 Llano Largo

14;Hernández;Carlos;5022;Carrera 22 con Ave. Carlos Soublette #8-35

15;Dewey;Catherine;B-1180;Rue Joseph-Bens 532

 

Beispiel: INI-Dateien

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)\WINNT

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Server, Version 4.0"

multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Server, Version 4.0 [VGA-Modus]" /basevideo /sos

 

2.1.2        Index-sequentieller Zugriff

 

·        Speicherung der Daten so wie beim sequentiellen Zugriff

·        Zusätzlich wird eine „schlanke“ Index-Datei angelegt, in der zum Beispiel ein „indiziertes Feld“ (etwa der Nachname) und die Nummer des Bytes, an dem der Datensatz beginnt, gespeichert wird. Eine Suche nach Nachnamen ist somit wesentlich schneller möglich, da nur die Indexdatei durchsucht wird und nicht die gesamte Datenbank.

 

2.1.3        Relationales Konzept:

 

Das relationale Datenbankmodell wurde 1970 von E. F. Codd entwickelt.

 

·        Die Daten sind generell in Relationen gespeichert.

·        Relationen sind Tabellen, wobei

o       die Reihenfolge der Spalten ("Felder") egal sein muss

o       die Reihenfolge der Zeilen (Datensätze) egal sein muss

o       es ein Feld geben muss, über dessen Wert jeder Datensatz eindeutig identifiziert werden kann ("Primärschlüssel")

·        Relationen bestehen aus Feldern („Spaltenüberschriften“), deren konkrete Ausprägungen als „Attribute“ (in Excel= Zelle) bezeichnet werden.

·        Der Wertebereich eines Attributs kann eingeschränkt sein.

 

 

Marktübersicht für relationale Datenbank-Management-Systeme (RDBMS):

 

a)     Dateibasierende Datenbanksysteme ("Klein-Datenbanken"): Bei diesen Datenbanksystemen befinden sich alle Datenbank-Objekte (Tabellen, Abfragen etc.) alle in einer einzigen Datei (zum Beispiel in Access: *.MDB-Datei).

 

·        Microsoft Access, aktuelle Version Access XP (für "experience", intern Version 10)

·        Microsoft FoxPro

·        MySQL (Linux Open Source)

 

b)     Client-/Server-Datenbanksysteme: Hier sind die Datenbankobjekte auf mehr als eine Datei verteilt. Typischerweise gibt es keine Berichts- und Formularobjekte. Der Server stellt benötigte Daten meist als "Datensatzgruppen" (Recordsets) den Clients zur Verfügung, die Darstellung wird meist am Client von Frontend-Software übernommen.

 

·        Microsoft SQL Server

·        Oracle

·        postgreSQL (Linux Open Source)

·        Sybase Adaptive Server

·        Informix-Systeme

 

2.2   Datenbankplanung

 

2.2.1        Planung von Datenbanken; Entity-Relationship-Modell

 

 

Grafische Unterstützung beim DB-Design bietet das Entity-Relationship-Modell (Peter Chen, 1976).

 

In diesem Modell sind folgende Begriffe wesentlich:

 

·        Entity: Ein real existierendes Objekt, das in einer DB abgebildet werden soll. Wird durch ein Rechteck gekennzeichnet.

 

·        Relationship: gibt an, wie zwei Entitäten miteinander verknüpft sind. Relationships werden durch eine Raute symbolisiert.

 

·        Attribut: "Feld", wird durch ein Oval dargestellt

 

·        Primärschlüsselattribut: Der Attributname wird zusätzlich unterstrichen.

 

Beispiel:

 

 

Kardinalität von Beziehungen: Sie gibt an, wie viele Elemente der einen Entität mit wie vielen Elementen der anderen Entität in Beziehung stehen.

 

a) 1:1-Beziehung:

Jedem Element der linken Entität kann nur genau ein Element der rechten Entität zugeordnet werden und umgekehrt.

 

Beispiel:

 

b) 1:n-Beziehung:

Jedem Element der linken Entität können beliebig viele Elemente der rechten Entität zugeordnet werden. Jedem Element der rechten Entität kann nur genau ein Element der linken Entität zugeordnet werden.

 

Beispiel:

 

 

c) m:n Beziehung:

Beliebig vielen Elementen der linken Entität können beliebig viele Elemente der rechten Entität zugeordnet werden. Dieser Verknüpfungstyp kommt in der Realität am häufigsten vor.

 

Beispiel:

 

Hinweis: m:n Beziehungen können nicht direkt in ein relationales Modell übertragen werden.

 

Beispiel: ER-Diagramm für ein Schulungsinstitut

 

 

 

 

2.2.2        Umsetzung des ER-Diagramms in das relationale Modell

 

Hier sind nur einige Grundregeln zu beachten:

 

1.      Aus jeder Entität wird eine Relation. Relationen dieser Art werden oft als "Stammdaten-Tabelle" bezeichnet.

2.      Bei 1:1-Beziehungen ist zu überprüfen, ob die beiden Entitäten nicht in einer Tabelle zusammengefasst werden können.

3.      1:N-Beziehungen können direkt in ein relationales Modell umgesetzt werden; in die N-Tabelle muss ein Fremdschlüsselfeld eingefügt werden.

4.      M:N-Beziehungen sind nicht direkt in ein relationales Modell umsetzbar; hier ist eine Zwischentabelle notwendig.

 

Die Umsetzung wird zu einem späteren Zeitpunkt an Hand des praktischen Beispiels näher erläutert.

2.3   Normalisierung von Datenbanken

 

Ziele bei der Realisierung von Datenbanken ist die Vermeidung von:

·        Redundanz: Die Daten in einer Datenbank sind dann redundant, wenn Teile der Daten mehrfach vorkommen!

·        Inkonsistenz: mehrere Schreibweisen für ein und dasselbe Objekt: zum Beispiel St. Pölten, Sankt Pölten, St. Poelten, St Pölten, ...

 

Zur Vermeidung von Redundanzen und Inkonsistenzen gibt es die sogenannten Normalformen. Wenn die Tabellen einer DB den Normalformen genügen, ist ein wichtiger Beitrag zur Redundanzvermeidung geleistet (noch keine Garantie, dass überhaupt keine Redundanz!)

 

·        1. Normalform: Keine Listen als Wertebereiche

·        2. Normalform: Attribute dürfen nicht von einem Teil eines Schlüssels abhängen

·        3. Normalform: Attribute dürfen nicht voneinander ableitbar sein.

 

 

 

 

2.3.1        1. Normalform:

 

 

Probleme bei Datenbanken in 1. Normalform:

 

Als Attributwerte sind nur atomare Werte (integer, string) erlaubt, keine Listen oder Mengen.                                                                                                                                                 

                                                                                                                              

tblBuch                                                                                                                   

Buchnr      Buchtitel                      Autor                                                                   

184           Sozialstaat Österreich  Ernst, Federspiel, Langbein                                   

                                                                                                                              

Lösung:                                                                                                                

                                                                                                                              

Buchnr      Buchtitel                      Autor                                                                   

184           Sozialstaat Österreich  Ernst                                                                   

184           Sozialstaat Österreich  Federspiel                                                            

184           Sozialstaat Österreich  Langbein                                                              

                                                                                                                              

tblKunden                                                                                                               

                Name                          Adresse                                                               

                Harrer, Heinrich            Bahnhofplatz 3, 3100, St. Pölten                            

                                                                                                                              

Lösung: Zerlegung in mehrere Felder                                                              

                                                                                                                              

                Nachname                   Vorname                              Straße              PLZ    Ort

                Harrer                          Heinrich                               Bahnhofplatz 3  3100   St. Pölten

 

 

2.3.2        2. Normalform:

 

                                                                                       

Andere Formulierung:

 

Eine Tabelle befindet sich in der 2. Normalform, wenn

a) sie sich in der 1. Normalform befindet und wenn

b) alle Nichtschlüsselattribute von allen Attributen des Primärschlüssels

abhängen.                                                                     

                                                                                       

Beispiel: tblEntlehnung                                                

                                                                                       

Kundennr  Nachname                 Vorname ......           Buchnr           Entlehndatum

23              Müller        Aloisia                      770182    02.05.2001

23              Müller        Aloisia                      912341    02.05.2001

109            Giger         Brunhilde                  891021    30.04.2001

176            Huber        Herbert                     NULL       NULL

                                                                                       

entspricht nicht der 2. Normalform:                            

Buchnr hängt nicht vom Primärschlüssel Kundennr ab

Entlehndatum hängt nicht vom Primärschlüssel Kundennr ab

                                                                                       

Anomalien:

 

1. Löschanomalie:                                                    

Bei Rückgabe aller Bücher werden auch die Informationen über

den/die Entleiher/in gelöscht.                                     

                                                                                       

2. Einfügeanomalie:                                                 

Will man Informationen über einen Kunden einfügen, der noch kein Buch ausgeliehen hat, dann müssen alle Felder, die sich auf das Ausleihen von Büchern beziehen, mit NULL-Einträgen bzw. (noch schlimmer) mit Dummy-Einträgen gefüllt werden (zB Buchnr = 999999 bedeutet "noch kein Buch ausgeborgt"). Setzt man Primärschlüssel auf Buchnr, so können Kunden, die noch kein Buch entlehnt haben, gar nicht angelegt werden. Ist allerdings Kundennr Primärschlüssel, so kann jeder Kunde nur ein Buch ausborgen.                                                                                                                            

                                                                                       

3. Änderungsanomalie:         

Bei Änderung von Personendaten (neuer Name, neue Adresse, neue Telefonnummer) müssen diese Änderungen in mehreren Datensätzen durchgeführt werden. Wird ein betroffener Datensatz nicht geändert, so enthält die

Datenbank widersprüchliche Informationen.

                                                                                       

Lösung:                                                                         

Tabelle muss in mehrere Tabellen aufgespalten werden.

                                                                                       

 

 

 

 

2.3.3        3. Normalform:

 

 

 

 

 


3      Access XP-Grundlagen

 

3.1   Erstellen einer einfachen Datenbank

 

 

 

Wenn man eine neue leere Datenbank erstellen möchte, erscheint vorher ein Fenster, um diese zu speichern. In diesem Beispiel wird die Datenbank „Auftragsverwaltung“ genannt.

 

Nach der Bestätigung durch das Klicken auf „Erstellen“ erscheint das Datenbankfenster.

 

 

Dieses Datenbankfenster fungiert als Drehscheibe für alle Datenbankobjekte, die gemeinsam die Datenbank bilden.

 

Datenbank-Entwickler

 

ENTWURFSANSICHT

 

 

 

DB-Objekte

DB-Anwender

 

TABELLENANSICHT

 

Eigentlich sind hier zwei Programme in einem Paket vereinigt. Es besteht eine Schizophrenie. Man ist Datenbankentwickler und  -anwender gleichzeitig. Dies ist natürlich gewöhnungsbedürftig.

 

Access-Dateiformate und Konvertierung:

Durch die laufende Verbesserung von Anwendersoftware kommt es in unregelmäßigen Abständen auch zu Änderungen im internen Dateiaufbau. Es wird berücksichtigt, dass mit neueren Programmen auch Datenbanken geöffnet werden können, die mit älteren Access-Versionen erstellt wurden (Abwärtskompatibilität). In umgekehrter Reihenfolge ist dies jedoch nicht möglich.

 

Access XP bietet im Menü [Extras] – [Datenbank-Dienstprogramme] Konvertierungstools an, mit denen Sie eine Datenbank ins Access 97- oder Access 2000-Dateiformat konvertieren können.

 

 

 

3.2   Tabelle anlegen

 

Da die Daten in Tabellen gespeichert werden, wird als erster Schritt eine neue Tabelle erstellt.

 

Wenn das Objekt „Tabellen“ links markiert ist, klickt man auf  oder  und wählt die Entwurfsansicht oder .

 

Wir tragen nun die Feldnamen und Felddatentypen nach folgendem Muster ein bzw. vergeben den Namen tKunden für die Tabelle.

 

 

 

Bei der Erstellung der Tabelle sind verschiedene Punkte zu beachten.


3.2.1        Regeln für Feldnamen, Tabellennamen und anderen Access-Objekten:

 

Feldnamen und andere Objektnamen dürfen maximal 64 Zeichen enthalten.

Verboten sind: Rufzeichen, eckige Klammern, Punkte und Akzentzeichen

Dringend abzuraten ist von der Verwendung von Leerzeichen, Umlauten und Sonderzeichen.

 

Erfüllen Feldnamen diese Regel, so werden sie „reguläre Bezeichner" genannt.

 

Dringend abzuraten ist von der Verwendung von Bezeichnungen, die bereits Access-intern verwendet werden, zum Beispiel „Name“.

 

Wenn Sie einen Feldnamen wählen, der mit „-nummer“ endet, so schlägt Access automatisch eine Indizierung „Ja (Duplikate möglich)“ vor.

 

Tipp für das Speichern von Tabellen: Beginnen Sie den Namen der Tabelle mit einem kleingeschriebenen t oder tbl (also beispielsweise tKunden, tblKunden, tbl_Kunden); bei Abfragen verwenden Sie q (für "query"). Damit können Sie beim Erstellen von Formularen und Berichten Tabellen sofort von Abfragen unterscheiden.

 

 

3.2.2        Felddatentypen:

 

Text:

·        Text: maximal 255 Zeichen, alle Datenbankoperationen sind damit möglich (Suchen, Sortieren, ...)

·        Memo: max. 65536 Zeichen, kein Suchen oder Sortieren möglich (z.B. Anmerkungen, Kommentare)

·        Hyperlink (Verweis auf eine Web-Adresse)

 

Zahl:

·        Ganzzahlig: mit ganzzahligen Werten kann exakt (ohne Ungenauigkeiten) gerechnet werden. Beim Datentyp "Zahl" stehen folgende Möglichkeiten zur Verfügung:

o       Byte (1 Byte): 0 bis 255

o       Integer (2 Byte): -32768 bis +32767

o       Long Integer (4 Byte): ca. –2 Mrd. bis ca. +2 Mrd.

 

·        Gleitkommazahlen: Damit kann nicht exakt gerechnet werden. Es treten bei jedem Rechenvorgang Ungenauigkeiten und Rundungsfehler auf (z.B. 2.0 + 3.0 = 4.999999542)

o       Single (4 Byte)

o       Double (8 Byte)

Unterschied: Genauigkeit, Wertebereich

 

·        Spezielle Ganzzahlen:

o       Datum/Uhrzeit (intern: Datum = Anzahl der Tage seit 01.01.1900; Zeit = Anzahl der Sekunden seit Mitternacht)

o       Währung (engl. Currency): skalierte Ganzzahl; intern wird die Zahl mit 10000 multipliziert, für die Darstellung wieder dividiert und auf zwei Stellen gerundet.

o       AutoWert (engl. AutoNumber) = Long Integer-Wert, der automatisch vergeben wird; es wird bei 1 zu zählen begonnen (nicht änderbar) und aufwärts gezählt; vergebene und dann gelöschte Nummern können nachträglich nicht mehr vergeben werden.

o       Ja/Nein (engl. Yes/No): kann nur zwei Werte haben, nämlich –1 für Ja und 0 für Nein

 

Objekt

·        OLE-Objekt: Object Linking and Embedding (z.B. Grafiken, Sound, Video,…). Diese sind nicht zu empfehlen, da sonst die Datenbank sehr groß werden kann.

 

 

3.2.3        Feldeigenschaften:

 

Jedes einzelne Feld, das angelegt wird, kann man mit bestimmten Feldeigenschaften versehen werden.

 

Feldeigenschaften für KundenNr

 

Feldeigenschaften für GebDatum

 

Format:

Dies ist das Ausgabeformat: Wie sollen die eingegebenen Daten angezeigt werden? Es sind Standard- und benutzerdefinierte Formate möglich.

 

Beispiele für Standardformate:

Datum kurz  19.06.1994

Euro              € 1.798,78

 

Beispiele für benutzerdefinierte Formate:

0000               Zahlen werden vierstellig dargestellt

#.##0,00        Zahlen werden mit 2 Kommastellen und Tausenderpunkt dargestellt

zwischen 5 und 10

>  ... bei Texten wird der Text dann in Großbuchstaben ausgegeben

 

Sowohl vorgegebene als auch Excel-Formate sind erlaubt.

 

Eingabeformat:

Bei Datumsangaben ist es sinnvoll. Access stellt eine „Maske“ dar, die als Eingabehilfe zu verstehen ist.

 

Beschriftung:

Ist nicht erwünscht, dass der Feldname in Formularen und Berichten automatisch als Beschriftung übernommen wird, kann hier eine eigene Beschriftung vergeben werden.

In Formularen wird diese statt des Feldnamens sichtbar. Sie ist empfehlenswert, wenn Feldname zu wenig aussagt, oder wenn wegen der Feldnamenregeln bewusst Schreibfehler vorkommen (z.B.: Geburtsdatum Straße, KdNr., …)

 

Standardwert:

Das ist der Wert, der in der Tabelle beim Anlegen eines neuen Datensatzes automatisch vorgeschlagen wird.

 

Gültigkeitsregel:

Zum Beispiel bedeutet  <Datum(), dass das eingegebene Datum in der Vergangenheit liegen soll

 

Gültigkeitsmeldung

Sie wird angezeigt, wenn die Gültigkeitsregel verletzt wird.

 

 

Eingabe erforderlich:

Hier ist zu beachten, dass ein Datensatz nicht gespeichert werden kann, so lange dieses Feld nicht mit einem konkreten Eingabewert belegt wurde. Daher nur wirklich bei jenen Feldern einsetzen, ohne die der Datensatz nicht identifizierbar wäre – in unserer Tabelle wäre das der Nachname.

 

Indiziert:

Damit wird der Suchvorgang beschleunigt (gezielt einsetzen: Nachname); Änderungs- und Löschvorgänge jedoch finden langsamer statt.

 

Leere Zeichenfolge:

Bei JA ist eine leere Zeichenfolge "" erlaubt, auch wenn eine Eingabe erforderlich ist.

 

Unicode-Kompression:

Ursprünglich wurden Informationen mit einem 7 bit-ASCII-Code (ASCII = American Standard Code for Information Interchange) gespeichert, einem Code, der heute noch zur Übertragung von E-Mails verwendet wird. Mit diesem Code konnten 27=128 Zeichen gespeichert werden; die Codierung war und ist international einheitlich. Um die nationalen Sonderzeichen unterzubringen, wurde der 8 bit-ASCII-Code eingeführt, der 256 Zeichen unterscheiden konnte. Die Zeichen mit den Codenummer 128 bis 255 waren aber länderspezifisch; sogenannte Code-Tabellen für jeden Sprachraum machten die Systeme inkompatibel. Ein Lösungsansatz wurde erst in den 90er-Jahren mit der Einführung des 16 bit-UNICODE-Systems gefunden. Hier sind insgesamt 65536 Zeichen codierbar, die Codierung ist wieder international einheitlich. Wird die Unicode-Kompression aktiviert, so wird nur ein 8 bit-Code gespeichert (speicherplatzsparend, aber nicht international kompatibel).

 

 

3.3   Nachschlagefelder:

 

Wir ergänzen nun das Feld „Familienstand“. Um sicherzustellen, dass man eindeutig: ledig, verheiratet, geschieden, verwitwet einträgt, erzeugt man ein Nachschlagefeld.

 

 

Bei den Feldeigenschaften wechseln wir auf die Registerkarte Nachschlagen.

 

Was ist ein Steuerelement?

 

Alles, was man in Windows sehen kann, besteht in Wirklichkeit aus vielen Steuerelementen (Controls); z.B. Kombinationsfeld (Kombination aus Textfeld und Listenfeld), Textfeld oder Listenfeld . Das Listenfeld sieht aus wie ein Kombinationsfeld ohne der obersten Zeile; es wird nicht mehr verwendet.

 

Herkunftstyp

Er ist in diesem Fall keine Tabelle oder Abfrage, sondern eine Werteliste.

 

Datensatzherkunft:

Wir füllen die Zeile mit den Werten aus, die durch Semikolon und ohne Leerschritt getrennt werden.

 

Nur Listeneinträge:

Wir verwenden JA, sonst wären auch andere Werte erlaubt.

 

 

 

In einem Formular wird immer das Steuerelement verwendet, welches in der Rubrik „Nachschlagen“ definiert wurde: im Normalfall also ein Textfeld.

 

Ergebnis in der Datenblattansicht:

 

 

Fehlermeldung, wenn ein Text eingegeben wurde, der nicht in der definierten Wertliste aufscheint:

 

 

3.4   Primärschlüssel und Indizes:

 

Das ist das Feld, über das jeder Datensatz eindeutig identifizierbar ist.

Als Primärschlüssel muss ein Feld verwendet werden, dessen Werte eindeutig sind. Das bedeutet, es muss aus der Kenntnis des Primärschlüsselwertes möglich sein, auf genau einen Datensatz rückzuschließen.

 

Beispiele für Primärschlüsselfelder:

 

Es gibt auch mehrteilige Primärschlüssel. Dieser wird beispielsweise aus der Kombination von Geburtsdatum und Sozialversicherungs­nummer gebildet wird. Dazu markiert man beide Zeilen mit gedrückter STRG-Taste. In diesem Fall Achtung: Die beiden Schlüsselsymbole sind irreführend; auch in dieser Tabelle gibt es nur einen Primärschlüssel!

 

Anmerkung: Jedes indizierte Feld in Access kann als „Sekundärschlüssel“ bezeichnet werden. Der Begriff wird aber im Zusammenhang mit Access-Datenbanken praktisch nicht verwendet, da – außer den bereits erwähnten Zeitvorteilen beim Suchen und Sortieren – ein Sekundärschlüssel keine weiteren Vorteile bringt.

 

 

3.5   Arbeiten mit Tabellen

 

3.5.1        Dateneingabe:

 

 

Wechseln Sie auf die Datenblattansicht der eben erzeugten Tabelle und geben Sie einige Datensätze ein. Sie sind nun Datenbank-Anwender.

 

 

Der Datensatz wird bei jeder Art von Navigation gespeichert. Das Speichern im Menü oder mit dem Symbol speichert lediglich das Aussehen (Spaltenbreite, Sortierung, …).

     Datensatz in Bearbeitung, noch nicht auf der HD gespeichert.

     Bereits gespeicherter Datensatz.

     Zeigt den aktuellen Datensatz.

      Nächster neuer Datensatz.

 

3.5.2        Tabelle sortieren

 

 

3.5.3        Suchen in der Tabelle

 

 

 

Verglichen wird mit ganzem Feld (whole field) oder mit einem Teil des Feldes (any part of field) oder mit dem Anfang des Feldinhalts (beginn of field).

 

3.5.4        Filtern in der Tabelle

 

Auswahlbasierender Filter

  Ausschalten des Filters mit . Es werden alle Datensätze angezeigt, die identisch mit der markierten Auswahl sind.

Auswahlausschließender Filter

 

 

Da kein Symbol dafür vorgesehen ist, wird dieser über das Menü [Datensätze] – [Filter] – [Auswahlausschließender Filter] aufgerufen. Alle ausgewählten Attribute werden nicht aufgelistet. Ausgeschaltet wird er mit .

 

Formularbasierender Filter

 filter by form. Im Formular werden verschiedenste Filtereinstellungen getroffen. Dann wird der Filter mit  aktiviert.Ausschalten des Filters wie vorher.

 

Spezialfilter

Er wird in der Praxis nicht verwendet. Stattdessen erstellt man eine Abfrge.

 

Übung: Erstellen Sie bitte eine weitere Tabelle tArtikel (oder tblArtikel) und geben Sie einige Beispiel-Datensätze ein!

 


 

3.6   Auswahlabfragen

 

 

Man unterscheidet prinzipiell zwei Typen von Abfragen:

 

a) Auswahlabfragen:

 

·        Teilbereich oder auch alle Daten aus einer Tabelle auswählen (entspricht Filter)

·        Daten aus mehreren Tabellen in einer Ansicht zusammenstellen

 

 

b) Aktionsabfragen:

 

·        „Aktionsabfragen“: Daten automatisch ändern, löschen und hinzufügen (z.B. Preise in einer Artikeltabelle automatisch um 5 % erhöhen)

 

 

3.6.1        Erstellen einer neuen Auswahlabfrage:

 

 

Überlegungen für die Gestaltung einer Auswahlabfrage:

Aus welcher Tabelle (bzw. welchen Tabellen) kommen die Daten?

Welche Felder (welche Spalten) sollen im Abfrageergebnis angezeigt werden (Projektion)? Felder müssen im QbE-Bereich (Query by Example) (Abfrage lt. Beispiel) eingegeben werden?.

Welche Datensätze (welche Zeilen) sollen im Abfrageergebnis angezeigt werden (Selektion)? Einschränken durch Kriterien (Criteria)-Vergabe.

 

Hilfreiche Tastenkombinationen:

Shift + F2       Feld vergrößern

F12                 Abfrage speichern

 

 

Wenn man eine neue Abfrage erstellen möchte, muss man angeben, woher die Daten kommen sollen. Mit  kann man einzelne markierte Tabellen auswählen und mit  fortsetzen.

 

 

 

QbE-Bereich

(Query by Example)

 

 

Um Felder in den QbE-Bereich zu stellen, hat man mehrere Möglichkeiten.

 

 

 

 

 

Mit Doppelklick auf die graue Überschrift der Tabelle tKunden können Sie alle Felder markieren.

 

 

Wenn Anzeigen a aktiviert ist, wird dieses Feld bei der Abfrage angezeigt.

 

Der Stern würde alle Felder gleichzeitig in eine Spalte eintragen.

 

3.6.2        Formulieren von Kriterien:

 

Im QbE-Bereich werden nun Kriterien formuliert, nach denen die Daten gefiltert werden.

 

Textfelder:

 

Suchmuster für Textfelder werden in Access immer mit einem doppelten Anführungszeichnen gekennzeichnet.

 

=“Müller“

exakte Übereinstimmung wird gefordert (es werden alle Datensätze im Abfrageergebnis ausgegeben, deren Eintrag im Nachnamen exakt dem Wort „Müller“ entspricht); das =-Zeichen kann weggelassen werden

Wie „S*“

Wie = Ähnlichkeitsoperator; es sind auch Jokerzeichen im Suchmuster zugelassen.

* ... 0 bis beliebig viele Zeichen (laut Norm: %)

Wie „M??er“

? ... exakt ein unbekanntes Zeichen (laut Norm: _)

<“S*“

A bis R

>“S*“

S bis Z; eigentlich >= (>= gibt es bei Texten nicht)

Zwischen „B*“ Und „S*“

B bis R

 

Datumsfelder:

 

Einträge in Datumsfeldern werden in Access mit # (Nummern-Zeichen) gekennzeichnet.

 

Zwischen #01.01.1970# Und #31.03.1970#

 

<Datum()

keine #-Zeichen, da Datum() eine Access-Funktion darstellt

 

Zahlenfelder:

 

Werte werden immer ohne spezielle Kennzeichnung (Anführungszeichen bzw. Nummernzeichen) eingetragen.

 

Zwischen 100 Und 500

<100 und >500

>34

 

<150

 

>=56,3

 

 

Ja-/Nein-Felder:

 

Sind eigentlich Zahlen, Werte daher ebenfalls ohne Anführungszeichen!

 

Wie Ja

Wie Wahr

Wie –1

Wie True

 

Wie Nein

Wie Falsch

Wie 0

Wie False

 

 

Leere bzw. nicht-leere Felder:

 

Nicht benützte Felder werden intern durch die symbolische Konstante <NULL> gekennzeichnet. <NULL>-Einträge können mit keinem anderen Wert verglichen werden, nicht einmal mit anderen <NULL>-Werten. Daher darf der Wie-Operator in diesem Fall nicht verwendet werden, es gibt eine eigene Syntax:

 

Ist Null

 

Ist Nicht Null

 

 

 

Kombination mehrerer Kriterien:

 

Diese erfolgt mit BOOLEschen Operatoren (AND, OR, NOT)

 

3.6.2.1.1 a) Verknüpfung mit AND:

 

Dabei stehenKriterien in derselben Zeile nebeneinander. Ein Datensatz erscheint nur dann im Abfrageergebnis, wenn beide Kriterien wahr sind.

 

Übliche Darstellung: „Wahrheitswerte-Tabelle“

 

 

A

B

A And B

wahr

wahr

wahr

wahr

falsch

falsch

falsch

wahr

falsch

falsch

falsch

falsch

 

3.6.2.1.2 b) Verknüpfung mit OR (nicht ausschließendes ODER):

 

Der Datensatz erscheint dann im Abfrageergebnis, wenn mindestens ein Kriterium oder auch beide wahr sind. Achtung: Es entspricht nicht dem üblichen Sprachgebrauch.

 

Dabei steht das erste Kriterium steht in der Kriterienzeile und das zweite Kriterium steht in der Oder-Zeile.

 

A

B

A Or B

wahr

wahr

wahr

wahr

falsch

wahr

falsch

wahr

wahr

falsch

falsch

falsch

 

 

 

Hier werden alle Kunden angezeigt, deren Nachname mit K oder mit A beginnt.

 

3.6.3        Berechnete Felder in Abfragen

 

Syntax: Feldname:Formel[Feldnamen], z.B.: Geburtsmonat:Monat([Geburtsdatum])

Das Gleichheitszeichen entfällt wegen dedm Doppelpunkt. Die Formel kann auch aus einer Funktion bestehen. Argumente werden Feldnamen, die in eckige Klammern geschrieben werden.

z.B. Name: [Vorname] &“ „& [Nachname]

Hier werden der Vorname und der Nachname in einem Feld vereinigt. Vor und nach & wird ein Leerschritt gesetzt, sonst werden diese nicht erkannt.

z.B. Gehalt in Euro: [Gehalt]/13,7603

Hier wird in einer weiteren Zelle ein Gehalt in Euro ausgegeben.

z.B. Anrede: wenn([weiblich]=-1;“Frau“;“Herrn“)

 

Das berechnete Feld wird nicht gespeichert. so wird die DB nicht unnötig belastet. Erst bei Abfragen wird dieses Feld erzeugt.

 

 

3.6.4        Parameterabfragen

 

Bei den Kriterien wird die Frage in [ ] geschrieben. Es gelten die gleiche Regeln wie bei Feldnamen (keine.[?“ und nicht identisch mit Feldnamen!).

z.B. Wie [Geburtsmonat eingeben]

 

3.6.5        Ausführen von Abfragen:

 

*        ... führt  eine Abfrage aus

 

*        .... wechselt in die Datenblattansicht

 

Bei Auswahlabfragen bedeuten beide Symbole dasselbe. Bei Aktionsabfragen wird mit dem 2. Symbol eine „Voransicht“ möglich, die zum Beispiel anzeigt, welche Datensätze geändert bzw. gelöscht werden sollen. Das Rufzeichen führt diese Aktionsabfrage dann durch.

 

3.6.6        Speichern von Abfragen:

 

 

Am besten soll man den Abfragenamen mit „q....“ (für „Query“) oder „a...“ (für „Abfrage“) beginnen lassen.

Es werden aber niemals die angezeigten Datensätze gespeichert, sondern nur die Abfrageanforderung in Form eines SQL-Statements (SQL = Structured Query Language). Damit wird Speicherplatz gespart, und jede Abfrage ist mit dem neuerlichen Durchführen wieder aktuell, da immer wieder auf die zugrunde liegenden Tabellen zugegriffen wird.

 

Der SQL-Befehl kann jederzeit angesehen (und geändert) werden:

 

 

Für fortgeschnittene Anwendungen werden Abfragen oft nicht in der Entwurfsansicht sondern in der SQL-Ansicht erstellt.

 

Beispiel:

Wichtig: Über die Datenblattansicht jeder Abfrage können Änderungen bzw. Neueinträge oder Löschungen in der Tabelle durchgeführt werden!

SELECT tKunden.KdNr, tKunden.Nachname, tKunden.Vorname, tKunden.Titel, tKunden.Anrede, tKunden.Strasse, tKunden.PLZ, tKunden.Ort, tKunden.GebDat, tKunden.weiblich

FROM tKunden

WHERE tKunden.Nachname Like "K*" OR tKunden.Titel Is Not Null;

 

 


 

 


3.7   Formulare zur Dateneingabe

 

 

Formulare dienen zur Dateneingabe für den Anwender. Die Eingabe erfolgt über eine Eingabemaske, die man erstellt. Die Daten werden in der Tabelle gespeichert. Üblicherweise werden nicht Tabellen, sondern Abfragen als Datenquelle verwendet.

 

Man kann in einem Formular dieselben Aktionen durchführen wie in der Datenblattansicht einer Tabelle:

Datensätze anzeigen, ändern und löschen

neue Datensätze hinzufügen

Datensätze sortieren, suchen, filtern

 

Wir erstellen ein Formular mit dem Assistenten.

 

 

Jedes Fenster wird Schritt für Schritt abgearbeitet. Bei Tabellen/Abfragen wählt man aus, woraus dieses Formular erstellt werden soll. Mit den Schaltflächen zwischen den verfügbaren und ausgewählten Feldern kann man jene selektieren, die am Formular angeführt werden sollen.

 

In diesem Fall soll ein Formular zur Eingabe von Kunden erstellt werden. Darum werden alle verfügbaren Felder ausgewählt. Mit der Schaltfläche „Weiter“ gelangt man dann zum nächsten Schritt.

 

 

 

Bei den nächsten folgenden Schritten kann man nun das Aussehen festlegen.

 

 

Schließlich wird noch ein Name vergeben und der Assistent  mit „Fertig stellen“ beendet.

 

 

Hier können nun die selben Aktionen wie in der Datenblattansicht einer Tabelle vorgenommen werden. Dies ist aber eine wesentlich komfortablere Möglichkeit, wo eine Datenverwaltung auch für reine Anwender möglich ist.

 

Die dazugehörige Entwurfsansicht sieht folgendermaßen aus:

 

 

Der schraffierte Bereich ist der tatsächlich für Formularinhalte verwendete Bereich.

Man unterscheidet Formularkopf, Detailbereich und Formularfuß.

Für Eingabeformulare kann die Regel gelten, dass alle Textfelder, die Datensätze anzeigen, und die dazugehörigen Bezeichnungsfelder immer im Detailbereich erstellt werden. Im Formularkopf könnte etwa eine Überschrift (mit Hilfe eines Bezeichnungsfeldes) stehen.

 

Konzept:

Alles, was in Windows sichtbar ist, wird als „Steuerelement“ (engl. „control“) bezeichnet.

Alle Vorlagen für die Erstellung von Steuerelementen befinden sich in der „Toolbox“.

 


Toolbox

 

* Bezeichnungsfeld (Label): enthält fixen Text, der nicht aus der Datenbank kommt

*  Textfeld (Text Box): enthält Datenbankinhalte (etwa Felder) oder Formeln

Beispiele:

=[Nachname]

="Euratsfeld, am " & Datum()

=Glätten([Titel] & " " & [Vorname] & " " & [Nachname])

=Datum()

* Rahmen (Frame): dient zum Gruppieren mehrerer anderer Steuerelemente (etwa Optionsfelder, Kontrollkästchen usw.)

* Umschaltfläche: dient als "Ein-/Ausschaltknopf", selten verwendet

*    Optionsfeld (Option Button, Radio Button): Teil einer Optionsgruppe; es kann jeweils nur eine Option einer Optionsgruppe angewählt werden

*   Kontrollkästchen (Check Box): Ist unabhängig anklickbar/nicht anklickbar; "Tri-State" möglich (für ja/nein/noch nicht gewählt)

*  Kombinationsfeld (Combo Box): Auswahl von mehreren "Menüpunkten" möglich

* Listenfeld (List Box)

*   Befehlsschaltfläche (Command Button): wird etwa zum Ausführen von Aktionen wie "OK" bzw. "Abbrechen" verwendet; wichtig in Menüformularen zur Benutzerführung

*   Bild (Picture): dient zum Einfügen von statischen Grafiken, vergleichbar mit einem Bezeichnungsfeld bei Texten

*  Objektfeld (Object): dient zum Einfügen von statischen Objekten (Grafiken, Sounds, Videos etc.)

*   gebundenes Objektfeld: enthält Objekte aus der Datenbank (vergleichbar mit einem Textfeld bei Texten)

*   Seitenumbruch: wird nur bei Berichten verwendet

*   Register: erzeugt mehrere "Karteikarten", zum Erstellen mehrseitiger Formulare

*   Unterformular-Steuerelement

* Linie

*  Rechteck

*Weitere Steuerelemente

 


3.8   Berichte

 

Berichte werden zur Datenausgabe verwendet. Mit dem Berichts-Assistent kann man rasch aussagekräftige Berichte erstellen.

 

Zuerst wird wiederum die zugrunde liegende Tabelle oder Abfrage ausgewählt.

 

 

Bei den Feldern werden alle ausgewählt, die für den Bericht notwendig sind.

 

 

Es kann nach verschiedenen Kriterien gruppiert werden.

 

Auch eine Sortierung ist möglich.

 

 

In den nächsten Schritten wird wieder das Aussehen festgelegt.

 

 

 

Schließlich benötigt der Bericht auch einen Namen und ist somit fertig.

 

In der Seitenansicht wird eine Vorschau auf den fertigen Bericht gegeben, die auch ausgedruckt werden kann.

 

 

Entwurfsansicht:

 

 

Bereiche in Berichten:

Berichtskopf / Berichtsfuß

Seitenkopf, Seitenfuß

Gruppenkopf, -fuß für jede Gruppierungsebene

Detailbereich

 

 

 

Raster ist die Größe des Druckbereiches und nicht die Größe des Papiers.

 

A4 hoch

                        2,5cm            

2,5cm

 

                                                      2,5cm

 

 

 

 

                        2,5cm

 

                        210 mm

 

 

 

In der Entwurfsansicht können noch verschiedenste Änderungen vorgenommen werden: (Die Toolbox wird gleich verwendet wie in Formularen.):

 

Überschrift als Bezeichnungsfeld einfügen

 

Bilder mit Toolbox einfügen

 

Durch Markieren des Tools  „Bild“ kann man mit dem Mauszeiger bei der gewünschten Stelle einen Rahmen aufziehen. Dann muss man den Pfad des Bildes angeben. Nach Fertigstellung kann man mit dem Kontextmenü Einstellungen ändern. Damit beispielsweise Grafiken nicht „abgeschnitten“ dargestellt werden, wird die Größenanpassung auf „Zoomen“ gestellt.

 

 

 

Der Name eines Steuerelements darf nie einem Feldnamen übereinstimmen! Mit der Funktion „Glätten“ werden gegebenenfalls Leerzeichen am Schluss und Leerzeichen am Anfang entfernt   glätten(). Summen werden im Berichtsfuß gebildet.

 

 

Beispiele für Berichte:

·        Telefonliste

·        Adress-Etiketten

·        Lieferschein

·        Rechnung

·        Krankenschein

·        Zeugnis

·        Laboranalyse Blutuntersuchung

·        erweiterte „Serienbriefe“ (Kurseinladung)

·        §58a-(„Pickerl“)-Ausdruck

·        Stundenpläne

 

 


4      Komplexere Datenbanken

4.1   Importieren und Verknüpfen von Tabellen

 

Beispiel: Importieren Sie die Tabelle "Kunden" aus der Nordwind-Beispieldatenbank.

 

Klicken Sie auf "Neu" und wählen Sie "Tabelle importieren":

 

 

Hinweis: Bei Office XP-Standardinstallationen finden Sie die Beispieldatenbank NORDWIND.MDB üblicherweise im Verzeichnis C:\Programme\Microsoft Office\Office10\Samples!

 

 

Wählen Sie die Nordwind-Datenbank aus und klicken Sie auf "Importieren". Es werden die Datenbankobjekte angezeigt, die importiert werden können. Wählen Sie bitte nur die Tabelle Kunden aus und klicken Sie auf "OK".

 

 

Die Tabelle Kunden erscheint nun im Datenbankfenster.

 

Auf demselben Weg können Sie eine Verknüpfung zu einer externen Tabelle herstellen. (Versuchen Sie das mit der Tabelle "Lieferanten" aus der Nordwind-Datenbank!)

 

 

 

Gegenüberstellung Import – Verknüpfung:

 

Importierte Tabelle

Verknüpfte Tabelle

Die Daten und die Tabellenstruktur werden tatsächlich kopiert.

Nur die Tabellenstruktur wird kopiert, die Daten bleiben in der externen Tabelle. Es wird kaum Platz in der Datenbank benötigt.

Die Tabellenstruktur kann jederzeit geändert werden.

Die Tabellenstruktur kann nicht geändert werden.

Auf die Daten in den Tabellen kann zugegriffen werden.

 


 

4.2   Beziehungen erstellen

 

Beziehungen

 

Autowert beim Schlüsselfeld                      è Long Integer Fremdschlüsselfeld

 

 

Relationenschema oder Struktur der Tabelle

 

Beziehung mit Drag and Drop ziehen

 

Referenzielle Integrität: Prüfmechanismus von Access, ob in Verkaufstabelle nur Kunden enthalten sind, die auch in der Kundentabelle angelegt sind

 

Tabelle in Datenbankbüchern = Relation

Beziehung = Relationship

 

 

tbl_Verkauf =Detailtabelle, weil sonst M:N-Beziehung bestande hätte

 

Aktualisierungsweitergabe an ein Detailfeld: Ist nicht immer erwünscht, muss im Einzelfall überlegt werden; genauso wenn ich die Löschweitergabe anklicke.

 

Beispiel: Wenn ein Kunde stirbt und ich den Datensatz in der tblKunden lösche, so werden auch alle Daten in der Verkaufstabelle gelöscht, die diesen Kunden betreffen. Eine Auswertung der Umsätze ist dann nicht mehr möglich.

 

Bei Beziehungen muss die Feldlänge und der Feldtyp übereinstimmen, nicht aber die Gültigkeitsregel.

 

 

 

Tipp: Detailtabelle in die Mitte und die Mastertabellen sternförmig anordnen.

 

 

4.3   Auswahlabfragen basierend auf mehreren Tabellen

 

Man sollte nie direkt mit den Tabellen, sondern immer mit Abfragen arbeiten.

 

Tipp: Beziehungen nur im Beziehungsfenster erstellen, nicht in der Abfrage! Beziehungen gelten nämlich nicht nur für die Abfrage, sondern für die gesamte Datenbank!

 

WICHTIG!

Niemals verknüpfte Primärschlüsselfelder in der Abfrage verwenden!

Verknüpfte Felder in der Detailtabelle MÜSSEN in der Abfrage enthalten sein!

 

„qryHauptabfrage“ ... enthält alle Felder aller verknüpften Tabellen mit Ausnahme

 

 

4.4   Nachschlagefelder

 

Beruhen auf intern erstellten Beziehungen

Werden üblicherweise in der Entwurfsansicht der Detailtabelle definiert.

 

Kombinationsfeld wählen

 

Herkunftstypen

Gebundene Spalte = Spalte mit Primärschlüssel

Spaltenbreite: für jede Spalte die eingestellt ist die cm angeben wenn ich sie auf 0 stelle wird sie ausgeblendet

 

 

Statt Wertlisten lieber Tabellen anlegen Wertlisten verändern die Programmierung Datenbank wird durch Wertlisten unflexibler

 

Nachschlagefelder beziehen sich meist auf andere Tabellen

 

Listenbreite nicht auf „Automatisch“ setzen, weil dann nur eine Spalte angezeigt wird; besser Summe der einzelnen Spalten in cm einsetzen.

 

 

 

4.5   Komplexe Nachschlagefelder, die auf in Beziehung gesetzten Tabellen beruhen:

 

Mit einem Nachschlagefeld ist es möglich, benutzerfreundliche Ansichten durch „Täuschung“ des Anwenders herbeizuführen.

 

Voraussetzung: Eine Beziehung zwischen der Detailtabelle „Häuser“ und der Mastertabelle „Hausmeister“ besteht, zum Beispiel:

 

 

 

 

 

Im Feld „Gebundene Spalte“ wird angegeben, in welcher Spalte der Tabelle „Hausmeister“ (in welcher ja nachgeschlagen werden soll) der Wert steht, der hier (im Feld HausmeisterNr) eingetragen werden soll. Üblicherweise ist das die Spalte 1, da zur Erstellung der Beziehung der Primärschlüssel HausmeisterNr verwendet wurde, der ja üblicherweise in der 1. Spalte stehen sollte.

 

Das würde folgende Ansicht nach sich ziehen:

 

 

In der Datenblattansicht wären die Hausmeisternummern sichtbar. Das ist aber für einen Anwender zu wenig aussagekräftig. Besser wäre es, in dieser Spalte den Nachnamen des Hausmeisters zu sehen, obwohl intern die Hausmeisternummer gespeichert wird.

 

Dazu bedient man sich des Tricks, dass der Eintrag „Spaltenbreiten“ für „HausmeisterNr“ auf 0 cm gesetzt wird. Dann wird automatisch das nächstfolgende Feld in der Spalte angezeigt:

 

 

Perfekt wird die Täuschung dadurch, dass als Beschriftung für das Feld nicht „HausmeisterNr“, sondern „Hausmeister“ gewählt wurde:

 

 

4.6   Aktionsabfragen

 

Übersicht:

 

ABFRAGEN

Auswahlabfragen

Aktionsabfragen

verändern weder den Datenbestand noch die Struktur der Datenbank

können den Datenbestand und die Struktur der Datenbank ändern

 

 

4.6.1        Anfügeabfrage

 

Wir wollen nun die Datensätze der importierten Tabelle in unsere "normale" Kundentabelle einfügen. Eine Anfügeabfrage bietet diese Möglichkeit.

 

Vorgang:

 

Schritt 1: Fügen Sie zunächst in Ihre tblKunden ein Textfeld "Voller_Name" hinzu.

 

Schritt 2: Erstellen Sie eine neue Abfrage in der Entwurfsansicht.

 

Schritt 3: Wählen Sie anschließend im Menü [Abfrage] – [Anfügeabfrage].

 

 

Achtung: Geben Sie bei der Tabellenauswahl die Quell-Tabelle (also unsere importierte Tabelle Kunden aus der Nordwind-Datenbank) an.

 

Schritt 4: Im Dialogfenster "Anfügen an" wählen Sie die Ziel-Tabelle aus (also Ihre ursprüngliche tblKunden):

 

Schritt 5: Ordnen Sie die einander entsprechenden Felder richtig zu!

 

 

Führen Sie die Anfügeabfrage aus und beobachten Sie das Ergebnis!

 

Achtung: Wenn Sie die Abfrage mehrmals ausführen, so werden auch die Datensätze mehrfach angefügt!

 

4.6.2        Aktualisierungsabfrage

 

Eine Aktualisierungsabfrage ändert Datenbestände automatisch.

 

Beispiel 1: Preiserhöhung um 10 %

In der Artikel-Tabelle sollen alle Preise automatisch um 10 % erhöht werden.

 

Vorgangsweise:

 

Schritt 1: Erstellen Sie eine neue Abfrage in der Entwurfsansicht.

 

Schritt 2: Wählen Sie anschließend im Menü [Abfrage] – [Aktualisierungsabfrage].

 

Schritt 3: Wählen Sie die Artikel-Tabelle, anschließend fügen Sie das Feld AEinzelpreis in den QbE-Bereich ein.

 

 

Schritt 4: Unter "Aktualisieren" ist ein Wert oder eine Formel einzutragen, die die neuen Werte repräsentiert. In unserem Fall sollen die alten Einzelpreise um 10 % erhöht werden; die korrekte Formel lautet also

 

[AEinzelpreis]*1,1

 

Führen Sie die Abfrage aus!

 

 

 

Beispiel 2: Namen trennen

Unser nächstes Problem: Wir haben eigentlich die Felder "Nachname" und "Vorname" für die Speicherung der Kundennamen vorgesehen; leider ist durch den Import aus der Nordwind-Datenbank nur die Kombination aus Vor- und Nachname in das Feld "Voller_Name" übernommen worden (das kommt davon, wenn man sich nicht an die 1. Normalform hält!):

 

 

Wie kann man die Namen trennen und gleichzeitig erreichen, dass die korrekten Vor- und Nachnamen automatisch in die entsprechende Spalte eingetragen werden?

 

 

Für die Erstellung der Formeln benötigt man Access-Funktionen. In der deutschen Version von Access ist es möglich, deutsche und englische Befehle wahlweise zu verwenden; in der englischen Version allerdings sind nur die englischsprachigen Anweisungen möglich.

 

Funktion (Syntax)

Bedeutung

Left(String; Anzahl Zeichen)

Links(String; Anzahl Zeichen) 

Schneidet aus einem Text, beginnend vom links, die angegebene Anzahl Zeichen heraus

Right(String; Anzahl Zeichen)

Rechts(String; Anzahl Zeichen)

Schneidet aus einem Text, beginnend vom rechts, die angegebene Anzahl Zeichen heraus

InStr(String;Teilstring)

Ermittelt die Position des ersten Auftretens des Teilstrings im Gesamtstring

Trim(String)

Glätten(String)

Schneidet führende und abschließende Leerzeichen ab

Mid(String;Beginn;Anzahl)

TeilStr(String;Beginn;Anzahl)

Schneidet einen Teil des Strings heraus, beginnend vom Zeichen "Beginn" werden "Anzahl" Zeichen herausgeschnitten

DatePart(Datum)

DatTeil(Datum)

 

 

 

4.6.3        Löschabfrage

 

Mit Löschabfrage können ganze Datensatze gelöscht werden.

 

Achtung: Der Löschvorgang kann nicht rückgängig gemacht werden!

 

Versuchen Sie, eine Löschabfrage zu erstellen, die alle Datensätze aus der Kunden-Tabelle löscht, deren Nachname mit S beginnt!

 

Der Screenshot soll eine Hilfestellung sein:

 

 

 

4.6.4        Tabellenerstellungsabfrage

 

Tabellenerstellungsabfragen werden oft zur Archivierung von Datenbeständen herangezogen. So könnten Sie beispielsweise versuchen, alle Verkaufsvorgänge vor einem bestimmten Datum zu archivieren. Die neu entstehende Tabelle befindet sich zwar sinnvollerweise in einer anderen Datenbank (zB AUFTRAEGE1998.MDB), Sie können aber im Kurs auch eine Archivtabelle in Ihrer Datenbank erzeugen.

 

Schritt 1: Erzeugen Sie eine neue Abfrage und wählen Sie für die Datenherkunft die Hauptabfrage:

 

 

Es ist also auch möglich, Abfragen zu definieren, die auf anderen Abfragen beruhen!

 

Schritt 2: Wählen Sie alle Felder der Hauptabfrage aus und fügen Sie sie in den QbE-Bereich ein! Als Kriterium können Sie eine Datumseinschränkung oder eine Einschränkung über die Auftragsnummer wählen.

 

Schritt 3: Wählen Sie anschließend im Menü [Abfrage] – [Tabellenerstellungsabfrage]. Als Namen der neuen Tabelle geben Sie beispielsweise tArchiv an.

 

 

Führen Sie die Abfrage aus! Das Abfrageergebnis wird in einer neuen Tabelle tArchiv gespeichert.

 

Achtung: Obwohl die Tabellenblattansicht von tArchiv und qHauptabfrage gleich aussieht, handelt es sich im einen Fall um eine Tabelle (die tatsächlich Daten enthält), im anderen Fall um eine Abfrage (die keine Daten enthält, sondern nur Tabelleninhalte darstellt)!

 

 

4.7   Formulare auf Grund von komplexeren Abfragen; Unterformulare

 

Erstellen Sie mit Hilfe des Formular-Assistenten ein Formular, welches auf der Hauptabfrage beruht!

 

Die einzelnen Schritte:

 

Im nächsten Schritt wählen Sie bei der Datengruppierung aus "nach tblKunden". Sie werden dann die Auswahl zwischen verknüpften Formularen oder einem Formular mit Unterformularen haben. Wählen Sie die Unterformulartechnik.

 

 

 

 

 

Die Formularansicht dieses gekoppelten Formulars wird dann in etwa folgendermaßen aussehen:

 

 

Sehen Sie bitte im Datenbankfenster nach: Es sind zwei Formulare entstanden. Der Zusammenhang zwischen beiden Formularen wird über ein spezielles Steuerelement hergestellt, welches im Hauptformular zu finden ist, das Unterformular-Steuerlement.

 

Sehen Sie sich nun die Eigenschaften des Unterformular-Steuerelements an:

 

Die Tatsache, dass die Daten richtig angezeigt werden, beruht auf der Erstellung einer internen Abfrage mit einem SQL-Statement, in diesem Fall:

 

SELECT tblVerkauf.VKNr, tblVerkauf.VAnzahl, tblVerkauf.VANr, tblArtikel.ABez, tblArtikel.AEinzelpreis FROM tblArtikel INNER JOIN tblVerkauf ON tblArtikel.ANr=tblVerkauf.VANr;

 

4.8   Parameterabfragen

 

Erstellen Sie eine Parameterabfrage qRechnungsnummer, basierend auf der Hauptabfrage. Als Parameter soll die Rechnungsnummer angegeben werden.

 

Als Kriterium legen Sie bitte folgendes fest:

 

 


 

4.9   Selbsterstellte Berichte (Reports)

 

Beispiel: Erstellen Sie einen Rechnungsbericht manuell! Dieser Bericht beruht auf der eben erstellten Parameterabfrage qRechnungsnummer.

 

Vorschlag für Rechnungsgestaltung:

 

 

Beachten Sie, dass auch hier wieder Aggregatfunktionen zur Gruppierung von Ergebnissen verwendet wurden, etwa die Summen-Funktion im Berichtsfuß!

4.10      Kreuztabellenabfragen

 

Kreuztabellenabfragen sind mit PivotTables in Excel vergleichbar. Sie diesen zur Zusammenfassung und Analyse umfangreicher Datenbestände.

 

Typische Fragestellungen sind:

 

Erstellen Sie eine Kreuztabellenabfrage aus der qHauptabfrage!

 

Für die korrekte Erstellung einer Kreuztabellenabfrage sind drei Feldkonfigurationen notwendig:

 

Beachten Sie folgende Grafik:

 

 

Das Ergebnis sollte ähnlich wie in folgender Grafik aussehen (abhängig von Ihren Eingaben):

 

 

 

4.11      Formulare zur Gestaltung einer Bedieneroberfläche

 

Steuerelemente: Befehlsschaltfläche

Verbinden von Befehlsschaltflächen bzw. anderen Steuerelementen mit Makros bzw. VBA-Code

 

Erstellen Sie ein Formular, welches auf keiner Datenquelle aufbaut! Speichern Sie dieses Formular unter dem Namen frmStart ab!

 

 

 

 

Formularbasierte Abfragetechnik: Hier hat man die Möglichkeit, Rückgabewerte eines Formulars (Werte, Namen,... die der Benutzer eingibt) in einer Abfrage zu bearbeiten.

 

Beispiel: Der Anwender möchte alle Kunden, deren Nachname mit a beginnt, aufgelistet haben (er gibt in die Textbox a* ein). Auf genau diese Eingabe wird in der Query verwiesen: Wie [Formulare]![FrmAbfrage]![TxtSuchmaske]

Es besteht natürlich auch die Möglichkeit, den Stern schon in der Query einzufügen.

 

Realisierung:

Man erstellt zuerst ein Formular. Im Formular fügt man eine Text-, Combo-,...Box ein. Unter Properties kann man ihr einen Namen geben. Anschließend setzt man einen Button und verknüpft mit dem sogenannten „Button Wizard“ die Textbox, Combobox etc. mit der Query. In der Query kann man dann den Rückgabewert bearbeiten, zum Beispiel:

 

[Formulare]![FrmAbfrage]![TxtSuchmaske]

 

Durch diese Angabe bei den Kriterien verweist man also auf die Eingabe des Anwenders.

 

4.12      Verhalten von Access im Netzwerk

 

Benutzerdefinierte Zugänge

Passwörter

 

4.13      Absichern einer Access-Anwendung

4.13.1  Einstellung der Startoptionen [Extras]-[Start]

 

Hier können Sie beispielsweise das Datenbankfenster ausblenden, die Access-Menüleisten nicht anzeigen oder statt "Microsoft Access" einen anderen Anwendungstitel anzeigen lassen.

 

 

 

Hinweis: Beachten Sie, dass das Datenbankfenster und die Menüleisten nur mehr angezeigt werden, wenn Sie Access im "administrativen Modus" starten: Öffnen Sie die MDB-Datei dazu mit gedrückter Umschalt-Taste (sonst haben Sie sich selbst ausgesperrt)!

 

4.13.2  Erstellen einer *.MDE-Datei

 

MDE-Dateien lassen sich zwar benutzen, eine Änderung der Datenbankstruktur ist jedoch nicht mehr möglich.

 

 

Eine Rückkonvertierung ins MDB-Format ist nicht vorgesehen.

 

4.14      MS Query

Importieren externer Daten in Excel über MS Query

OLAP-Cubes (Begriff)

Parameterabfragen mit MS Query