Formatierung von Zuordnungslösungen ◦ ?

Das folgende Beispiel soll - ähnlich wie Kumulative Notenhäufigkeiten - zeigen, dass sich die prozedurale (satzorientierte) Vorgehensweise manchmal besser eignet als die deklarative (mengenorientierte).

### Benutzersicht

Die folgenden Schaltflächen von FrmTestauswahl geben den Bericht RptTestlösung auf dem Bildschirm oder Drucker aus:

- BtnGesamtlösungsvorschau zeigt alle Lösungen unter Angabe der absoluten Aufgabennummern

- BtnMcZoVorschau zeigt alle Multiple Choice- und Zuordnungsaufgaben

- BtnEssayvorschau zeigt alle Essaylösungen.

Die Bilder 1 und 2 illustrieren einen Formatierungsaspekt. Bild 1 betrifft das Eingabeformular Zuordnungstext der Aufgabe ... und Bild 2 zeigt den entsprechenden Ausschnitt des Berichts RptTestlösung:

    Bild 1: Eingabeformular einer Zuordnungsaufgabe  (Beispiel einer m:n-Beziehung eingerahmt)

    Bild 2: Berichtsversion der Zuordungsaufgabe von Bild 1  (Beispiel einer m:n-Beziehung eingerahmt)

Das Eingabeformular von Bild 1 stellt die Zuordnungslösungen ohne Wiederholungsgruppen dar. Das heisst, zu jedem Zahlenpräfix gehört nur ein einziges Buchstabenpräfix. Eine Wiederholungsgruppe "AC" wie in Bild 2 ist nicht erlaubt. Die Aussage "Die Zahlenalternative 1 gehört zu den Buchstabenpräfixe A und C" kann nur auf zwei Zeilen, nämlich "1 A" und "1 C", eingegeben werden.

Der Bericht von Bild 2 stellt hingegen die Beziehung zwischen Zahlen- und Buchstabenpräfixe mit Wiederholungsgruppen dar (1 AC). Dies liegt daran, dass die Lösungsvorlage eines schriftlichen Tests - mit Ausnahme der roten Farbe der Buchstabenpräfixe - gleich aussehen soll wie das Aufgabenblatt der TestteilnehmerInnen. Nur so kann die Musterlösung als Folie über die studentische Lösung gelegt werden (vgl. Tests korrigieren).

### Entwicklersicht

RptTestlösung soll also eine Beziehung zwischen Zahlen- und Buchstabenpräfixe mit Wiederholungsgruppen darstellen. Die Ereignisprozedur Report_Open erstellt dazu eine temporäre Tabelle TmpBUCHSTABENPRÄFICES mit den folgenden Feldern:

- Fragenschlüssel (eine fortlaufend nummerierte Identifikation)

- Zahlenpräfix (zum Beispiel 1)

- TmpBuchstabenpräfixe (z.B. AC oder B).

Der folgende Entwurscode fasst Report_Open zusammen:

>     Ereignisprozedur Report_Open
>       Lösche die letzte Version der temporären Tabelle TmpBUCHSTABENPRÄFICES

>       Definiere TmpBUCHSTABENPRÄFICES neu
>         Fragenschlüssel
>         Zahlenpräfix
>         KonkatBuchstabenpräfices

>       Erstelle eine Abfrage aus den Zuordnungsaufgaben des gewählten Testtermins mit ...
>         Fragenschlüssel
>         Zahlenpräfix
>         Buchstabenpräfix

>       '-- Prozedurale Satzverarbeitung
>       Bis Ergebnistabelle der Abfrage fertig
>         Konkateniere für eine Gruppe gleicher Zahlenpräfices
>           die Buchstabenpräfixe zu KonkatBuchstabenpräfices         'für 1 zum Beispiel A&C = AC
>         Erweitere TmpBUCHSTABENPRÄFICES um den Gruppensatz aus ...
>           Fragenschlüssel, Zahlenpräfix, KonkatBuchstabenpräfices

Sie können den VBA-Code inspizieren, wenn Sie im Datenbankfenster von Testverwaltung.mdb die Schaltfläche Berichte wählen (»F11), mit einem »Rechtsklick RptLösung in der Entwurfsansicht öffnen und aus der Eigenschaftenliste (»Alt/Eingabetaste) zur Ereignisprozedur Report_Open verzweigen. Report_Open ist aus den folgenden Gründen länger und komplexer als der Entwurfscode: Die prozedurale Tabellenverarbeitung unter dem Objektmodell DAO bringt viel syntakischen und semantischen Ballast mit sich. Insbesondere erfolgen Operationen auf extern gespeicherten Tabellen nicht auf den Tabellen selbst, sondern in Recordsets, das heisst Mengen von Datensätzen, deren Existenz auf die Laufzeit des Programms beschränkt bleibt.

Datenbankstrukturdiagramme