|
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.
|
|  | 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'! |
| | | | | |
Zusammenfassung
Erfahren Sie, wie Sie Gruppensummen am Berichtsfuß ausgeben, ohne Gruppierungen anzulegen.
Techniken
Berichte, VBA
Voraussetzungen
Access 2000 oder höher
Beispieldateien
GruppenSummeOhneGruppe.mdb
Shortlink
www.access-im-unternehmen.de/710
Gruppensummen ohne Gruppen im Berichtsfuß
André Minhorst, Duisburg
Die Summen von Zahlen in bestimmten Feldern innerhalb von Gruppierungen zu ermitteln, ist kein Hexenwerk. Manchmal benötigen Kunden aber Spezialanforderungen, die sich mit üblichen Mitteln nicht mehr bewerkstelligen lassen. Zum Beispiel das Bilden von Gruppensummen ohne das Vorhandensein von Gruppen. Der vorliegende Beitrag zeigt, wie dies funktioniert.
Neulich erreichte mich die Anforderung, für eine Liste von Elementen bestimmter Kategorien die Anzahl der Elemente je Kategorie auszugeben - allerdings nicht im Rahmen einer Gruppierung im Gruppenfuß, sondern ohne Gruppierung im Seitenfuß. Konkret ging es um die Ausgabe von Präsenten für Mitarbeiter, wobei die Mitarbeiter nicht nach Präsent gruppiert, sondern nach Alphabet, Alter oder sonstigen Kriterien sortiert werden sollten. Prinzipiell soll der Bericht also wie in Abb. 1 aussehen.
Abb. 1: Anzahl von Gruppierungselementen ohne Aktivierung der Gruppierung
Die Lösung ist nicht ganz trivial, denn die Anzahl der verschiedenen Präsente kann sich ändern. Es wäre somit kein guter Stil, einfach für jede Präsentart ein Bezeichnungsfeld im Berichtsfuß zu platzieren und ein entsprechendes Textfeld mit der Anzahl zu füllen. Das Problem hierbei wäre, dass Sie jedes Mal, wenn ein Präsent hinzukommt oder wegfällt, in den Entwurf des Berichts eingreifen müssten.
Das Beispieldatenmodell sieht wie in Abb. 2 aus und besteht aus einer Mitarbeiter- und einer Präsente-Tabelle. Also brauchen wir eine dynamische Lösung, die sich an den vorhandenen Präsentarten orientiert und je Präsent eine Zeile im Berichtsfuß erzeugt. Dies gelingt nur mit einem Unterbericht zuverlässig. Diesem weisen Sie als Datenherkunft eine Abfrage basierend auf den einzigen beiden Tabellen des Datenmodells zu. Den Bericht selbst erleichtern Sie um Seitenkopf und -fuß sowie um Berichtskopf und -fuß und fügen eine Gruppierung nach dem Feld PraesentID hinzu. Diese soll keinen Kopfbereich, aber einen Fußbereich enthalten. Dann minimieren Sie den Detailbereich, indem Sie seine Eigenschaft Höhe auf 0 einstellen oder den unter dem Detailbereich liegenden Gruppenfuß so weit nach oben schieben, dass der Detailbereich nicht mehr sichtbar ist. Im Gruppenfuß schließlich fügen Sie das Feld Praesent aus der Feldliste des Berichts ein. Ergänzen Sie diesen Bereich um ein weiteres Textfeld namens txtAnzahlPraesente, dessen Eigenschaft Steuerelementinhalt Sie auf den Wert =Anzahl(PraesentID) festlegen. Der Berichtsentwurf sollte nun wie in Abb. 3 aussehen.
|
|
Sie haben keine Benutzerdaten? Na, dann aber schnell:
Benutzerdaten erhalten Sie auf zwei Arten:
1. Testen Sie das Online-Archiv von 'Access im Unternehmen' für eine Woche. Sie müssen Sie lediglich für den 'Access im Unternehmen'-Newsletter anmelden. Ja, ich will den einwöchigen Testzugang und den Newsletter!
2. Greifen Sie ein ganzes Jahr auf das Online-Archiv zu und erhalten Sie zusätzlich alle zwei Monate das brandneue "Access im Unternehmen"-Magazin - für nur EUR 108,-* im Jahr! Ja, ich will Access im Unternehmen bestellen!
* inkl. MwSt., zzgl. Versandkostenpauschale, EUR 140,- inkl. MwSt., zzgl. Versandkostenpauschale ab dem zweiten Jahr
|