Ein einfacher Bericht ◦ ?

Während Formulare Daten lesen und ausgeben, sind Bericht (engl. report) nur Ausgabemedien. Ausgegeben wird meist ein Abfrageergebnis, das auf dem Bildschirm oder Drucker in der gewünschten Reihenfolge und Formatierung erscheint. Sowohl Formulare als auch Berichte beziehen ihre Daten aus einer Basistabelle, einer Abfrage oder einem Unterprogramm. Im Gegensatz zu einem Formular kann der Berichtsadressat aber kaum intervenieren. Eine anschauliche Einführung in den Aufbau, die Funktion und die Datenherkunft von Berichten erhalten Sie im Access-Hilfethema Berichte.

### Bericht Ergebnisse der Zuordnungsaufgaben

#### a) Anwendersicht

Berichte und Formulare können Daten filtern und sortieren. Wer Datensätze in einem Bericht gruppiert ausgeben möchte, geht wie folgt vor:

1. Er wählt ein Gruppierungskriterium - zum Beispiel Fragenschlüssel -, welches die Datensätze zusammenfasst
2. Er bestimmt dessen Ausgabereihenfolge, zum Beispiel aufsteigend
3. Er setzt die Gruppierungseigenschaften ...

> a) Gruppenkopf (header) und/oder Gruppenfuss (footer)
> b) Gruppenbruch (Sollen Gruppen auf verschiedene Seiten gespalten werden?).

Im Formular 3 A ntworten eingeben gelangen Sie nach einem Klick auf die Schaltfläche Zuordnungsergebnisse zum Bericht RptQryZOErgebnisse mit den folgenden Bereichen (engl. sections):

- Der Berichtskopf enthält den Titel des Berichts
- Der Seitenkopf enthält den Text zu Beginn jeder Berichtsseite
- Der Seitenfuss mit Angabe von Datum und Seitenzahl ist auf der Abbildung nicht sichtbar
- Gruppierungsmerkmal ist der Fragenschlüssel. Der Kopfbereich der Gruppe Fragenschlüssel zeigt den Fragenschlüssel fett und die Musterlösung als Konkatenation der korrekten Zuordnungspaare an
- Der Detailbereich gibt je nach Fragenschlüssel unterschiedlich viele Zuordnungspaare aus.

#### b) Entwurfsansicht

Der Bericht enthält Bezeichnungsfelder (dunkelblaue Bezeichner) und Textfelder (schwarz). Textfelder werden durch das Präfix Txf eingeleitet:

- Der Berichtskopf TxfTitel enthält die Testidentifikation des Formulars 3 Testantworten eingeben
- Der Seitenkopf enthält mit TxfGeschlechtsname, TxfVorname und TxfMatrikelnummer drei Textfelder, die sich ebenfalls auf das Formular 3 Testantworten eingeben beziehen
- Der Kopfbereich der Gruppe Fragenschlüssel enthält das Textfeld TxfFragenschlüssel, dessen Wert aus der Datenquelle QryZOErgebnisse des Berichts stammt
- Der Detailbereich zeigt alle Lösungspaare pro Fragenschlüssel an. Die Buchstaben- und Zahlenpräfixe stammen ebenfalls aus der Abfrage QryZOErgebnisse. Weil das Textfeld TxfFragenschlüssel im Kopfbereich steht, wird es - im Gegensatz zur Ergebnistabelle von QryZOErgebnisse - statt für jedes Zuordnungspaar nur einmal pro Gruppe angezeigt.

### Ereignisprozedur zu Ergebnisse der Zuordnungsaufgaben

Das Textfeld konkatenierteLösungen enthält die Musterlösung einer Zuordnungsaufgabe. Sie finden es im Kopfbereich der Gruppe Fragenschlüssel (siehe oben). Sein Wert stammt aus der temporären Tabelle TmpKonkatZOLösungen. Sie wird vor dem Öffnen des Berichts erstellt, weil es nicht möglich ist, vor die Berichtspalte Teilnehmerlösung eine Spalte Musterlösung so zu stellen, dass jedem Teilnehmer-Zuordnungspaar ein Muster-Zuordnungspaar entspricht. Die Ereignisprozedur Report_Open konkateniert deshalb vor dem Öffnen des Berichts alle Musterlösungen eines Fragenschlüssels zu einer Zeile, die im Kopfbereich der Gruppe Fragenschlüssel erscheint:

Wenn Sie den Bericht mit »Ansicht/Entwurfsansicht anzeigen und mit »Alt/Eingabetaste das Eigenschaftenfenster öffnen, können Sie die Ereignisprozedur Report_Open inspizieren. Ihr Code ist allerdings so umfangreich, dass wir sie hier nur entwurfssprachlich zusammenfassen:

>     Ereignisprozedur Report_Open
>       Erstelle eine leere temporäre Tabelle TmpKonkatZOLösungen mit den Spalten ...
>         Fragenschlüssel
>         konkatLösungen

>       Erstelle die Abfrage QryMusterlösungen mit den Spalten ...
>         Fragenschlüssel
>         Buchstabenpräfix
>         Zahlenpräfix

>       Bis QryMusterlösungen fertig gelesen
>         letzterFragenschlüssel = Fragenschlüssel
>         konkatLösungen = konkatLösungen & Buchstabenpräfix & Zahlenpräfix
>         Lies den nächsten Satz von QryMusterlösungen
>         Solange QryMusterlösungen nicht fertig gelesen und letzterFragenschlüssel = Fragenschlüssel
>           konkatLösungen = " " & Buchstabenpräfix & Zahlenpräfix
>         Füge die Zeile (Fragenschlüssel,konkatLösungen) an die Tabelle TmpKonkatZOLösungen