CLS: Tipps & Tricks: Access-Berichte



Tipps & Tricks: Access-Berichte

Auf dieser Seite finden Sie 10 Tipps & Tricks für Access-Berichte. Soweit keine Einschränkungen dazu genannt werden, gelten diese Tipps & Tricks für alle Versionen von Access.

Wenn in den folgenden Erläuterungen Texte wie MsgBox formatiert sind, handelt es sich um konkret einzugebende Inhalte wie VBA-Code oder die Eingabe von Werten. Menüs wie Datei Speichern sind wie hier zu sehen formatiert. Schaltflächen oder Registerkarten auf Dialogen werden wie Menüs behandelt.

Alle Tipps sind nach bestem Wissen geprüft, aber selbstverständlich ohne Gewähr. Sollten Sie doch einen Fehler darin entdecken, würden wir uns freuen, wenn Sie uns per eMail Bescheid sagen.

Berichte exportieren ID 283 Aktuell

Wenn Sie Informationen aus einer Datenbank an Kolleg/inn/en weiterreichen wollen, stellt sich oft die Frage nach dem geeigneten Format. Bevor Sie nun anfangen, Tabellen- oder Abfrage-Inhalte über die Zwischenablage nach Excel zu kopieren und wieder zu formatieren, sollten Sie über die Weitergabe als Bericht nachdenken.

Da der Bericht untrennbarer Teil der Datenbank ist, weil er ja dynamisch seine Daten erhält, muss er exportiert werden. Access stellt schon lange den offenbar recht unbekannten SnapShot-Viewer (Download bei Microsoft) zur Verfügung, mit dem exportierte Berichte im speziellen SnapShot-Format angesehen werden können.

Von der Seitenansicht eines Berichts aus können Sie einen SnapShot einfach mit Datei Exportieren erzeugen, wenn Sie dort den Dateityp auf "SnapShot-Format" stellen. Die "*.snp"-Datei enthält komplett alle Daten und Formatierungen so, wie es auch in der Seitenansicht enthalten ist, aber keine dynamische Verknüpfung mehr zu den Daten. Im Grunde entspricht das "*.snp"-Format (auch in der geringen Dateigröße) dem "*.pdf"-Format. Daher lässt sich diese Datei sehr einfach als eMail-Anhang versenden.

Das Sortieren/Gruppieren-Fenster im Berichtsentwurf gibt kaum einen Hinweis darauf, dass Sie dort auch mit Berechnungen arbeiten können. Um beispielsweise Namen alphabetisch zu gruppieren und durch den Anfangsbuchstaben hervorzuheben, tragen Sie in der Spalte Feld/Ausdruck die Berechnung =Links(kndName;1) ein, damit alle Inhalte nach ihrem ersten Buchstaben gruppiert werden.

Im Entwurf dieses Gruppenkopfs steht in einem berechneten Textfeld dann die gleiche Formel, um dort auch den passenden Buchstaben anzuzeigen. Für kompliziertere Formeln kann es aber durchaus übersichtlicher sein, diese in einem Feld der zugrundeliegenden Abfrage zu berechnen, auf welches dann hier leichter zugegriffen statt zweimal berechnet werden kann.

Access-Berichte unterscheiden nicht in gerade und ungerade Seiten, daher ist ein typisches doppelseitiges Buchlayout nicht eingebaut. Mit ein wenig Nachhilfe ist es aber auch ohne Programmierung machbar. Um die Seitenzahl immer außen und den Berichtstitel immer innenseitig auszudrucken, benötigen Sie zwei Textboxen:

  • edtLinks liegt am linken Rand der Kopf- oder Fußzeile, ist linksbündig formatiert und enthält die Formel =Wenn([Seite] mod 2 = 0;[Seite];"Berichtstitel").
  • edtRechts hingegen liegt rechts und ist rechtsbündig mit der Formel =Wenn([Seite] mod 2 <> 0;[Seite];"Berichtstitel").
Der modulo-Operator errechnet den Rest nach ganzzahliger Teilung, findet also für 5 durch 2 den Rest 1 (siehe auch Tipp "Besondere Operatoren (1): Rechnen"). Für gerade Zahlen ist der Rest nach Division durch 2 immer 0, für ungerade 1. Dadurch werden die Inhalte jeweils abwechselnd dargestellt.

Wenn Sie deren Hintergrund transparent schalten, können sich die Textboxen auch überlappen. Dann kann ein sehr langer Titel auch über die Seitenmitte hinausgehen, weil ihm ja meist nur eine schmale Seitenzahl gegenübersteht.

Einer der beliebtesten Fehler in Berichten ist es, jede zweite Seite leer auszudrucken, und zwar so beliebt, dass Microsoft dem sogar eine eigene Warnmeldung spendiert hat. Leider ist die Warnung unvollständig.

Das Problem ist vor allem ein rechnerisches: mit 18 cm Berichtsbreite bei einer DIN-A-4-Papierbreite von 21 cm fühlt sich das ausreichend an. Access stattet Berichte aber mit überraschend breiten Rändern von links und rechts je 2,54 cm aus. Damit verbleiben nur noch weniger als 16 cm für die eigentlichen Inhalte übrig. Falls Ihr Bericht nun im Entwurf 18 cm breit ist, aber kein Element über die 16 cm-Marke hinausragt, erzeugt Access tatsächlich die beschriebene Warnung "Die Bereichsbreite ist größer als die Seitenbreite, und in dem zusätzlichen Platz gibt es keine Elemente. Daher werden einige Seiten wahrscheinlich leer sein".

Sobald jedoch Kontroll-Elemente über die 16 cm hinausragen, fehlt dieser Hinweis, denn Access geht dann davon aus, dass es Absicht ist. Mit Textboxen passiert es allerdings schnell, dass diese für umfangreiche Datenmengen dimensioniert wurden, in den Datensätzen selber dann aber nur kurze Inhalte stehen. Dann drucken Sie auf jeder zweiten Seite den unbenutzten Rest solcher Textboxen aus, der natürlich unsichtbar bzw. weiß ist.

Die Fähigkeit von Berichten, mehrere Spalten zu drucken, ist eher unauffällig untergebracht. Zuerst müssen Sie aber dafür sorgen, dass die Berichtsinhalte nicht zu breit sind, dass also kein Element über beispielsweise 6 cm hinausragt.

Unter Datei Seite einrichten stellen Sie in der Registerkarte Spalten dann die Spaltenanzahl auf 3 ein. Achten Sie darauf, dass auf der Registerkarte Ränder die linken und rechten Ränder zusammen mit der in diesem Fall dreifachen Detailbreite plus zwei Spaltenabstände nicht größer als die 21 cm der DIN-A-4-Breite werden dürfen.

Auch ein solcher mehrspaltiger Bericht mit schmalem Detailbereich kann trotzdem eine "normal breite" Kopf- und Fußzeile haben. Diese können Sie wie gewohnt erstellen mit der Breite von 16 cm (je nach eingestellten Rändern), der Detailbereich hält sich trotzdem an die Breite aus dem Register Spalten bei Detailbereich.

Um im Seitenfuß eines Berichts die aktuelle Seitenzahl anzuzeigen, fügen Sie in einem Textfeld =[Seite] ein. Die Anzeige auch der Gesamtseitenzahl erfolgt entsprechend mit =[Seite] & " von " & [Seiten].

Ärgerlicherweise werden die Seitenzahlen damit aber syntaktisch wie Feldinhalte behandelt. Das hat zur Folge, dass Sie die Inhalte von Feldern namens Seite oder Seiten in berechneten Berichtsfeldern nicht anzeigen können. Das gilt übrigens ebenso für Page und NumPages, den amerikanischen Originalbezeichnungen.

Sie haben aber Glück, dass Ihnen solche Feldnamen ohne Präfix dank Ungarischer Notation (siehe Tipp "Namenskonventionen (2): Ungarische Notation") ohnehin nicht passieren können!

Sobald Sie auf einem umfangreichen Bericht die Gesamtseitenzahl (=[Seiten]) einfügen, wird die Vorschau plötzlich sehr langsam. Da Sie nämlich schon auf der ersten Seite die Gesamtseitenzahl anzeigen wollen, ist Access nunmehr gezwungen, den Bericht auch schon bis zu letzten Seite zu formatieren.

Normalerweise reicht es, die erste Seite zu formatieren und sofort anzuzeigen. Sollten Sie dann wirklich mal zur zweiten Seite blättern, wird diese erst dann formatiert und dargestellt. Das geht natürlich bedeutend schneller als für die Anzeige schon der ersten Seite alle 500 Seiten komplett formatieren zu müssen.

Daher sollten Sie wenigstens bis zur Fertigstellung eines Berichts aus =[Seiten] vorübergehend ein =[Seite] machen und erst in der endgültigen Version wieder zurücksetzen.

Manchmal ist es gewünscht, etwa auf Seite 1 als Hinweis auf die Folgeseite ../2 zu schreiben. Selbstverständlich muss dieser Hinweis auf der letzten Seite fehlen. Fügen Sie dazu folgende Formel in ein Textfeld ein:

=Wenn([Seite] < [Seiten];"../" & [Seite]+1;"")

Damit erscheint außer auf der letzten Seite die jeweilige Nummer der Folgeseite als Hinweis.

Wie im Tipp "Jede zweite Berichtseite ist leer?" bereits genannt, sind neue Berichte standardmäßig mit erstaunlich breiten Seitenrändern von je 2,54 cm ausgestattet.

Das lässt sich unter Extras Optionen auf der Registerkarte Allgemein (nicht etwa Formulare/Berichte!) ändern. Geben Sie hier sinnvollere Werte vor, die dann in zukünftigen Berichten als Standard berücksichtigt werden.

Sollen Zeilen in einem Access-Bericht durchnummeriert werden, ist das nicht nur technisch bedeutend einfacher, sondern auch deutlich schneller als die anderen hier genannten Varianten:

  • Legen Sie dazu in einem Berichtsentwurf ein neues Textfeld mit beliebigem Namen an.
  • Als Steuerelementinhalt erhält es die Formel =1.
  • In der Eigenschaft Laufende Summe stellen Sie Über Alles ein.
Jetzt ist jeder Datensatz mit 1 beginnend automatisch und sehr schnell durchnummeriert. Sie können damit sogar in mehreren Gruppen immer wieder ab 1 neu nummerieren, wenn Sie Laufende Summe auf Über Gruppe einstellen, was die anderen Varianten nicht leisten können.