.: access :.
 

Einführung
Ich setzte bei diesem Workshop voraus, dass du Access besitzt, die Version ist im Grunde genommen egal. Access ist in Microsofts Office enthalten (Office 2003 Professional gibt es für 593,99€ bei Amazon). Wenn du kein Access besitzt, kannst du die Beispiel leider nicht nachmachen. Aber ohne Beispiele macht mein Workshop wenig Sinn, denn mit Beispielen lernt man besser!

Was ist Access?
Bei Access handelt es sich um ein DBMS (Database Management System) das mit der Beschreibungssprache SQL (Structured Query Language) arbeitet. Mit Hilfe des DBMS können Daten komfortabel in einer Datenbank gespeichert und verwaltet werden. Mit Hilfe von Abfragen die mit SQL erzeugt werden, können die Datenbestände gefiltert und sortiert werden.

Access-Grundlagen
Zuerst ein paar Grundlagen. Eine Datenbank besteht aus mindestens einer Tabelle (Relation), die Datensätze (Tupels) enthält. Die Datensätze wiederum bestehen aus Feldern, die die einzelnen Daten enthalten.
Also: Eine Datenbank kann mehrere Tabellen enthalten, die verschiedene Teilbereiche des "Datenbank-Themas" enthalten. Also wenn die Datenbank zum Beispiel zum Autoverleih erstellt werden soll, dann können die Fahrzeug-Daten in einer anderen Tabelle gespeichert werden, als die Ausleihdaten.
An dieser Stelle gleich ein Hinweis: Es ist besser viele Tabellen mit wenigen Feldern zu erstellen, als eine Tabelle mit sehr vielen Feldern! Denn viele Felder haben den Nachteil, dass die Tabelle sehr groß wird, und die Ausführung demnach recht lange dauert. Also die Felder auf mehrere Tabellen verteilen! Wenn die Daten in dem Kontext benötigt werden, kann man das Feld in die Tabelle einbinden, so dass das Feld in der Tabelle zu sehen, aber in Wirklichkeit nur die Daten des Feldes aus der anderen Tabelle angezeigt werden.

Warum man eine Datenbank braucht?
Mancher wird sich nun fragen wozu er eigentlich eine Datenbank braucht. Schließlich kann er dies mit Excel oder noch mit Karteikarten genauso gut und er braucht nichts dazu zu lernen. Das stimmt nicht!
Nicht ohne Grund haben Datenbanken im heutigen Berufsleben einen so großen Stellenwert eingenommen. Keine große Unternehmung arbeitet heutzutage noch mit Karteikarten oder erledigt die Datenverwaltung mit Excel. Schließlich gibt es sehr große Unternehmen (z.B. Oracle) die den größen Teil ihrer Einnahmen aus der Entwicklung von Datenbanksystemen erhält.
Was für Unternehmen gut ist, dass ist auch für den Privatuser nicht schlecht. Doch gute Gründe habe ich bis jetzt noch nicht genannt! Im Gegensatz zu Excel oder dem Karteikastensystem kann man in einer Datenbank schnell und komfortabel suchen. Mit SQL kann man in sekunden-schnelle tausende von Datensätzen durchsuchen (das musst du erst mal mit Karteikarten schaffen!!!). Auch lassen sich Einträge einfacher und schneller ändern als es in Excel oder auf Karteikarten möglich ist. Wenn sich der Nachname eines Mitarbeiters geändert hat, so ändert man diesen in Access genau einmal. Die restlichen Stellen werden in sekunden-schnelle mitabgeändert, da nur ein Verweis darauf besteht. Dadurch, dass man viele Daten nur einmal eingeben muss und diese durch Verweise an anderen Stellen einfügen lassen kann, spart man Speicherplatz. Dies hört sich bei 10 Kunden und 100 Aufträgen noch wenig an, doch wenn deine Datenbank erst einmal Milliarden von Aufträgen und tausende von Kunden umfasst, kann diese Tatsache die Anschaffung einer neuen teuren Festplatte ersparen. Für den Privatuser eher nebensächlich ist die Fähigkeit zum sogenannten Multiuserbetrieb, bei dem mehrere Mitarbeiter gleichzeitig auf die Datenbank zugreifen können und die Daten in Echtzeit für die anderen Benutzer sichtbar sind. Dies ist mit Excel und schon gar nicht mit Karteikarten möglich. Außerdem lässt sich eine Datenbank in andere Programme integrieren. So kann man schnell Serienbriefe erstellen; die Adressen und die Auftragsdaten kommen aus einer Datenbank. Man kann die (für den unerfahrenen Benutzer) komplizierte Datenbankstruktur vor dem Benutzer verstecken, der sich nicht damit befassen muss. Mit Excel oder sonderbar beschrifteten Karteikarten ist dies unmöglich.

Access-Datenbank erstellen
Also jetzt, da du die gröbsten Grundlagen zur Datenbank kennst und von den Vorteilen der Datenbanken überzeugt bist, werden wir an die Arbeit gehen, eine Datenbank zu erstellen.
Rufe dazu Access auf, ein Auswahl-Bildschirm erscheint. Da wir das Erstellen von Grund auf lernen wollen, wählen wir "leere Datenbank" aus, es bestünde nämlich auch noch die Möglichkeit, sich die Datenbank vom Assistenten erstellen zu lassen. Doch diese Auswahl eignet sich nicht für jemanden der lernen will mit Access umzugehen. Also markiere "leere Datenbank", indem du auf den Optionsknopf ((·)) daneben klickst. Bestätige dann mit "OK", nun will Access wissen, wo die Datenbank gespeichert werden soll. Es wird nämlich erst gespeichert und dann nur noch die veränderten Daten gespeichert. Wähle den gewünschten Pfad aus und gebe der Datenbank den Namen "Computer" und bestätige mit "Erstellen" um den Erstellungs-Vorgang einzuleiten. Nach einer kurzen Erstellungszeit ist die Datenbank fertiggestellt.

Tabellen zu Access-Datenbank hinzufügen
Die Datenbank enthält jedoch noch keine Tabellen, sodass die Datenbank noch nicht funktionstüchtig ist. Diesen Umstand wollen wir jetzt ändern, stelle sicher das der Registerreiter Tabellen ausgewählt ist, die anderen Registerreiter werde ich in Kürze auch noch erklären. Klicke dann auf "Neu", das Fenster "Neue Tabelle" erscheint und gibt die mehrere Punkte zur Auswahl, wähle den Punkt "Entwurfsansicht", wie schon bei der Erstellung der Datenbank, werden wir den grundständigen Weg wählen und die Tabelle von Grund auf erstellen. Klicke dann auf "OK", damit Access die Tabelle für dich erstellt. Nun ist die Tabelle erstellt, sie enthält jedoch noch keine Felder, sodass noch keine Daten in die Datenbank eingetragen werden können. Deshalb werden wir nun neue Felder hinzufügen. Der Cursor steht schon an der richtigen Stelle im Feldnamen (Attribut). Das erste Feld soll "Gerät/Hersteller" heißen, also gib unter Feldname "Gerät/Hersteller" ein. Drücke dann die [Tab]-Taste um in das Feld Felddatentyp (Wertebereich / Domäne) zu gelangen, die Standardeinstellung ist Text, das heißt die Daten die in das Feld kommen sind Text (Schrift + Zahlen). Behalte die Einstellung bei. Erstelle ein weiteres Feld mit dem Feldnamen "Prozessor" auch hier ist der Felddatentyp "Text". Das nächste Feld heißt "RAM", Felddatentyp ebenfalls "Text", dann "Festplatte" und "Text" und "Grafikkarte" und "Text". Zu guter Letzt das Feld mit dem Feldnamen "Preis" aber diesmal den Felddatentyp "Währung". Zum Ändern des Felddatentyps klicke auf den Pfeil neben dem Kombinationsfeld. Klicke nun auf den Schließen-Button am oberen rechten Fensterrand. Access fragt ob du die Tabelle speichern willst, klicke auf "Ja", nun will Access wissen wie die Tabelle heißen soll, gib den Namen (Entität) "Computer" ein. Und bestätige mit "OK". Nun wird gefragt ob ein Primärschlüssel angelegt werden soll. Ein Primärschlüssel ist ein Feld, das den Datensatz eindeutig identifiziert, das den Datensatz einmalig macht. Für unsere Zwecke wird eigentlich keiner benötigt, deshalb klicke auf "Nein".

Daten in Tabellen eintragen
Nun haben wir eine Tabelle mit 6 Feldern, doch die Tabelle enthält noch keine Daten, diese müssen wir jetzt noch eingeben. Um Daten in die Tabelle einzufügen, markiere die Tabelle und klicke auf "Öffnen". Dann erscheint die Tabelle in die du dann die Daten eingeben kannst. Ich habe dies mal mit meinem PC gemacht:

Datensatz

Für das nächste Thema benötigen wir ein paar Datensätze, damit man sehen kann, dass was passiert ist, trage deshalb zusätzlich zu meinem Rechner auch noch deinen und deinen Traum-PC ein!

Die anderen Registerreiter
Ich habe oben erwähnt, dass es noch andere Registerreiter gibt. Ich werde sie jetzt hier beschreiben. Der zweite, also der nach Tabellen kommende Registerreiter, ist "Abfragen". Mit Abfragen werden wir uns als nächstes beschäftigen. Der nächste Registerreiter "Formulare" bietet dem Benutzer eine schönere Benutzeroberfläche um seine Daten einzugeben. Mit dem Registerreiter "Berichte" kann man sich alle Datensätze, oder aus einer Abfrage abfallende Datensätze in einer Übersicht ausdrucken lassen. Diese Übersicht ist nicht nur eine einfache Aufzählung, es ist auch möglich, diese mit Grafiken ansprechend zu gestalten. Mit dem Registerreiter "Makros" kann man Access dazu anweisen beim Start der Datenbank etwas zu tun. So kann man Access anweisen beim Start ein Formular zur Dateneingabe aufzurufen. Der Registerreiter "Module" ist zur Programmierung von Zusatzmodulen verwendbar.

Abfragen
Nun zu Abfragen: Eine Abfrage ist eine abgespeicherte Schablone, die aus einer oder mehreren Bedingungen besteht. Nach dieser Schablone wird nach der Ausführung eine virtuelle Tabelle erzeugt, die genau den Bedingungen entspricht und die Daten aus den anderen Tabelle bezieht, die man bei der Abfrage mit einbezieht. Auf diese Weise kann zum Beispiel bei uns der günstigste Computer herausgesucht werden, oder alle mit Pentium-III-Prozessor.
Aber Abfragen können nicht nur das; mit Hilfe von Abfragen können auch automatische Berechnungen durchgeführt werden. So kann an Hand den Daten der Datenbank automatisch für einen Auftrag aus der Angebotsmenge und dem Preis der Gesamtpreis berechnet werden. Dies geschieht mit sogenannten berechneten Feldern. Dies macht man in dem man statt des Feldnamens z.B. folgendes eingibt: "Nettopreis: [Menge]*[VKPreis]", in Worten heißt das das Feld Nettopreis soll in die Abfrage mit aufgenommen werden und errechnet sich aus den Feldern Menge und VKPreis die man multipliziert um das gewünschte Ergebnis zu erhalten.
Doch die bis jetzt erwähnten Abfragemöglichkeiten umfassen immer noch nicht den wirklichen Funktionsumfang von Abfragen in Access. Ich habe bis zum jetzigen Zeitpunkt lediglich Auswahlabfragen genannt. Es gibt außerdem noch sogenannte Aktionsabfragen. Wie der Name schon vermuten lässt, wird eine Aktion ausgeführt, die Tabelle verändert. So ist es auch. Mit Hilfe von Aktualisierungsabfragen können veraltete Datenbestände aktualisiert werden. So können die Preise für ein Produkt automatisch um 10% gesenkt werden, dabei durchsucht die Abfrage die Tabelle nach Datensätzen auf die die Bedingungen zutreffen und führt dann z.B. eine Berechnung von einer Preissenkung um 10% durch. Mit der Löschabfrage können z.B. alte Kunden aus den Datenbeständen getilgt werden. Mit Anfügeabfragen können Datensätze einer Tabelle an eine andere (oder in die Tabelle einer anderen Datenbank) angehängt werden. Wenn man also z.B. die Kunden nach Vertriebsgebieten in verschiedenen Tabellen gespeichert hat, so kann man sie von der einen Tabelle in die neue umziehen lassen, wenn der Kunde in das andere Vertriebsgebiet gezogen ist. Mit Tabellenerstellungsabfragen kann man schließlich neue Tabellen erzeugen.

Abfragen erstellen
Damit das Sortieren aber erst Sinn macht, bzw. Wirkung zeigt, müssen mehrere Datensätze vorhanden sein, deshalb habe ich dich vorhin aufgefordert noch ein bis zwei Computer zu deiner Tabelle hinzuzufügen.
Wechsle also nun zum Registerreiter "Abfragen" um eine neue Abfrage zu erstellen. Klicke wie bei der Erstellung von Tabellen auf "Neu" um eine neue Abfrage zu erstellen. Wähle auch hier die "Entwurfsansicht", und bestätige mit "OK". Access will jetzt wissen, welche Tabellen bei der Abfrage hinzugezogen werden sollen (es können natürlich auch mehrere sein). Weil es bei uns nur eine Tabelle gibt, braucht man nicht zu ändern und muss nur auf "Hinzufügen" klicken. Die Tabelle wird dann miteinbezogen. Klicke dann auf "Schließen" um das kleine Auswahlfenster zu schließen.

Die erste Abfrage (Datensätze nach Preis sortieren)
Unsere erste Abfrage soll die Computer nach dem Preis ordnen. Screenshot AbfrageerstellungMarkiere durch anklicken den Menüpunkt "Gerät/Hersteller" und verschiebe ihn bei gedrückter Taste in das freie Feld unten, beim Verschieben wird ein rechteckiges Symbol angezeigt.
Dies werden wir jetzt auch bei allen anderen Feldern machen, aus dem kleinen Fenster in die leeren Felder unten verschieben.
So um den kleinsten Preis feststellen zu können brauchen wir die Funktion "Min". Also klicken sie auf das Funktionen-Symbol (Summenzeichen) in der Symbolleiste, um die Funktionen zu aktivieren. Die Felder unten verändern sich (siehe Bild) und eine neue Zeile ist hinzu gekommen. Wähle das Feld in dem sich "Preis" befindet aus und klicke dort in die Zeile in der die Funktionen stehen, neben dem Feld erscheint ein kleiner Pfeil, klicke darauf um das Kombinationslistenfeld für die Funktionen zu öffnen. Wähle dann den Menüpunkt "Min".
Nun kannst du die Abfrage starten, klicke dafür auf das Ausrufezeichen (Ausrufezeichen). Die Abfrage sortiert dir nun die Datensätze nach dem Preis. Wenn du mehr als drei preislich verschiedene Datensätze eingegeben hast ist die Sortierung sehr gut zu sehen.
Schließe dann das Fenster mit dem Schließen-Button am oberen rechten Fensterrand und speichere die Datei unter dem Namen "Preis".

Die zweite Abfrage (alle PCs mit Pentium III anzeigen)
Es können unendliche viele Abfragen entwickelt werden, mit etwas herumprobieren kannst du die verschiedensten Dinge aus der Datenbank entnehmen. So kannst du dir zum Beispiel alle PC mit Pentium-III-Prozessor anzeigen lassen:
Das erste Feld soll "Prozessor" sein, das zweite Feld ist Sternchen (*) (Sternchen steht in der Datenbank für alle Felder). Mache dann den Hacken bei dem Feld Prozessor heraus, da das Feld ansonsten doppelt angezeigt wird. Schreibe dann unter Kriterien "Pentium III*", d.h. in dem Feld Prozessor muss die Zeichenfolge "Pentium III" stehen, das Sternchen gibt an, dass danach noch etwas kommen darf, bei uns die MHz-Zahl.

Parameterabfrage
Ein Problem bei den bisherigen Abfragen ist, dass wenn sich die Bedingung ändert, man entweder eine neue Abfrage erstellen muss oder mühsam in der bestehenden Abfrage die Bedingung abändern muss. Beides ist nicht akzeptabel, wenn ein unerfahrener Benutzer alleine mit den Abfragen arbeiten soll. Wenn sich die Bedingung nur geringfügig ändert, also z.B. statt nach "Müller" nach "Mayer" gesucht werden soll, gibt es dafür eine sehr gute und schnelle Lösung. Die Parameterabfrage. Hier ändert der Benutzer einfach die Bedingung, in dem er sie selbst eingibt, denn nun erscheint ein Fenster in das er den Namen eingeben soll; und dass kann jeder.
Wir nehmen das Beispiel "zweite Abfrage" zum Ausgangspunkt, es soll dem Benutzer überlassen bleiben ob er nicht lieber nach Pentium 4 und Athlon-Prozessoren suchen will. Dazu muss man die Abfrage nur sehr geringfügig ändern.
Löschen sie das Kriterium "Pentium III*" beim Prozessor und schreiben sie folgendes rein: "[Bitte Prozessortyp eingeben:]&*"
Bei der Ausführung der Abfrage erscheint nun eine Eingabeaufforderung in der der Text "Bitte Prozessortyp eingeben:" erscheint. Das "&*" soll das gleiche bewirken wie "Pentium III*" bewirken sollte: alle Taktfrequenzen des Pentium III sollen angezeigt werden. Bei der Parameterabfrage muss man nur noch ein "&" vor das "*" setzen.

Formulare
Bis jetzt haben wir die Datensätze immer in der sogenannten Datenblattansicht gesehen. In dieser wirkt das ganze sehr kompliziert und gedrängt, außerdem fehlt dem ganzen die persönliche Note. Mit Formularen können die Datensätze viel ansprechender angezeigt werden. Mit Formularen kann man der Datenbank ohne Programmiertechnischen Aufwand eine ansprechende Benutzeroberfläche geben, die die komplizierten Hintergründe von Access vor dem unerfahrenen Benutzer verstecken kann.

Formulare erstellen
Der Registerreiter nach "Abfragen" ist Formular. Klicke in dem Registerreiter, wie immer, auf "Neu" um ein neues Formular zu erstellen. Zuallererst klicke auf den kleinen Pfeil neben dem noch leeren Kombinationsfeld und wähle den Menüpunkt "Computer" aus. Nun wähle dann den Menüpunkt "Formularassistent" aus dem großen Listenfeld. Mit "OK" wird der Assistent gestartet. Im nächsten Fenster klicke auf den ">>"-Button um alle Menüpunkte in das "Ausgewählte Felder"-Fenster zu verschieben. Im nächsten Fenster kannst du dir aussuchen wie die Eingabe-Felder angeordnet sein sollen. Wähle dort "Tabellarisch" und klicke auf "Weiter >". Im nächsten Fenster wird nach dem gewünschten Stil gefragt, wähle "Standard" aus und klicke auf "Weiter >". Im letzten Fenster kannst du deinem Formular noch einen Titel geben, nenne es "Eingabe-Formular" und klicke auf "Fertigstellen". Das Formular wird erstellt und dir danach angezeigt. Wenn du noch etwas an dem Formular verändern willst, wechsle mit dem Button "Entwurfsansicht" (Lineal mit Stift), der sich in der unteren Symbolleiste befindet, in die Entwurfsansicht des Formulars. Dort können alle Elemente des Formulars verändert werden.

Berichte
Berichte dienen der Ausgabe der Datenbank auf einem Drucker. Nicht immer ist es sinnvoll die Daten nur auf einem Computer greifbar zu haben. Manchmal braucht man von Teilen des Datenbestandes für Kunden einen Ausdruck. Ein gutes Beispiel wäre die Auftragsbestätigung. In dieser wird der in der Datenbank verbuchte Geschäftsprozess noch einmal übersichtlich für den Kunden ausgedruckt.
Man kann die ganze Tabelle ausdrucken, beispielsweise, wenn man auf Reisen eine Telefonliste aller Mitarbeiter braucht oder mit Hilfe einer vorangestellten Abfrage nur einen kleinen Datenbestand, beispielsweise der Auftrag von Herrn Müller. Dort können auch berechnete Felder mit ausgedruckt werden, die ich bereits bei den Abfragen erwähnt habe.

Berichte erstellen
Der Registerreiter Bericht, erzeugt. Wie bei allen vorhergehenden Aktionen klicke auf "Neu" wähle dann wie bei der Formularerstellung in dem Kombinationslistenfeld den Menüpunkt "Computer" aus. Wähle dann den Menüpunkt "Berichtsassistent" aus dem großen Listenfeld aus und klicke auf "OK". Im nächsten Fenster verschiebst du, wie schon bei dem Formularassistenten, mit dem ">>"-Button alle Felder in die "Ausgewählten Felder". Klicke dann auf "Weiter >", in dem nächsten Dialog muss nichts verändert werden, so dass du mit "Weiter >" zum nächsten Schritt gehen kannst. Auch der folgende Dialog ist für uns belanglos und kann deshalb mit "Weiter >" geschlossen werden, hier könnte man die Datensätze alphabetisch ordnen lassen. Stelle beim nächsten Dialog sicher, das das Optionsfeld bei der Layout-Option "Tabellarisch" aktiviert ist und gehe mit "Weiter >" weiter. Im nächsten Fenster kannst du noch einen Stil für den Bericht wählen. Ich denke mal der Stil "Geschäftlich" ist recht schön, so dass wir in auswählen sollten. Also wähle den Punkt "Geschäftlich" aus dem Listenfeld aus und klicke dann auf "Weiter >" um zum nächsten Dialog zu gelangen. Beim letzten Dialog gib unter dem Berichts-Titel "Computer" ein und klicke auf "Fertigstellen" um die Erstellung abzuschließen. Anschließend wird dir der Bericht gezeigt, wenn du noch etwas daran ändern willst, wechsle mit Hilfe des "Entwurfsansichts"-Buttons (Lineal mit Stift) in die Entwurfsansicht. Dort kannst du alle Elemente des Formulars verändern.

Weitere Abfragen
Ich habe noch ein paar andere Abfragen gemacht, die du dir downloaden kannst. Ich finde man sollte sich die Abfragen mal ansehen, vor allem, weil sie nur 8,5 KB haben (Das sollte nur etwa 10 sec mit einem 56k Modem dauern).

Related Workshops: Datenbankprogrammierung mit VB 1 \\ Datenbankprogrammierung mit Java
Related Files: Datenbank mit den Abfragen[.zip | 8,5 KB]
Workshop als pdf

<Zurück