Ich habe mal eine beliebige Personenliste mit Vorname, Nachname, Geburtsdatum, Gender und Ausscheidedatum in eine Datenbank kopiert. Diese Personen representieren Schüler. Ignoriere einfach das zufällige Geburtsdatum aus 9 Jahrzehnten.
Dann habe ich eine Liste von Klassen erstellt mit Schuljahr und Klassenname und eine Spalte “EX”, mit der man ggf. Klassen ausblenden kann.
Das Formular “Klassen → Schüler” erlaubt es, Schüler den Klassen zuzuweisen, Klassen zu bearbeiten und neue Klassen zu erstellen. Doppelte Zuweisungen sind nicht möglich.
Das Formular “Schüler → Klassen” erlaubt es, Klassen den Schülern zuzuweisen, Schüler zu bearbeiten und neue Schüler zu erstellen. Doppelte Zuweisungen sind nicht möglich.
Dann gibt es noch einen Bericht, der einfach nur ausgibt, welche Schüler in welchen Klassen sind.
Abfragen, die mit “LB_” anfangen sind für Listenfelder gedacht. Abfrage “LB_P_CURRENT” zeigt alle Schüler ohne Ausscheidedatum oder mit Ausscheidedatum später als heute. LB_C_CURRENT zeigt alle Klassen, die nicht mittels Spalte “EX” ausgeblendet sind.
Abfragen und Tabellen benutzen Abkürzungen als Tabellennamen, was die Arbeit an der Datenbankstruktur sehr viel einfacher macht. In Formularen und Berichten sind die Bezeichnungen beliebig und auf Deutsch. Der angenommene Benutzer einer Datenbank sollte nur mit Formularen und Berichten konfrontiert werden, mit Abfragen nur bedingt, etwa bei Serienbriefen, und auch in Abfragen kann man sprechende Bezeichner wählen.
Der eine Bericht in der Datenbank deutet an, dass Datenbankberichte alternativ zu Serienbriefen verwendet werden können. Man könnte sogar Calc-Tabellen als Berichts-Medium verwenden.
Nun bestehen die Schüler nur aus Basis-Attributen, und Klassen bestehen aus einem Schuljahr und einem Bezeicher. Wir haben festgelegt, wer zu welcher Klasse gehört. Klassenarbeiten sind überhaupt noch nicht erfasst. Was macht eine Klassenarbeit genau aus? Wird sie immer nur mit einer bestimmten Klasse durchgeführt? Wenn ja, dann bestünde eine Klassenarbeit aus einer Klassen-ID (Bezug auf existierende Klasse), einem Ausführungsdatum, einem beschreibenden Text.
Dann benötigt man noch eine Ergebnistabelle. Jedes Ergebnis braucht eine Arbeits-ID (Bezug auf durchgeführte Arbeit), eine Schüler-ID (Bezug auf existierenden Schüler), irgendeinen Punktwert oder ähnliches und dann eben noch einen beschreibenden Text.
Hier ist also mein kleiner Projektentwurf mit Schülern (Tabelle P) und Klassen (Tabelle C)
- EDIT: und mit Tests (Tabelle T) und Ergebnissen (Tabelle R).
Klassenarbeiten.odb (64.5 KB) (2. Version)
Es ist ein wenig zusammengestoppelt, aber so halbwegs zu bedienen.
Das Formular “Testreport” dient einzig dazu, einen Test auszuwählen, der dann im gleichnamigen Report erscheint. Abfrage “Test_Report” könnte auch in einem Serienbrief oder in Calc verwendet werden. In Calc werden lange Texte am besten mit autom. Zeilenumbruch angezeigt.