Vereinsverwaltung mit Access

Autor: André Minhorst, Duisburg

Die elektronische Datenverarbeitung hält überall Einzug – selbst im Sport, wo normalerweise Körperkraft, Geschicklichkeit und Schnelligkeit herrschen (sofern es sich nicht gerade um Schach handelt – aber das ist ein anderes Thema). Es gibt keine Fernsehsendung mehr ohne computergesteuerte Einblendungen und keinen bekannten Verein oder Topsportler mehr ohne eigene Internetpräsenz. Doch die Musterlösung des vorliegenden Beitrags giert nicht so nach der breiten öffentlichkeit: Die Vereinsverwaltung bietet einige Vorschläge zur Verwaltung von Mitgliedern in Sportvereinen und versucht, einige der dort vorliegenden spezifischen Anforderungen zu erfüllen.

Eine Vereinsverwaltung ist im engeren Sinne zunächst einmal eine Kontaktverwaltung mit einigen Besonderheiten. Die Besonderheiten beziehen sich zum einen auf die in der Datenbank gespeicherten Informationen und zum anderen auf einige Sonderfunktionen, die in anderen Kontaktverwaltungen nicht unbedingt vorhanden sind – wie das Erstellen von Rechnungen über Mitgliedsbeiträge oder das Anfertigen von Serienbriefen.

Hinweis

Die dem Beitrag zugrundeliegende Musterlösung beinhaltet eine große Anzahl von Datenbankobjekten und Funktionen. Da die Beschreibung der Erstellung einer solchen Datenbank vermutlich mehrere Ergänzungshefte in Anspruch nähme, verzichtet der Beitrag auf die Beschreibung grundlegender Vorgänge wie z.B. dem Anlegen einer Tabelle, dem Herstellen einer Beziehung oder verschiedener Operationen an Formularen und Berichten. Statt dessen soll der Beitrag vor allem die Funktionen der Vereinsverwaltung beschreiben sowie einige nicht alltägliche Techniken beschreiben.

Die Vereinsverwaltung beinhaltet einige Funktionen, Sie in Kapitel 1 kennenlernen. In den nachfolgenden Kapiteln finden Sie Informationen über das in der Datenbank steckende Know-how. Kapitel 2 berichtet über das Datenmodell der Vereinsverwaltung, also die Tabellen und deren Beziehungen. In Kapitel 3 erfahren Sie, dass man Abfragen nicht nur zur Auswahl von Daten verwenden kann. Schließlich erfahren Sie in den -Kapiteln 4 und 5 einiges über die in der Vereinsverwaltung verwendeten Formulare und Berichte.

Die Hauptaufgabe einer Vereinsverwaltung ist sicher die Verwaltung der Mitgliedsdaten. Dazu gehören neben den üblichen Kontaktinformationen weitere Details, die sich teilweise auf das Mitglied selbst und teilweise auf seine Mitgliedschaft beziehen.

Hauptmenü

Da die Vereinsverwaltung über einige unterschiedliche Funktionen verfügt, ist es sinnvoll, alle Funktionen in einem Hauptmenü unterzubringen. Die einzelnen Funktionen kann der Anwender von dort bequem per Schaltfläche anwählen (siehe Bild 1).

Verwaltung der Mitglieder

Daraus leitet sich automatisch die erste Funktion der Vereinsverwaltung ab: Die Aufnahme der relevanten Mitgliedsdaten. Dabei hilft ein Formular, das nicht nur zur Eingabe neuer, sondern auch zur Bearbeitung vorhandener Daten dient (siehe Bild 2).

Zur Eingabe neuer Mitgliedsdatensätze ruft man das Formular über die Schaltfläche Neues Mitglied des Hauptmenüs auf. Wenn Sie hingegen die Daten vorhandener Mitglieder bearbeiten oder einsehen möchten, können Sie im Formular Mitgliedsdaten den entsprechenden Datensatz auswählen.

Auswahl von Mitgliedern

Die Auswahl von Mitgliedern nach den unterschiedlichsten Kriterien erfolgt im Formular frmMitglieder. Bild 3 zeigt das Formular in der Formularansicht. Es bietet einige unterschiedliche Funktionen, deren Beschreibung in den nächsten Abschnitten folgt.

Filtern und Sortieren von Datensätzen

Hier können Sie einerseits eine Liste aller Mitglieder einsehen. Andererseits können Sie die Mitglieder nach den unterschiedlichsten Kriterien sortieren und filtern. Die Ergebnisse eines solchen Vorgangs können Sie festhalten, indem Sie die gefundenen Datensätze markieren. Die Markierung können Sie in anderen Programmfunktionen – z.B. zum Ausdrucken von Mitgliederlisten oder Rechnungen – wiederverwenden.

Abrufen von Detailinformationen

Von hier aus können Sie auch die Detailinformationen zu einem bestimmten Mitglied aufrufen. Dazu müssen Sie lediglich mit der Maus doppelt auf den Nachnamen des gewünschten Mitglieds klicken.

Ausgabe verschiedener Listen

Das Programm bietet insgesamt drei Möglichkeiten zur Ausgabe unterschiedlicher Listen an.

Ausgabe einer Mitgliederliste

Die Mitgliederliste beinhaltet die Informationen, die auch im Listenfeld des Formulars frmMitglieder zu finden sind. Sie gibt alle markierten Datensätze aus.

Ausgabe einer Telefonliste

Die Telefonliste beinhaltet entweder alle Datensätze oder alle markierten Datensätze. Der Anwender kann die gewünschte Möglichkeit im Formular frmTelefonliste auswählen. Außerdem besteht dort die Möglichkeit, eine überschrift für die Liste anzugeben.

Ausgabe einer Mannschaftsliste

Die Mannschaftsliste bietet die Möglichkeit, alle Mitglieder einer bestimmten Altersklasse auszugeben. Dabei ist die Vereinsverwaltung flexibel: Es kommt ja durchaus einmal vor, dass Mannschaften in Sportvereinen mit Sportlern jüngeren Jahrgangs aufgefüllt werden müssen, um die gewünschte Spieleranzahl zu erreichen. Daher gibt es im Formular zur Eingabe der Mitgliederdaten die Möglichkeit, neben der eigentlichen Altersklasse des Sportlers eine weitere Altersklasse anzugeben.

Bei der Ausgabe der Mannschaftsliste wird die alternative Altersklasse berücksichtigt.

Erstellung von Rechnungen

Zu den Informationen über ein Mitglied gehört unter anderem, ob es seinen Beitrag per Dauerauftrag oder Abbuchung zahlt oder eine Rechnung bekommt.

Mit den Informationen kann für alle Mitglieder, die per Rechnung bezahlen möchten, die Rechnung automatisiert als Bericht erstellt werden.

Die Ausgabe der Rechnungen an Word ist vorbereitet, aber nicht implementiert.

Für Mitglieder, die eine Abbuchung des Betrages wünschen, stehen entsprechende Felder zur Eingabe der Bankverbindung bereit.

Eingabe von Altersklassen

Viel Arbeit ist immer damit verbunden, wenn man schnell einmal wissen möchte, wieviele Spieler für eine bestimmte Mannschaft, d.h. eine bestimmte Altersklasse, zur Verfügung stehen.

Der Beantwortung der Frage stehen einige Hindernisse im Weg:

Zum einen weiß man selten, welchen Jahrgangs oder Alters der Spieler sein muss, um zu einer bestimmten Altersklasse zu gehören, zum anderen gibt es bei einigen Sportarten einen Stichtag, an dem der Spieler ein bestimmtes Alter erreicht haben darf, um noch in der gewünschten Spielklasse zu spielen.

Die Musterlösung wird dem gerecht: Man kann hier sowohl einen Stichtag eingeben als auch das Alter, in dem sich die Spieler einer bestimmten Altersklasse zu dem Stichtag befinden müssen (siehe Bild 4).

Das Datenmodell enthält nicht weniger als 12 miteinander verknüpfte Tabellen – und die Tabelle tblStichtag, die allerdings nur den aktuellen Stichtag enthält. Die Anzahl der Tabellen ist allerdings dadurch zu relativieren, dass die meisten der Tabellen nur Details der Tabelle tblMitgliedsdaten enthalten.

Eine übersicht der Tabellen und deren Beziehungen finden Sie in Bild 5.

Die Tabelle tblMitgliedsdaten

Die Tabelle tblMitgliedsdaten enthält die wesentlichen Informationen über jedes einzelne Mitglied. Aus Gründen der Konsistenz hält die Datenbank einige Daten in Tabellen, die mit der Haupttabelle verknüpft sind. Dabei handelt es sich beispielsweise um die folgenden Daten:

  • Anreden für Adresse und überschrift in Rechnungen und Serienbriefen
  • Geschlecht
  • Art der Beitragszahlung
  • Funktion im Verein
  • Status der Mitgliedschaft – also aktiv oder passiv
  • Die Daten der Tabellen mit den Details sind jeweils über Nachschlagefelder mit der Tabelle tblMitgliedsdaten verknüpft.
  • Tabellen zum Speichern der Telefonnummern

    Die Vereinsverwaltung soll der sich ändernden Kommunikationslandschaft gerecht werden und die Möglichkeit bieten, so viele Telefonnummern zu speichern, wie es das jeweilige Mitglied erfordert.

    Dabei gibt es zwei Möglichkeiten: Entweder man legt in der Tabelle tblMitgliedsdaten für jede denkbare Kommunikationsmöglichkeit ein Feld an – also z.B. Telefon privat, Telefon mobil, Telefon geschäftlich, Telefon Eltern, Fax privat, Fax geschäftlich… – oder man erstellt eine m:n-Verknüpfung, über die man ja nach Bedarf die entsprechenden Nummern eingeben kann.

    Das die zweite Möglichkeit die bessere ist, liegt auf der Hand: Erstens ist man jederzeit neuen Kommunikationsmöglichkeiten gewappnet und zweitens verschleudert man keinen Speicherplatz, indem man für jedes Mitglied und jedes Kommunikationsmittel ein Feld reserviert.

    Die Tabelle tblAltersklasse

    In jeder Sportart gibt es unterschiedliche Altersklassen, die in der Regel dafür sorgen, dass keine Mannschaft mit zwei Meter großen Erwachsenen gegen die altersmäßig und körperlich unterlegenen 14jährigen antreten dürfen. Die erforderlichen Einteilungen nimmt im vorliegenden Fall -die Tabelle tblAltersklasse vor.

    Die Tabelle nimmt über eine Unterscheidung des Geschlechts und eine Einteilung in verschiedene Altersstufen eine Unterscheidung bezüglich der Altersklasse vor.

    Die Tabelle ist nicht direkt mit der Tabelle tblMitgliedsdaten verknüpft, sondern bezieht nur die Angabe des Geschlechtes aus der gleichen Tabelle wie die Tabelle tblMitgliedsdaten.

    Die eigentliche Anwendung der Tabelle wird später in Kapitel 3 deutlich.

    Die Tabelle tblBeitragsklassen

    ähnlich wie die Tabelle tblAltersklassen teilt die Tabelle tblBeitragsklassen die Mitglieder in unterschiedliche Kategorien ein. Die Beitragsklasse setzt sich ebenfalls aus dem Alter zusammen, aber hier spielt das Geschlecht keine Rolle. Dafür ist aber wichtig, ob es sich um eine aktive oder passive Mitgliedschaft handelt und ob das Mitglied möglicherweise Student, Schüler, Auszubildender oder Rentner ist – also ob irgendwelche Gründe vorliegen, nicht den vollen Mitgliedsbeitrag zu zahlen. Denn das ist der Punkt, der die Beitragsklasse interessant macht – der zu zahlende Beitrag.

    Dass man mit Abfragen Datensätze entsprechend vorgegebener Kriterien auswählen und auf der Basis der Auswahl auch bestimmte Aktionen ausführen kann, ist dem geneigten Access-Anwender hinreichend bekannt. Dabei spielen zumeist einzelne oder auch über eine Beziehung miteinander verknüpfte Tabellen eine tragende Rolle.

    Im Folgenden lernen Sie, dass die der Abfrage zugrundeliegenden Tabellen nicht immer verknüpft sein und noch nicht einmal gemeinsame Felder haben müssen, um das gewünschte Ergebnis zu liefern.

    Ermitteln der Altersklasse eines Mitgliedes

    Zur Ermittlung der Altersklasse eines Mitgliedes sind die Tabellen tblMitglieder und tblAltersklassen sowie eine Abfrage erforderlich – und außerdem noch die Ein-Feld-Tabelle tblStichtag. Diese Tabelle enthält nämlich den Tag, auf den sich die Ermittlung der Altersklasse bezieht.

    Die Abfrage bringt die drei Tabellen zusammen – aber nicht über eine Verknüpfung.

    Wenn Sie Bild 6 betrachten, können Sie den Zusammenhang zwischen den Tabellen erkennen.

    Die Abfrage enthält zunächst einmal das Feld ID, über dass die Ergebnisse der Abfrage zu gegebener Zeit mit den entsprechenden Datensätzen der Tabelle tblMitgliedsdaten verbunden werden.

    Das Feld Stichtag entstammt der Tabelle tblStichtag. Es gibt den Tag an, für den die relevanten Altersangaben zu berechnen sind. Mit dem Alter des Mitgliedes am Stichtag kann man dann anhand der Tabelle tblAltersklassen die entsprechende Altersklasse berechnen.

    Berechnung des Alters

    Dazu muss man jedoch zunächst das Alter berechnen. Das geschieht auf der Basis des Geburtstages und des Stichtages mit der folgenden Formel:

    Alter: DatDiff("jjjj";[Geburtsdatum];[Stichtag])+(Format([Stichtag];"mmtt") <Format([Geburtsdatum];"mmtt"))

    Die Funktion berechnet zunächst die Differenz zwischen dem Jahr des Geburtsdatums und des Stichtags. Es kann jedoch sein, dass man am 1.6.1990 Geburtstag hat und der Stichtag der 1.1.2001 ist. In dem Fall liefert die einfache Differenz der Jahre nicht den richtigen Wert. Daher vergleicht man noch, ob das Datum des Stichtags kleiner als das Datum des Geburtstags ist. Falls das der Fall ist, ergibt der Vergleich den Wert -1 für True und anderenfalls 0 für False. Addiert man jeweils den Wert -1 oder 0, erhält man in jedem Fall das richtige Ergebnis.

    [Funktion aus: Access-FAQ, www.donkarl.com]

    Für das Alter legt man nun noch ein Kriterium fest:

    Zwischen [AlterUntergrenze] Und [AlterObergrenze]

    Damit schränkt man die Einträge der Tabelle tblAltersklassen auf diejenigen ein, die das berechnete Alter des Mitgliedes enthalten.

    Nun ist nur noch das Geschlecht des Mitglieds auszuwerten: Hierzu wirft die Abfrage lediglich noch die Einträge der Tabelle tblAltersklasse hinaus, deren Feld GeschlechtNr nicht mit dem gleichnamigen Feld der Tabelle tblMitglieder übereinstimmt.

    Schon erhalten Sie als Ergebnis eine Liste der Mitglieder und deren Altersklasse (siehe Bild 7).

    Ermitteln der Beitragsklasse eines Mitglieds

    Die Ermittlung der Beitragsklasse eines Mitglieds erfolgt auf ähnliche Weise wie die Ermittlung der Altersklasse. Auch hier spielt das Alter eine entscheidende Rolle, denn Jugendliche zahlen in der Regel weniger Beitrag als erwachsene Vollmitglieder.

    Außerdem überprüft die Abfrage, ob das entsprechende Mitglied eine aktive oder passive Mitgliedschaft betreibt und ob es eine Beitragsermäßigung gibt..

    Das Abfrageergebnis ähnelt dem der Abfrage der Altersklasse, wie Bild 8 verdeutlicht.

    Die Anwendung Vereinsverwaltung beinhaltet einige Formulare, die sich aber auf zwei Formulare mit umfangreichen Aufgaben und einigen weiteren Formularen mit elementaren Aufgaben aufteilen. Die beiden wichtigsten Formulare sind das Formular frmMitglieder, mit dem man Mitglieder suchen, auswählen, markieren sortieren kann und das Formular frmMitgliedsdaten, das zur Eingabe neuer und zur Bearbeitung bestehender Daten dient.

    Das Formular zur Auswahl und zum Markieren von Mitgliedern

    Das wichtigste Formular der Vereinsverwaltung ist das Formular frmMitglieder (**siehe oben, Bild 3**). Mit ihm kann der Anwender Mitglieder suchen, markieren oder sortieren.

    Das Formular ist in mehrere Bereiche unterteilt.

    Anzeige der Mitglieder

    Der wichtigste Teil des Formulars ist das Unterformular subfrmMitglieder, das die Informationen über die Mitglieder anzeigt. Das Unterformular enthält ein Ja/Nein-Feld, mit dem man den Datensatz markieren kann sowie einige Felder mit Informationen über die Mitglieder wie den Namen, den Wohnort und das Geburtsdatum.

    Die Datenherkunft des Unterformulars ist eine Abfrage, mit der die anzuzeigenden Datensätze entsprechend einiger Steuerelemente des Hauptformulars ermittelt werden.

    Suchen von Mitgliedern

    Die Steuerelemente zur Ermittlung von Mitgliedern mit eben genannter Abfrage befinden sich sämtlich im Bereich Suchoptionen des Formulars frmMitglieder.

    Hier finden Sie die Suchkriterien Vorname, Nachname, Postleitzahl, Wohnort, Geburtsdatum und Geschlecht. Die ersten vier der genannten Suchkriterien verarbeiten die eingegebenen Informationen mit dem ersten eingegebenen Buchstaben. Sobald Sie also für den Vornamen den Buchstaben A eingeben, beinhaltet das Unterformular nur noch diejenigen Datensätze, deren Vorname mit A beginnt.

    Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

    den kompletten Artikel im PDF-Format mit Beispieldatenbank

    diesen und alle anderen Artikel mit dem Jahresabo

    Schreibe einen Kommentar