|
Zu diesem Buch – sowie zu vielen weiteren O’Reilly-Büchern – können Sie auch das entsprechende E-Book im PDF-Format herunterladen. Werden Sie dazu einfach Mitglied bei oreilly.plus+: www.oreilly.plus |
Datenbanken verstehen, entwerfen und entwickeln – Für Access 2007 bis 2019
6. Auflage
Andreas Stern
Lektorat: Ariane Hesse
Korrektorat: Sibylle Feldman, www.richtiger-text.de
Satz: Haselier IT Services Übach-Palenberg
Herstellung: Stefanie Weidner
Umschlaggestaltung: Michael Oréal, www.oreal.de unter Verwendung eines Fotos von © iStock by Getty Images, jacoblund
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
ISBN:
Print 978-3-96009-116-5
PDF 978-3-96010-333-2
epub 978-3-96010-334-9
mobi978-3-96010-335-6
6., aktualisierte Auflage
Copyright © 2019 dpunkt.verlag GmbH
Wieblinger Weg 17
69123 Heidelberg
Dieses Buch erscheint in Kooperation mit O’Reilly Media, Inc. unter dem Imprint »O’REILLY«. O’REILLY ist ein Markenzeichen und eine eingetragene Marke von O’Reilly Media, Inc. und wird mit Einwilligung des Eigentümers verwendet.
Hinweis:
Dieses Buch wurde auf PEFC-zertifiziertem Papier aus nachhaltiger Waldwirtschaft gedruckt. Der Umwelt zuliebe verzichten wir zusätzlich auf die Einschweißfolie.
Schreiben Sie uns:
Falls Sie Anregungen, Wünsche und Kommentare haben, lassen Sie es uns wissen: kommentar@oreilly.de
Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen.
Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen Warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen.
Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autor noch Verlag können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen.
5 4 3 2 1 0
Ein Leserbrief
Einleitung
Warum ist Access anders?
Was habe ich mit Ihnen vor?
Wer sollte dieses Buch kaufen?
1Ein Blick hinter die Kulissen
In diesem Kapitel
Technische Voraussetzungen
Ist Access eine Datenbank?
Access ohne Access?
Die Access-Anwendung
Formulare benutzen
Das Formular frmMitglieder
Das Formular frmMannschaften
Das Formular frmTraining
Das Formular frmTypen
Hilfe!
Benutzerfreundlichkeit
Tabellen, Felder und Primärschlüssel
Beziehungen und Fremdschlüssel
Datenmodellierung muss sein!
Formulare entwerfen
Eigenschaften von Formularelementen
Datensatzquelle
Unterformulare
Datensatzherkunft und Steuerelementinhalt
VBA – ganz kurz
VBA-Prozeduren
Schaltflächen starten VBA-Prozeduren
Was ist wichtig?
2Datenmodellierung
In diesem Kapitel
Ein Unternehmensdatenmodell
… und seine Erstellung
Überall Bemerkungen
Preise – wofür?
Kunden ohne Aufträge?
Kein Material und keine Leute?
Keine Fremdschlüssel?
Fragen, fragen, fragen!
Anschrift1, Anschrift2
Typ
Status
Material vs. Materialart
Mengen und Zeiten in Zwischentabellen
Die strukturierte Szenario-Beschreibung
Die Überführung in das physische Modell
Das Vereinsmodell
Das logische Datenmodell
Das physische Datenmodell
Das Privatmodell
Das logische Datenmodell
Das physische Datenmodell
Hierarchische Ordnungen
Modellbesonderheiten und -erweiterungen
1:1-Beziehungen
Dreifachbeziehungen
Rollen in Beziehungen
Typ, Art, Status
Funktionshinterlegung
Listen
Benutzerverwaltung
Flexible Objekteigenschaften
Wie alles zusammenhängt
Modellierungswerkzeuge
PowerPoint
Visio
»Richtige« Tools
Interviews sind schwierig
ADaMo
Was ist wichtig?
3Erste Formulare
In diesem Kapitel
Tabellen anlegen
Beziehungen definieren
Referentielle Integrität
Beziehung einer Tabelle zu sich selbst
Kardinalitäten
Löschweitergabe
Versionen
Testdaten eingeben
Auf die Reihenfolge achten
Aus Fehlern lernen
Nachschlagefelder
Ein einfaches Stammdatenformular
Schritt 1: Mit dem Formular-Assistenten Formulare erzeugen
Schritt 2: Text- und Bezeichnungsfelder anordnen
Schritt 3: Listenfeld hinzufügen
Schritt 4: Schaltflächen hinzufügen
Schritt 5: Standardbedienelemente entfernen
Schritt 6: VBA-Code ergänzen
Schritt 7: Layout gestalten
Ein Formular mit Unterformular
Schritt 1: Mit dem Formular-Assistenten Formulare erzeugen
Schritt 2: Text- und Bezeichnungsfelder anordnen
Schritt 3: Listenfeld hinzufügen
Schritt 4: Schaltflächen hinzufügen
Schritt 5: Standardbedienelemente entfernen
Schritt 6: VBA-Code ergänzen
Schritt 7: Layout gestalten
Einzelzuordnung
Schritte 1 bis 3
Schritt 4: Aktive Bedienelemente hinzufügen
Schritte 5 bis 7
Die beiden Grundbausteine
Das Startformular
Was ist wichtig?
4Daten für die Datenbank
In diesem Kapitel
Die Ausgangssituation
Datenarten
Zahlen
Datumsangaben
Texte
Excel-Funktionen zur Textbearbeitung
Generierung von Testdaten
Erzeugung der Daten in Excel
Import der Daten in Access
Übernahme von Echtdaten
Datenorganisation: Datenmenge
Formeln eingeben
Datenqualität
Noch einmal: Datenorganisation
Was ist wichtig?
5VBA – Grundlagen
In diesem Kapitel
Programmieren – muss das sein?
Ein Beispiel
»Hackermentalität«
Fehler finden und korrigieren
Das VBA-Fenster
Syntaxfehler
Laufzeitfehler
Logische Fehler
Die Entwicklungsumgebung
Der Editor
Objekte und Ereignisse
Der Debugger
Symbolleiste anpassen
Programmierbefehle
Das Drumherum
Hallo Welt!
If-Then-Else
For-Next
Do-While-Loop
Select-Case
MsgBox
Laufzeitfehler verhindern
Benutzereingaben prüfen
Bedienreihenfolge erzwingen
Fehlfunktionen vorhersehen
OnError
Was ist wichtig?
6Steuerelemente
In diesem Kapitel
Eigenschaften von Steuerelementen
Bezeichnungsfeld
Textfeld
Schaltfläche
Der Befehlsschaltflächen-Assistent
Programmierung der Schaltfläche
Nachträgliche Namensänderung
Listenfeld und Kombinationsfeld
Unsichtbare Spalten
Gebundene Spalte
Spaltennummerierung
Verwenden der Assistenten
Optionsgruppe
Registerkarten
Enabled, Visible und Locked
Exakte Platzierung
Das eigene Menüband
XML in Ten Minutes
Der XML-Code für unser Menüband
1. Schritt: Definition der Struktur
2. Schritt: Bekanntmachen der Definition
3. Schritt: Anzeige des Menübands
4. Schritt: Programmierung der Klicks
Ein letztes Sahnehäubchen
Was ist wichtig?
7SQL
In diesem Kapitel
Wofür SQL?
Die Übungsdatenbank
CREATE, INSERT, UPDATE, DELETE
CREATE TABLE
INSERT INTO
UPDATE
DELETE FROM
Ausprobieren?
SELECT
Daten aus einer Tabelle abrufen
Daten aus mehreren Tabellen abrufen
Ausprobieren!
Inner Join
Outer Join
Schnell soll es gehen!
Was fehlt noch?
Abfragen!
Beziehungen in Abfragen
Weil es so wichtig ist
VBA, SQL – und was noch?
Was ist wichtig?
8VBA – Anwendungen
In diesem Kapitel
Die Datenbank
Gebundene und ungebundene Formulare
»Handgeschnitzte« Kommunikation
Recordsets
Direktzugriff mit SQL
Eingebettetes Makro vs. Ereignisprozedur
Speichern der Formularinhalte
Mit einem Recordset
Mit SQL
Implizites Speichern
Muss-Felder überprüfen
»Geisterdaten«
Datenauswahl mit Listenfeldern
Exkurs: Das Objektmodell
Lesen von Werten aus Tabellen
Mit einem Recordset
Mit SQL
Neue Datensätze in Tabellen anlegen
Mit einem Recordset
Mit SQL
Löschen von Werten in Tabellen
Mit einem Recordset
Mit SQL
Löschen rückgängig machen?
Standardlösungen
VBA-Code in Formularentwürfen ergänzen (»Schritt 6«)
Kombinationsfelder absichern (»Einzelzuordnung, Schritt 4«)
Erste Zeile eines Listenfelds anzeigen
Sub-Prozeduren
Text in ein Bezeichnungsfeld schreiben
Prüfen, ob ein bestimmter Datensatz existiert
Disponieren
Bearbeiteten Datensatz nach Requery wieder anzeigen
Formular von einem anderen Formular aus öffnen
Dialogfeld für die Datensuche öffnen
Alle Datensätze eines Recordsets bearbeiten
Alle Textfelder leeren (For Each …)
Auf das übergeordnete Formular zugreifen (Parent)
Abhängige Listen- und Kombinationsfelder (RowSource)
Zwischen verschiedenen Anzeigemodi umschalten (Umschaltfläche)
Mehrere Werte aus einer Liste zuordnen
Mehrere Spalten in einem Kombinationsfeld anzeigen
Was ist wichtig?
9Formulargrundtypen
In diesem Kapitel
Eine Tabelle
Eine Tabelle mit einer 1:n-Beziehung
Eine Tabelle mit einer n:1-Beziehung
Eine Tabelle mit einer 1:n:1- und einer n:1-Beziehung
Nur Fremdschlüssel in der Zwischentabelle
Daten in der Zwischentabelle
Eine Tabelle mit zwei n:1-Beziehungen
Eine Tabelle mit einer 1:m:n- und einer 1:n:1-Beziehung
Eine Tabelle mit einer l:n- und einer n:1-Beziehung
Eine Tabelle mit zwei l:n:1-Beziehungen
Eine Tabelle mit zwei l:n- und zwei n:1-Beziehungen
Was ist wichtig?
10Datenbankanwendungen
In diesem Kapitel
Vorgehensweise
Schrittfolge
Versionen
Entwicklung für andere
Aufteilung in Frontend und Backend
Das Problem
Die Lösung
Das verbleibende Problem
Welche Version ist es denn?
Frontend-gesteuertes Backend-Update
Schutz der Datenbank
Schutz vor unbefugten Personen
Der Rundumschutz
Schutz vor befugten Personen
… durch ein VBA-Kennwort
… durch die Erzeugung einer .accde-Datei
Datenbankaufteilung plus .accde-Datei
Access ohne Access?
Wie geht's weiter?
Abfragen
Berichte
Makros
Dateien lesen und schreiben
Benutzerberechtigungen
Mehrbenutzerzugriff
DAO und ADO
Was ist wichtig?
AWichtige Standardaktionen durchführen
So geht es mit Access 2016/2019
Datenbank erstellen und öffnen
Tabellen und Beziehungen
Abfragen
Formulare
Makros
VBA
So geht es mit Access 2013
Datenbank erstellen und öffnen
Tabellen und Beziehungen
Abfragen
Formulare
Makros
VBA
So geht es mit Access 2010
Datenbank erstellen und öffnen
Tabellen und Beziehungen
Abfragen
Formulare
Makros
VBA
So geht es mit Access 2007
Datenbank erstellen und öffnen
Tabellen und Beziehungen
Abfragen
Formulare
Makros
VBA
BNamenskonventionen
Namen für Access-Objekte
Namen für Steuerelemente auf dem Formular
Namen für Variablen im VBA-Code
Namen für Tabellen und Tabellenspalten
Stichwortverzeichnis
Hallo Herr Stern,
meine Buchverwaltung mit Mahnung läuft jetzt, wie ich es wollte. Mein Fehler war, ich habe zu viel im Internet gesucht, anstatt in Ihrem Buch nachzuschlagen.
Nachdem ich mich mehr mit Ihrem Buch beschäftigt habe, konnte ich meine Fehler schnell beseitigen. Ich habe vor dem Kauf des Buches lange in einer hiesigen Buchhandlung in diversen Access-Büchern gelesen. Bei keinem hatte ich den Eindruck, dass es mir richtig weiterhilft. Ganz zum Schluss habe ich dann noch Ihr Buch entdeckt und spontan gekauft.
Jetzt, nachdem ich das Buch schon genauer kenne, muss ich sagen: »Volltreffer.« Vielen Dank noch mal.
Helmut Ebeling
Warum ist Access anders?
Was habe ich mit Ihnen vor?
Wer sollte dieses Buch kaufen?
Haben Sie Access auf Ihrem Rechner? Bestimmt!
Haben Sie Access schon einmal gestartet? Bestimmt!
Konnten Sie etwas damit anfangen? Höchstwahrscheinlich nicht!
Sehen Sie – und genau darum habe ich dieses Buch geschrieben: weil ich es furchtbar schade finde, dass diese wunderbare Software ungenutzt auf so vielen Rechnern herumliegt.
Warum ist das so? Wenn Sie Word, PowerPoint oder Excel starten, können Sie sofort auch ohne Übung etwas damit anfangen – nämlich einen Text schreiben, eine Grafik erstellen bzw. etwas berechnen. Wenn Sie dagegen Access starten, können Sie damit erst einmal gar nichts anfangen. Schreiben, zeichnen und rechnen kann jeder.
Bei Access geht es aber um mehr. Access ist eine Datenbank, die Tabellen verwendet, um Daten zu verwalten. Da stellt sich als Erstes die Frage: Welche Tabellen brauche ich denn? Beim Nachdenken darüber müssen Sie erst mal einen Schritt zurückgehen und überlegen: Welche Daten will ich denn überhaupt verwalten? Und beim Nachdenken darüber wiederum müssen Sie noch einmal einen Schritt zurückgehen und überlegen: Welche Problematik will ich denn eigentlich mit Access bearbeiten?
Damit sind Sie mittendrin in einer sogenannten »Systemanalyse« – einer Tätigkeit, die bestimmte Fertigkeiten voraussetzt, bei der Sie bestimmte Methoden brauchen und eventuell Softwaretools benutzen. Sie können also im Gegensatz zu Word, PowerPoint und Excel nicht sofort loslegen. Und das ist genau die große Hemmschwelle beim Einsatz von Access.
Mit diesem Buch möchte Ihnen helfen, diese Hemmschwelle zu überwinden.
Dazu habe ich einen relativ bequemen Weg zum Ziel vorbereitet, auf dem ich Sie mitnehmen möchte. Es wird manchmal so aussehen, als wäre eine Abkürzung schneller, und Sie werden geneigt sein, einige Seiten oder Kapitel zu überblättern. Bitte tun Sie das nicht! Bei dem, was ich Ihnen hier zeigen will, kommt es auf große Genauigkeit im Detail an. Wenn Sie also von meinem vorgezeichneten Weg abweichen, kann es passieren, dass Sie ganz woanders im Nirwana landen.
Das Gebiet, das ich Ihnen hier nahebringen möchte, ist sehr umfangreich und zum Teil ziemlich schwierig zu verstehen. Klassischerweise müsste ich Baustein für Baustein die Grundlagen erklären und das Ganze dann am Ende zu einer Datenbankanwendung zusammenbauen. Nach meiner Erfahrung verliere ich auf diesem Weg aber den größten Teil der Zuhörer bzw. Leser, weil das Ziel nicht bekannt ist und aus den einzelnen Bausteinen auch nicht erahnt werden kann. Das ist so, als würden Sie ein Haus bauen wollen und sich daher lange Vorträge über die verschiedenen Arten von Mauersteinen und Dachziegeln anhören müssen. Nein – Sie wollen erst einmal ein Musterhaus besichtigen!
So will ich es auch in diesem Buch machen.
Abbildung 1: Das ist der Weg, den ich gemeinsam mit Ihnen gehen will!
In Kapitel 1 fliegen wir über alle Probleme hinweg gleich vom Start bis ans Ziel und sehen uns gemeinsam eine fertige Datenbankanwendung an. Ich hoffe, dass Sie ihre Nützlichkeit erkennen und danach motiviert sind, einige Anstrengungen auf sich zu nehmen, um selbst solche Anwendungen entwickeln zu können.
In Kapitel 2 gehen wir noch einmal ganz zurück an den Start und legen erste, einfache Grundlagen dafür, den Weg zum Ziel selbst gehen zu können.
In Kapitel 3 schaffen Sie den Weg zum Ziel schon fast aus eigener Kraft. Sie lernen, einfache Access-Formulare selbst zu entwickeln. Mit diesem Kapitel bekommen Sie auch eine Ahnung davon, was man alles an theoretischen Grundlagen und praktischen Fähigkeiten braucht, um Datenbankanwendungen zu entwickeln.
Darum begeben wir uns mit Kapitel 4 erneut zurück an den Start und legen zusammen mit den Kapiteln 5, 6, 7 und 8 erst einmal eine breite Basis für den erneuten Start zum Ziel: die Entwicklung von Datenbankanwendungen. Da Sie in den Kapiteln 1 und 3 schon einmal am Ziel gewesen sind, wissen Sie jetzt, warum die hier erläuterten Themen so wichtig sind.
In den Kapiteln 9 und 10 möchte ich Sie dann befähigen, das Ziel aus eigener Kraft zu erreichen. Sie sind anschließend in der Lage, selbst Datenbankanwendungen zu entwickeln.
Ganz vorn auf dem Buchtitel steht: »Datenbanken verstehen, entwerfen und entwickeln« – also nicht nur »Datenbanken benutzen«! Als Zielgruppe für dieses Buch sehe ich daher
Für die meisten Zwecke gibt es fix und fertige (Branchen-)Software – zum Teil sogar sehr preisgünstig auf dem Sharewaremarkt. Eine »selbst gestrickte« Anwendung hat aber mindestens zwei schwergewichtige Vorteile:
Die Entwicklung einer Datenbankanwendung erfordert nämlich viel detailliertes Know-how über die Abläufe im Betrieb oder im Verein, d. h., Sie müssen wissen,
Dieses Wissen lässt sich nicht so schnell erwerben – es wird meist in jahrelanger Tätigkeit in der entsprechenden Umgebung gesammelt. Im Gegensatz dazu lässt sich das EDV-Wissen, das für die Entwicklung einer Datenbankanwendung erforderlich ist, relativ schnell erlernen. Ich will Ihnen dazu eine kurze Geschichte erzählen:
Ich lasse meine Studenten Datenbankanwendungen entwickeln für Gebiete, auf denen sie schon selbst Erfahrungen gesammelt haben. Dabei war einmal eine Studentin, deren Vater einen Bauernhof mit Viehzucht hatte. Sie entwickelte in der Informatikvorlesung eine Datenbankanwendung, in der es darum ging festzuhalten, welche Kuh von wann bis wann in welchem Stall war und wann welches Futter bekommen hatte. Das war gerade zu der Zeit der großen BSE-Krise. Nun hatte diese Studentin zufällig auch noch einen Bekannten, der in der Softwareentwicklung arbeitete – der aber natürlich keine Ahnung davon hatte, wie es auf einem Bauernhof zuging. Er erkannte jedoch sehr schnell das große Potenzial dieser Datenbankanwendung und seine Firma kaufte sie meiner Studentin ab, um sie professionell weiterzuentwickeln. Der Erlös reichte meiner Studentin für die Anschaffung eines gebrauchten Kleinwagens.
Erkennen Sie, was ich meine? Wenn Sie gut Bescheid wissen in einer Firma, einem Verein oder irgendeiner anderen Organisation, in der Menschen zusammenarbeiten, und bisher noch nie auf den Gedanken gekommen sind, dieses Wissen in eine Datenbankanwendung umzusetzen, dann sollten Sie es jetzt vielleicht tun! Es gibt sehr viele potenzielle Kunden, die nur darauf warten!
Die Chance, damit erfolgreich zu sein, ist seit Access 2007 noch einmal gestiegen: Microsoft verteilt nämlich seitdem die sogenannte Access Runtime kostenlos. Das ist eine Software, die es ermöglicht, dass auch Menschen, die gar kein Access auf ihrem Rechner installiert haben, trotzdem Access-Anwendungen benutzen können.
|
Ich sehe hier für viele Leute eine Chance, Geld zu verdienen! |
Gehen Sie dazu einmal auf die Webseite www.microsoft.com/downloads und geben Sie dort den Suchbegriff »Access Runtime« ein. Sie erhalten mehrere Treffer für die verschiedenen Access-Versionen.
Ich wünsche Ihnen daher nicht nur viel Lesevergnügen mit diesem Buch, sondern anschließend auch wirtschaftlichen Erfolg, der sich für Sie in Euro und Cent auszahlt!
Meine Devise beim Schreiben dieses Buchs war:
Alles Notwendige so |
kurz |
wie möglich darstellen! |
Schwierige Dinge |
verständlich |
erläutern! |
Die Auswahl der Inhalte |
konzentriert |
auf das Wesentliche beschränken! |
»So eine Arbeit wird eigentlich nie fertig, man muss sie für fertig erklären, wenn man nach Zeit und Umständen das Möglichste getan hat.«
(J. W. v. Goethe, Italienische Reise, Caserta, 16.3.1787)
Andreas Stern
Rastede, im März
|
Beispieldatenbanken |
Für dieses Buch gibt es einige Beispieldatenbanken und weitere Dateien. Diese finden Sie zum Download im Internet auf auforeilly.de auf der Webseite zum Buch. |
|
|
Die Namen der Beispieldatenbanken sind folgendermaßen aufgebaut: |
|
Name-v6xx.accdb bzw. Name-v6xx.mdb |
|
Dabei bezeichnet |
|
•Name den Namen der Datenbank, •v die Version, •6 die 6. Auflage und •xx die Versionsnummer der Datenbank. |
|
Verein-v601.accdb ist dann also z.B. die Version 1 der Vereinsdatenbank aus der sechsten Auflage dieses Buchs. Ich werde im Buch dann nur auf Verein verweisen und die Versionsbezeichnungen weglassen. |
|
Die Beispieldatenbanken sind mit den Access-Versionen 2007, 2010, 2013, 2016 und 2019 benutzbar – aber nicht mit der Version 2003. |
|
Schauen Sie ab und zu einmal auf der Webseite www.buch.andreasstern.de vorbei! Dort werde ich neue Versionen der Beispieldatenbanken und weiteres Material zum Download anbieten. |
|
Access 2003Auf die Access-Version 2003 wird in dieser Auflage nicht mehr eingegangen. Lesern, die noch mit dieser Version arbeiten wollen, empfehle ich, sich ein Exemplar dieses Buchs aus der dritten Auflage zu besorgen. |
In diesem Kapitel
Technische Voraussetzungen
Ist Access eine Datenbank?
Formulare benutzen
Tabellen, Felder und Primärschlüssel
Beziehungen und Fremdschlüssel
Formulare entwerfen
VBA – ganz kurz
Was ist wichtig?
Abbildung 1.1: Das Kapitel 1, »Ein Blick hinter die Kulissen«.
… beginnen wir mit dem Ende: Ich stelle Ihnen eine fertige Datenbankanwendung vor, und wir schauen uns einmal an, wie das Ganze funktioniert. Das hat einen großen Vorteil: Sie wissen dann, wo wir hinwollen, und gewinnen hoffentlich die Überzeugung, dass es sich lohnt, in den folgenden Kapiteln für dieses Ziel einige Mühen auf sich zu nehmen.
Damit Sie die in diesem Kapitel beschriebenen Aktionen auf Ihrem Computer nachvollziehen können, sind einige technische Voraussetzungen erforderlich.
Zunächst einmal brauchen Sie Access auf Ihrem Computer. Welche Version? Nun – ich habe die Beispiele mit der Version 2010 erstellt, sie lassen sich aber auch mit den Access-Versionen 2007, 2013, 2016 und 2019 öffnen. Daher sollte alles funktionieren, wenn Sie mit einer dieser fünf Versionen arbeiten.
Jetzt kommt aber etwas sehr Wichtiges:
|
Damit Access-Datenbanken funktionieren, werden sogenannte Bibliotheken benötigt – das sind Sammlungen von vielen einzelnen kleinen Programmen, die für diverse Aktionen benötigt werden. |
Diese Bibliotheken befinden sich schon auf Ihrem Computer – Access hat aber unter Umständen noch nicht den Befehl bekommen, sie auch zu benutzen.
Um diesen Befehl zu erteilen, gehen Sie bitte folgendermaßen vor:
|
Die Beispieldatenbanken finden Sie im Internet unter der in der Einleitung angegebenen Adresse. |
Das Dialogfeld, das sich jetzt öffnet, muss genau so aussehen, wie in Abbildung 1.2 dargestellt. Das bedeutet, es müssen genau die gleichen Einträge in der Liste der Verweise aktiviert (d. h. mit einem Häkchen versehen) sein, und zwar auch in der gleichen Reihenfolge wie in Abbildung 1.2. Eventuell ist einer der erforderlichen Einträge bei Ihnen nicht aktiviert. Dann suchen Sie diesen Eintrag bitte in der Liste, aktivieren ihn durch einen Mausklick in das Kontrollkästchen links daneben und klicken auf die Schaltfläche OK. Dadurch wird der neu aktivierte Eintrag in den oberen Teil der Liste verschoben – aber noch nicht an die richtige Stelle. Dazu öffnen Sie bitte das Dialogfeld Verweise erneut, klicken einmal auf den neu aktivierten Eintrag und benutzen dann die Pfeile rechts neben der Liste, um den Eintrag so zu verschieben, wie in Abbildung 1.2 dargestellt. So muss das Dialogfeld Verweise bei Ihnen aussehen, wenn Sie Access 2016/19 benutzen (in Access 2007, 2010 und 2013 stehen dort statt der Versionsnummer 16.0 bei drei Einträgen die Versionsnummern 12.0, 14.0 bzw. 15.0).
Abbildung 1.2: Das Dialogfeld Verweise in Access 2016/19
|
Bitte achten Sie unbedingt darauf, dass Ihr Dialogfeld Verweise sowohl hinsichtlich der aktivierten Einträge als auch hinsichtlich deren Reihenfolge genauso aussieht, wie in Abbildung 1.2 dargestellt. |
Bevor wir uns mit der Beispieldatenbank beschäftigen, wollen wir uns die zentrale Frage stellen: Eine Datenbank – was ist das überhaupt? Leider ist es so, dass der Begriff »Datenbank« von verschiedenen Leuten in ganz unterschiedlichem Sinne benutzt wird. Um hier Klarheit zu schaffen, schauen Sie sich bitte Abbildung 1.3 an. Sie sehen dort schematisch dargestellt den Aufbau einer Datenbankanwendung. Die Daten selbst befinden sich in Tabellen – das werden wir uns weiter unten in diesem Kapitel noch genauer anschauen.
Der Inhalt dieser Tabellen muss verwaltet werden: Es müssen neue Daten an den richtigen Stellen eingefügt werden, vorhandene Daten müssen gegebenenfalls geändert werden, und ab und zu müssen auch überflüssig gewordene Daten gelöscht werden. All das wird von einer speziellen Software erledigt: dem sogenannten Datenbankmanagementsystem (DBMS, engl. Data Base Management System). Das DBMS arbeitet jedoch für den Benutzer unsichtbar. Er (oder sie ;-)) benötigt eine grafische Benutzeroberfläche (engl. Graphical User Interface, GUI).
Abbildung 1.3: Die Komponenten einer Datenbankanwendung.
Damit sind die uns allen wohlbekannten Fenster mit Eingabefeldern, Schaltflächen (engl. Buttons), Symbolleisten usw. gemeint.
In einer »richtigen, großen« Unternehmensanwendung ist das so: Das DBMS läuft auf einem eigenen Gerät – dem Datenbankserver – und wird dort vom Datenbank-Administrator verwaltet. Er führt die eventuell notwendigen Korrekturen an der Tabellenstruktur der Datenbank aus, startet das System nach einem Absturz neu, installiert Updates, macht Sicherungen (engl. Backups) der Daten usw.
Über das Netzwerk (engl. Local Area Network, LAN) des Unternehmens sind mehr oder weniger viele Computer (engl. Clients) der Mitarbeiter angeschlossen. Auf ihnen läuft eine weitere Software, die den Benutzern das bereits erwähnte GUI zur Verfügung stellt. Damit können die Benutzer die Daten bearbeiten.
Was bedeutet der letzte Satz: »Die Benutzer können die Daten bearbeiten.« eigentlich genau?
Nehmen wir einmal an, es gibt eine Tabelle mit Kundendaten, und nun will ein Benutzer eine Kundenadresse ändern. Er öffnet ein bestimmtes Fenster seiner Clientanwendung (= GUI) und sucht sich den zu bearbeitenden Kunden heraus. Dazu fordert die Clientanwendung die entsprechenden Daten beim DBMS an. Das kann bedeuten, dass einfach pauschal alle Kundendaten aus der Kundentabelle herausgelesen und an die Clientanwendung übermittelt werden. Das kann aber auch bedeuten, dass der Benutzer in seiner Clientanwendung bestimmte Auswahlkriterien eingibt (z. B. »alle Hamburger Kunden« oder »alle Kunden, die noch offene Rechnungen haben« oder »Hartmut Meier aus 28195 Bremen, Martinistr. 111«) und dass nur solche Kundendaten übermittelt werden, die diese Kriterien erfüllen.
Bei diesem ganzen Prozess kommunizieren also das DBMS und die Clientanwendung über das LAN miteinander. Reden sie dabei eine bestimmte Sprache? Ja, so seltsam es klingt, das ist tatsächlich der Fall. Diese Sprache heißt SQL (engl. Structured Query Language), und wir werden uns damit in einem späteren Kapitel noch näher beschäftigen.
Hier nur so viel: SQL besteht aus einzelnen Befehlen, die das DBMS anweisen, bestimmte Aktionen auszuführen – z. B.:
SELECT kun_name FROM tblKunde WHERE kun_anschrift LIKE "Bremen"
Wie Sie sehen, ist das einfaches Englisch, das man auch ohne Kenntnisse der SQL-Sprache verstehen kann: Der obige Befehl sucht die Namen aller Bremer Kunden aus der Tabelle tblKunde heraus.
Hat der Benutzer die Daten dann mit seiner Clientanwendung bearbeitet (weil sich z. B. die Telefonnummer des Kunden geändert hat), geht etwa ein solcher SQL-Befehl an das DBMS:
UPDATE tblKunde SET kun_telefon="(0421) 11 22 33" WHERE kun_id=1423
Also: Eine Datenbankanwendung besteht aus
Und jetzt ist es wie gesagt leider so, dass wahlweise eine dieser drei Komponenten oder Kombinationen daraus als »Datenbank« bezeichnet werden. Eine Datenbank kann also sein:
Eine Festlegung darüber, was denn nun »richtig« ist, gibt es nicht. Sie sollten daher beim Thema »Datenbanken« immer hinterfragen, was im konkreten Einzelfall damit gemeint ist. Ich persönlich bevorzuge den Begriff Datenbank als Zusammenfassung für den Datenbestand und das DBMS, das diesen verwaltet. Kommt eine Clientanwendung hinzu, so nenne ich das Ganze Datenbankanwendung.
Und was ist dann Access? Eine Datenbank?
Access ist ein Softwarewerkzeug (engl. Tool) zur Erstellung von Datenbankanwendungen im oben genannten Sinne. Access enthält zum einen das DBMS (Microsoft Jet Engine), das die in separaten Dateien mit der Erweiterung .accdb hinterlegten Daten verwaltet. Es enthält jedoch auch Werkzeuge zum Erstellen der grafischen Benutzeroberfläche mit entsprechenden Fenstern zum Bearbeiten der Daten. Der Programmcode für diese grafische Benutzeroberfläche ist ebenfalls in den .accdb-Dateien enthalten.
Damit ist Access also wesentlich komplizierter als Word, Excel und PowerPoint. Diese drei Programme ermöglichen es Ihnen, Texte, Tabellen und Präsentationen zu bearbeiten, die in .docx-, .xlsx- bzw. .pptx-Dateien abgelegt sind. Mit einem Doppelklick auf eine solche Datei im Explorer weisen Sie Windows an, die damit verknüpfte Anwendung zu starten, den Inhalt der Datei zu laden und ihn zur Bearbeitung auf dem Bildschirm darzustellen.
Bei einem Doppelklick auf eine Access-Datei mit der Endung .accdb passiert dagegen mehr:
Darüber hinaus enthält Access Softwarekomponenten, die es Ihnen ermöglichen,
Das wird alles zusammen auch Entwicklungsumgebung genannt. Damit funktioniert Access so, wie in Abbildung 1.4 dargestellt:
Abbildung 1.4: Access ist ein Werkzeug zur Erstellung von Datenbankanwendungen.
Wenn Sie noch keine Erfahrungen mit Access haben, wird Ihnen das eben Gesagte sicher noch etwas unverständlich erscheinen. Aber dafür ist dieses Kapitel ja auch gedacht: Wir wollen uns die ganze Theorie nun mal praktisch anschauen!
Vorher kommt aber noch eine kurze Erläuterung zu einer besonderen »Variante« von Access. Mit der Version 2007 hat Microsoft nämlich die sogenannte Runtime-Version freigegeben, d. h., diese kann nun kostenlos heruntergeladen und benutzt werden. Da sich die Adressen von Webseiten viel zu schnell ändern, ergibt es keinen Sinn, hier die konkrete Downloadadresse anzugeben. Tippen Sie einfach in einer Internetsuchmaschine »download access runtime« ein, und Sie werden ruck, zuck an der richtigen Stelle sein.
Das können Sie sich so vorstellen wie bei den bereits seit Langem bekannten Viewern für Word, Excel und PowerPoint: Damit können Benutzer sich Word-, Excel- bzw. PowerPoint-Dateien anschauen, ohne die entsprechende Software auf ihrem Computer installiert zu haben. Die Dateien können mit den Viewern nicht bearbeitet werden.
Bitte verwechseln Sie das aber nicht mit einem Schutz Ihrer Dateien vor Bearbeitung oder Verfälschung. Wer Word, Excel oder PowerPoint auf seinem Computer hat, kann Ihre Datei natürlich öffnen und bearbeiten. Nur wer diese Software nicht hat, sondern lediglich den Viewer, kann sich Ihre Datei nur anschauen und sie nicht bearbeiten.
Die Viewer befinden sich auf Ihrer Microsoft Office-Installations-CD. Sie können sie legal und kostenfrei weitergeben, damit andere, die kein Microsoft Office auf ihrem Computer haben, sich Ihre Word-, Excel- bzw. PowerPoint-Dateien anschauen können.
Genauso funktioniert auch die Access Runtime: Wenn diese Software auf einem Computer installiert ist, können Datenbankanwendungen benutzt werden, ohne dass hierzu Access selbst installiert sein muss.
Zitat von Microsofts Downloadseite (am 12.2.2019; Hervorhebungen von mir):
»Microsoft Access 2016 bietet eine umfassende Plattform zur Entwicklung von Datenbankverwaltungslösungen mit benutzerfreundlichen Anpassungstools. Wenn keine Endbenutzeranpassung erforderlich ist …, können Sie diese Access 2016-Lösungen verteilen, damit sie ohne eine vollständige Installation von Access 2016 ausgeführt werden können. Dazu müssen Sie die Anwendung mit der Access 2016-Runtime verteilen … Sie müssen kein spezielles Produkt erwerben, um die Access 2016-Runtime verteilen zu können. Sie können sie kostenlos verteilen oder auf diesen Download verweisen.«
|
Der kostenlose Zugang zur Access Runtime ist eine große Chance für Softwareentwickler! Sie können damit Datenbankanwendungen entwickeln, die beim Benutzer ohne eine Access-Installation laufen |
Wie die Access Runtime zu benutzen ist, erläutere ich im letzten Kapitel.
Jetzt wollen wir uns aber – wie versprochen – eine fertige Access-Anwendung ansehen. Ich habe für dieses Buch drei komplette Beispielanwendungen entwickelt:
Für die Erläuterungen in diesem Kapitel verwende ich vorrangig die Vereinsanwendung. Beim Namen dieser Datei (z. B. Verein-v601.accdb) wird Ihnen auffallen, dass sich darin eine Versionsnummer befindet (z. B. »v601«). Das ist ein Grundprinzip bei der Softwareentwicklung, das ich Ihnen gleich hier wärmstens ans Herz legen möchte: Erreichte Zwischenstände bei der Entwicklung der Anwendung in separaten Dateien mit Versionsnummern sichern!
Wie Sie sicherlich aus leidvoller Erfahrung wissen, geht am Computer immer irgendetwas schief, und das meiste läuft erst einmal nicht so, wie Sie es sich vorgestellt haben. Das gilt erst recht bei der Softwareentwicklung, denn dabei versuchen Sie ja besonders intensiv, den Computer zu bewegen, das zu tun, was Sie wollen. Jeder Programmierer – auch der erfahrenste – macht aber Fehler,
Dann ist derjenige gut dran, der sagen kann: »Macht nichts! Ich habe ja noch eine vorherige Version, die ich gespeichert habe, bevor ich den Fehler gemacht habe.«
|
Daher sollten Sie immer, wenn Sie einen bestimmten Stand der Entwicklung erreicht haben (das kann im Minutentakt sein oder aber am Ende des Arbeitstags), die entsprechenden Dateien unter einer Versionsnummer speichern, eine Kopie davon anfertigen, diese mit der nächsthöheren Versionsnummer versehen und dann damit weiterarbeiten. |
Bitte öffnen Sie jetzt die Anwendung Verein.
|
Die Beispieldatenbanken finden Sie im Internet unter der in der Einleitung angegebenen Adresse. |
Das kann durch einen Doppelklick mit der linken Maustaste auf den Dateinamen im Explorer geschehen. Sollte das aber aus irgendeinem Grund nicht funktionieren, starten Sie zunächst Access und klicken dann auf Datei/Öffnen (bzw. in Access 2007 auf die Office-Schaltfläche und dann auf Öffnen). Die weitere Vorgehensweise ist Ihnen sicherlich aus anderen Office-Produkten bekannt.
Jetzt kann schon das erste kleine Problem auftauchen: Im Allgemeinen erhalten Sie eine Sicherheitswarnung, und wenn Sie darauf nicht reagieren, wird die Datenbankanwendung nicht funktionieren.
Abbildung 1.5: Wahrscheinlich bekommen Sie gleich zu Beginn der Arbeit mit der Beispielanwendung diese Sicherheitswarnung von Access zu Gesicht.
In diesem Fall folgen Sie einfach den Anweisungen, die in dem Fenster Achtung! Was ist beim ersten Start dieser Anwendung zu tun? erscheinen.
Innerhalb des Access-Fensters sehen Sie jetzt ein Fenster mit dem Titel Startformular. Am oberen Rand befindet sich das Menüband (Access 2007: die Multifunktionsleiste), und links sehen Sie den Navigationsbereich. Letzterer ist das »Steuerpult« von Access, von dem aus Sie alle weiteren Fenster erreichen, die Sie für die Anwendungsentwicklung benötigen. Wir wollen diese Bereiche zunächst nicht weiter beachten und uns nur mit dem Fenster Startformular beschäftigen.
Das Fenster Startformular ist Bestandteil der weiter oben in diesem Kapitel beschriebenen grafischen Benutzeroberfläche (GUI). Diese Fenster werden in Access Formulare genannt (von engl. »form«). Das ist für den Access-Neuling immer etwas verwirrend, denn im deutschen Sprachgebrauch ist ein Formular ein Blatt Papier. Ausdrucke der Daten auf Papier heißen aber in Access Berichte (von engl. »report«).
Abbildung 1.6: Das Startformular der Vereinsanwendung.
Das Startformular bietet noch keine Möglichkeiten, irgendwelche Daten zu bearbeiten. Es enthält einige Schaltflächen (engl. »Buttons«), auf die Sie klicken und damit weitere Formulare öffnen können. Tun Sie das ruhig einmal und beachten Sie dabei, dass Sie die sich öffnenden Formulare durch einen Klick auf die Schaltfläche rechts oben wieder schließen können.
|
Die Schaltfläche mit dem Schließen-Symbol ganz unten in der Mitte des Startformulars schließt nicht nur die Vereinsanwendung, sondern beendet auch Access! |
Wie Sie aus der Beschriftung der Schaltflächen unschwer erkennen können, geht es in der Beispielanwendung Vereinsdatenbank um Folgendes:
Bevor Sie dieses Kapitel weiter durcharbeiten, möchte ich Sie ausdrücklich ermuntern, einmal etwas mit der Datenbankanwendung herumzuspielen. Tragen Sie einige Personen als Mitglieder ein, teilen Sie alle neu eingetragenen Mitglieder Mannschaften zu, reservieren Sie Trainingszeiten und nominieren Sie die Personen für Wettkämpfe. Dabei verändern Sie natürlich die Daten in der Datenbank. Im weiteren Verlauf dieses Kapitels nehme ich aber immer mal wieder Bezug auf die Version, die Sie sich heruntergeladen haben. Daher empfehle ich Ihnen dringend, sich eine »Spielkopie« der Originaldatei anzulegen. Wenn Sie dann die von mir beschriebenen Aktionen nachvollziehen möchten, können Sie immer wieder auf diese Originaldatei zurückgreifen. Ansonsten haben Sie ja immer noch die Möglichkeit, diese noch einmal herunterzuladen.
Dies ist ein Buch für Anfänger. Daher sollte immer ganz genau beschrieben werden, was wie getan werden muss. Das würde aber zu endlosen Wiederholungen führen und das Buch um etliche Seiten dicker machen. Dann müsste es mehr kosten, und Sie hätten es nicht gekauft.;-)
Aber mal im Ernst: Die immer wiederkehrenden Standardaktionen erläutere ich nicht immer wieder. Diese sind in Anhang A, »Wichtige Standardaktionen durchführen«, beschrieben.
|
Außerdem finden Sie das Dokument WichtigeStandardaktionen.pdf zum Ausdrucken im Internet (Adresse in der Einleitung – dort im Ordner \KapA)! |
So, jetzt wollen wir uns einmal das Formular frmMitglieder etwas genauer ansehen. Es enthält viele Elemente, die wir später selbst erstellen wollen und die uns zeigen, wie praktisch die Arbeit mit einer Datenbankanwendung sein kann.
Abbildung 1.7: Das Formular frmMitglieder enthält viele typische Elemente einer grafischen Benutzeroberfläche.
Sie sehen links ein Listenfeld mit einer Liste der Mitglieder. Ein Mausklick in diese Liste führt dazu, dass die Daten des ausgewählten Mitglieds im rechten Teil des Formulars angezeigt werden. Wenn Sie einmal in die Liste geklickt haben, können Sie sich anschließend auch mit den Tasten und in der Liste auf und ab bewegen.