image

image

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

Andreas Stern

Keine Angst vor
Microsoft Access!

Datenbanken verstehen, entwerfen und entwickeln – Für Access 2007 bis 2019

6. Auflage

image

Andreas Stern

Lektorat: Ariane Hesse

Bibliografische Information der Deutschen Nationalbibliothek

ISBN:

6., aktualisierte Auflage

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:

image

Schreiben Sie uns:

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

Inhaltsverzeichnis

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

Ein Leserbrief

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

Einleitung

Warum ist Access anders?

Was habe ich mit Ihnen vor?

Wer sollte dieses Buch kaufen?

Warum ist Access anders?

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.

Was habe ich mit Ihnen vor?

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.

image

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.

Wer sollte dieses Buch kaufen?

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.

image

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

image

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.

image

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.

image

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.

Kapitel 1

Ein Blick hinter die Kulissen

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?

image

Abbildung 1.1: Das Kapitel 1, »Ein Blick hinter die Kulissen«.

In diesem Kapitel

… 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.

Technische Voraussetzungen

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:

image

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:

  1. 1. Öffnen Sie die Datenbank, mit der Sie arbeiten wollen – z. B. Verein –, entweder durch Doppelklick auf die Datei im Explorer oder durch Starten von Access und Aufrufen des Befehls Öffnen auf der Registerkarte Datei (bzw. im Menü der Schaltfläche Office von Access 2007).

image

Die Beispieldatenbanken finden Sie im Internet unter der in der Einleitung angegebenen Adresse.

  1. 2. Öffnen Sie den Visual Basic-Editor mit der Tastenkombination image.
  2. 3. Rufen Sie im Visual Basic-Editor den Menübefehl Extras/Verweise auf.

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).

image

Abbildung 1.2: Das Dialogfeld Verweise in Access 2016/19

image

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.

Ist Access eine Datenbank?

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).

image

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:

  1. Das in Access enthaltene DBMS (MS Jet Engine) wird gestartet und wartet anschließend auf Befehle zur Bearbeitung der in der Access-Datei enthaltenen Daten.
  2. Der in der Access-Datei enthaltene Programmcode der grafischen Benutzeroberfläche wird geladen und ausgeführt, d. h., entsprechende Fenster zur Bearbeitung von Daten erscheinen auf dem Bildschirm.

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:

image

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!

Access ohne Access?

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.«

image

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.

Die Access-Anwendung

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.«

image

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.

image

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.

image

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.

Formulare benutzen

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«).

image

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.

image

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.

image

Außerdem finden Sie das Dokument WichtigeStandardaktionen.pdf zum Ausdrucken im Internet (Adresse in der Einleitung – dort im Ordner \KapA)!

Das Formular frmMitglieder

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.

image

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 image und image in der Liste auf und ab bewegen.