Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

Bitte teilen Sie uns Ihre Anrede, Ihren Namen und Ihre E-Mail-Adresse mit:

Anrede:
Vorname:
Nachname:
E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 3/2018.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Vereinsverwaltung: Formulare, Teil 1

In den Beiträgen »Vereinsverwaltung: Von Excel zum Datenmodell« und »Vereinsverwaltung: Migration« haben wir uns um die Erstellung eines Datenmodells und die Migration bestehender Beispieldaten aus einer Excel-Tabelle gekümmert. Für die Bearbeitung der Daten aus den so erstellten und gefüllten Tabellen wollen wir nun eine Benutzeroberfläche programmieren. Der vorliegende Beitrag zeigt, wie wir die Formulare gestalten.

Ausgangsposition

In den beiden vorhergehenden Teilen dieser Beitragsreihe, nämlich Vereinsverwaltung: Von Excel zum Datenmodell (www.access-im-unternehmen.de/1106) und Vereinsverwaltung: Migration (www.access-im-unternehmen.de/1107) haben wir exemplarisch gezeigt, wie wir aus den vorliegenden Daten und Anforderungen ein Datenmodell für eine Vereinsverwaltung erstellen. Das Ergebnis finden Sie in Bild 1. Der Kern des Datenmodells ist die Tabelle tblMitglieder, um die herum wir eine Menge weiterer Tabellen angelegt haben. Diese dienen entweder als Lookup-Tabellen für die Fremdschlüsselfelder der Tabelle tblMitglieder oder nehmen andere Daten auf – zum Beispiel die Dauer der Vereinszugehörigkeit (tblVereinszugehoerigkeiten), die Altersklassen oder die Zusammenfassung von mehreren Mitgliedern zu einer Familie (tblFamilienmitglieder).

Datenmodell der Vereinsverwaltung

Bild 1: Datenmodell der Vereinsverwaltung

Vorbereiten der Feldbeschriftungen

Wir wollen ganz einfach mit einem Detailformular für die Tabelle tblMitglieder starten. Bevor wir damit beginnen, wollen wir noch die Feldbeschriftungen für die einzelnen Felder anpassen. Wenn wir nämlich die Felder einer Tabelle nach dem Zuweisen der Tabelle an die Eigenschaft Datenherkunft des Formulars aus der Feldliste in den Formularentwurf ziehen wollen, trägt Access immer den Feldnamen in das automatisch angelegte Bezeichnungsfeld ein. Das heißt, dass für die Anrede beispielsweise der Feldname AnredeID als Bezeichnungsfeld verwendet wird. Damit wir nicht immer die Bezeichnungsfelder anpassen müssen, stellen wir gleich den gewünschten Feldnamen in der Tabellendefinition ein, und zwar wie in Bild 2. Hier legen wir beispielsweise den Wert Anrede für die Eigenschaft Beschriftung fest. Auf die gleiche Weise gehen wir mit den folgenden Feldern vor:

Anpassen der Feldbeschriftungen

Bild 2: Anpassen der Feldbeschriftungen

  • Strasse wird zu Straße
  • RabattklasseID wird zu Rabattklasse
  • MitgliedsnummerHauptverein wird zu Mitgliedsnr. (Hauptverein)
  • EMail wird zu E-Mail
  • GeschlechtID wird zu Geschlecht

Doppelpunkt aktivieren

Damit Access beim Hinzufügen der Felder aus der Feldliste in den Detailbereich des Formulars nicht nur die passenden Beschriftungen für die Bezeichnungsfelder einträgt, sondern diese auch noch um einen Doppelpunkt ergänzt, müssen Sie gegebenenfalls noch einmal Hand anlegen. Öffnen Sie dazu ein neues, leeres Formular und klicken Sie auf die Schaltfläche zum Hinzufügen eines neuen Textfeldes (nur anklicken, noch nicht einfügen!). Das Eigenschaftenblatt zeigt nun auf der Registerseite Format fast ganz unten die Eigenschaft Mit Doppelpunkt an. Diese stellen Sie auf den Wert Ja ein (siehe Bild 3).

Aktivieren der Doppelpunkte für Beschriftungen

Bild 3: Aktivieren der Doppelpunkte für Beschriftungen

Speichern Sie das Formular nun unter dem Namen Normal. Prüfen Sie dann, ob in den Access-Optionen wie in Bild 4 diese Bezeichnung für die Eigenschaft Formularvorlage festgelegt ist. Wenn Sie nun neue Formulare anlegen, berücksichtigen diese die Einstellungen, die wir hier für den Steuerelementtyp Textfeld vorgenommen haben.

Bezeichnungen der Vorlagen für Formulare und Berichte

Bild 4: Bezeichnungen der Vorlagen für Formulare und Berichte

Formular für die Mitglieder anlegen

Nun legen wir ein neues, leeres Formular an und stellen seine Eigenschaft Datenherkunft auf die Tabelle tblMitglieder ein. Speichern Sie das Formular vorsichtshalber gleich unter dem Namen frmMitglieddetails. Nun aktivieren Sie die Feldliste mit dem Ribbon-Befehl Entwurf|Tools|Vorhandene Felder hinzufügen. Markieren Sie alle Einträge des Fensters Feldliste und ziehen Sie diese in den Detailbereich des Formularentwurfs (siehe Bild 5).

Hinzufügen der Felder zum Formular frmMitglieddetails

Bild 5: Hinzufügen der Felder zum Formular frmMitglieddetails

Hier tragen unsere Vorbereitungen nun Früchte: Sowohl die Beschriftungen der Bezeichnungsfelder entsprechen den von uns angegebenen Werten als auch die Doppelpunkte wurden wir gewünscht hinzugefügt.

Daten aus weiteren Tabellen hinzufügen

Bevor wir die bisher hinzugefügten Steuer­elemente in sinnvollen Gruppen anordnen, schauen wir uns noch an, welche Daten aus den anderen Tabellen wir noch benötigen:

  • tblFamilienmitglieder: Wir könnten in einem Unterformular die übrigen Familienmitglieder anzeigen, sofern diese vorhanden sind.
  • tblVereinszugehoerigkeiten: Die Vereinszugehörigkeiten sollten auf jeden Fall in einem Unterformular angezeigt werden.
  • tblMitgliederMannschaften/tblMannschaften: Auch die Zugehörigkeiten zu einer oder mehrerer Mannschaften könnte man in diesem Formular dokumentieren und auch bearbeiten.
  • tblAnreden, tblRabattklassen, tblGeschlecht: Die Werte dieser Felder werden bereits über Nachschlagefelder dargestellt.

Bei den Daten der Tabellen tblFamilienmitglieder, tblVereinszugehoerigkeiten und tblMitgliederMannschaften können wir festlegen, auf welche Art wir die Daten anzeigen wollen. Wir wollen in dieser Beispiellösung ein paar verschiedene Ansätze demonstrieren, aber die Ergonomie soll auch nicht zu kurz kommen. Schauen wir uns die Tabellen im Detail an.

Bearbeiten der Vereinszugehörigkeiten

Die Vereinszugehörigkeiten sind die einfachste Darstellung. Es handelt sich ja einfach nur um eine 1:n-Beziehung, wobei jedes Mitglied eine oder mehrere Vereinszugehörigkeiten aufweisen kann. Da es vermutlich nicht allzuoft geschieht, dass ein Mitglied den Verein verlässt und dann zurückkehrt, wollen wir diese Daten in einem Listenfeld anzeigen, dessen Einträge wir über einen Doppelklick bearbeiten können beziehungsweise durch entsprechende Schaltflächen neue Vereinszugehörigkeiten anlegen oder löschen können.

An dieser Stelle fällt auf, dass wir die Eintritts- und Austrittsdaten noch gar nicht aus der Excel-Tabelle in das neue Datenmodell übernommen haben. Das holen wir nun noch nach. Dabei unterstützt uns die Funktion Eintrittsdatum aus Listing 1. Diese öffnet zunächst ein Recordset auf Basis der Tabelle mit den aus der Excel-Datei importierten Mitgliedsdaten namens Mitglieder. In einer Do While-Schleife durchläuft sie alle Datensätze dieser Tabelle und ermittelt dabei zunächst den Wert des Primärschlüsselfeldes MitgliedID der Tabelle tblMitglieder, unter der das Mitglied importiert wurde. Um den entsprechenden Datensatz zu ermitteln, nutzen wir die DLookup-Funktion und suchen in der Tabelle tblMitglieder nach dem Datensatz, in dessen Feld Mitgliedsnummer der Wert gespeichert ist, den wir in der Excel-Datei in der Spalte Mitgl-Nr finden. Wenn wider Erwarten kein passender Datensatz gefunden wird, erhält lngMitgliedID den Wert 0 und die Anweisungen innerhalb der folgenden If...Then-Bedingung werden nicht ausgeführt. Stattdessen gibt die Routine eine entsprechende Meldung im Direktbereich des VBA-Editors aus.

Public Function Eintrittsdatum()
     Dim db As DAO.Database
     Dim rst As DAO.Recordset
     Dim lngMitgliedID As Long
     Dim datEintritt As Date, datAustritt As Date
     Dim strAustritt As String
     Set db = CurrentDb
     Set rst = db.OpenRecordset("SELECT * FROM Mitglieder", dbOpenDynaset)
     Do While Not rst.EOF
         lngMitgliedID = Nz(DLookup("MitgliedID", "tblMitglieder", "Mitgliedsnummer = '" & rst![Mitgl-Nr] & "'"), 0)
         If Not lngMitgliedID = 0 Then
             datEintritt = rst!Eintrittsdatum
             strAustritt = Nz(rst!Bemerkung, "")
             datAustritt = 0
             If InStr(1, strAustritt, "abg.") > 0 Then
                 strAustritt = Replace(strAustritt, "abg.", "")

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

Bitte teilen Sie uns Ihre Anrede, Ihren Namen und Ihre E-Mail-Adresse mit:

Anrede:
Vorname:
Nachname:
E-Mail:

© 2003-2018 André Minhorst Alle Rechte vorbehalten.