Formulare...

Nach der mühevollen Modellierung und Implementierung unserer Datenbank besteht unsere letzte Aufgabe darin, dem künftigen Anwender (auch, wenn wir das selbst sind) eine Nutzeroberfläche zur Verfügung zu stellen. Diese Oberfläche ermöglicht dem Anwender, bequem und ohne tiefschürfenden Kenntnisse der zugrundeliegenden relationalen Datenbank, mit Selbiger zu arbeiten.

Ein Formular stellt eine solche Nutzeroberfläche dar und kann folgende Aufgaben erfüllen:

Das klingt ja erstmal sehr verlockend! ABER: Du als "Datenbank-Entwickler" musst diese Oberfläche für den "unwissenden" Anwender erstellen - und das macht ein wenig Arbeit!

Die Möglichkeiten, die ein Formular bietet, sind so vielfältig und teilweise so komplex, dass für dieses Thema eigentlich ein eigener Lernkurs von Nöten wäre. Wir werden uns hier also nur auf ein ganz kleines und einfaches Beispiel beschränken, welches das Prinzip verdeutlichen soll.

Unser Ziel...

Dieses Formular soll dem Anwender ermöglichen, in den verfügbaren Datensätzen zu "blättern". Außerdem soll er neue CDs in die Datenbank aufnehmen und bestehende CDs löschen können.

Vorbereitung...

Stell dir vor, du hast eine CD verschenkt und willst sie deshalb aus deiner Datenbank löschen. In den Tabellen "lied" und "interpret" bleiben nun aber noch alle Datensätze erhalten, die diese CD betreffen. Das verletzt die referentielle Integrität unserer Datenbank, wäre im übrigen auch völlig sinnlos und erzeugt logischerweise eine Fehlermeldung. Also müssen wir dafür sorgen, dass Daten, die miteinander in Beziehung stehen, auch automatisch mit geändert oder gelöscht werden.

Und so gehts...

  • Über das Menü "Extras" gelangst du zur Beziehungsübersicht ("Beziehungen...")
  • Mit einem Klick auf die Verknüpfungslinie zwischen der Relation "CD" und der Relation "lied" wird diese "aktiviert" und du kannst mit einem Rechtsklick das Kontextmenü öffnen und "Bearbeiten..." auswählen.
  • In den Änderungs -und Löschoptionen (siehe rechte Abbildung) musst du auswählen, dass dies "kaskadierend" erfolgen soll. D.h., dass eine Änderung an einem Datensatz kaskadierend ("wie ein Wasserfall") auch an denjenigen Datensätzen vorgenommen wird, die mit ihm in Beziehung stehen.
  • Mit dem "OK" werden diese Optionen gesetzt - und das Gleiche führst du mit den übrigen Relationen durch.

Und jetzt gehts los...

  • Im DBMS klickst du unter Formulare auf "Formular unter Verwendung des Assistenten erstellen..."
  • Wähle die Tabelle oder Abfrage aus, die das Formular betrifft
  • Übernimm die gewünschten Felder ins Formular (in diesem Fall brauchen wir alle drei)
  • Weiter bis "Anordnung der Kontrollfelder" (auf ein Subformular verzichten wir)
  • Wähle nun die gewünschte Anordnung der Kontrollfelder aus (im Hintergrund siehst du dann schon das Ergebnis im web-basierten Textdokument)
  • Weiter zur Dateneingabe
  • Spätestens an dieser Stelle musst du dir Gedanken darüber machen, für welchen Nutzerkreis das Formular gedacht ist, welche Aufgaben es zu erfüllen hat und welche "Rechte" du dem künftigen Anwender zugestehst:
    • Darf der Nutzer nur neue Datensätze eingeben - bestehende Daten aber nicht einsehen?
    • Darf der Nutzer neue Datensätze eingeben - aber bestehende nicht verändern?
    • Darf der Nutzer Datensätze löschen?
    • Usw., usw....
  • Da du in diesem Formular die Daten einsehen und beliebig manipulieren willst, wählst du die Option, wie im rechten Bild dargestellt
  • Weiter zu Stile
  • Jetzt kannst du deiner Kreativität freien Lauf lassen
  • Das Layout kannst du später aber noch beliebig verändern
  • Gib dem Formular einen eindeutigen Namen (hier: "form_cd")
  • Wäle die Option "Das Formular weiter verändern", da wir leider noch lange nicht fertig sind
  • Fertig stellen
  • Und so sieht unser (halbfertiges) Formular in der Bearbeitungsansicht aus
  • Jetzt musst du dich einigen wenigen Steuerelementen widmen...
  • Für die Überschrift erzeugst du ein "Beschriftungsfeld" (Label) indem du es in der "Formular-Steuerelemente-Box" anklickst und dann an der entsprechenden Stelle im Dokument mit gehaltener Maustaste "aufziehst"
  • Mit der rechten Maustaste gelangst du über das Kontextmenü zu "Kontrollfeld..." und kannst dort alle gewünschten Attributwerte setzen
  • In diesem Fall setzt du lediglich die Attributwerte für Titel (1.), Schrift (2.) und Hintergrundfarbe (3.)


  • Nun brauchen wir eine "Schaltfläche" (Push-Button), die du genauso erzeugst, wie das "Beschriftungsfeld" oben
  • Über das Kontextmenü gelangst du wieder zu "Konrollfeld..." und kannst die gewünschten Attributwerte ändern
  • Du änderst die Werte für die Attribute "Titel" und "Aktion" - da wir eine neue CD anlegen möchten, wählst du unter "Aktion": "Neuer Datensatz"
  • Durch das Schließen des "Eigenschafts-Fensters" werden die Einstellungen übernommen
  • Alle weiteren Schaltflächen erzeugst du nach dem selben Strickmuster:
    • CD Übernehmen (Datensatz speichern)
    • CD Löschen (Datensatz löschen)
    • Erste CD (Erster Datensatz)
    • Nächste CD (Nächster Datensatz)
    • Vorherige CD (Vorheriger Datensatz)
    • Letzte CD (Letzter Datensatz)
  • Zum Schluss wird die Beabeitungsansicht des Formulars geschlossen und gespeichert
  • Wenn du das Formular nun mit Doppelklick öffnest, ist es voll funktionstüchtig und du kannst es testen (VORSICHT bei "CD Löschen" ;-)
Referentielle Integrität ist gegeben, wenn jeder Wert eines Fremdschlüssels auch als Wert im entsprechenden Primärschlüssel vorkommt.