Felder mit variabler Größe im Bericht

Hallo allerseits,

ich möchte Datensätze, die ich als „Notizzettel“ verwende, als Bericht ausgeben. Die Notizen sind unterschiedlich lang, und daher benötige ich Felder, die sich dem anpassen. Zusätzlich sind diesen Notizen unterschiedlich viele Adressen (min. 1, max. bisher 10) zugeordnet, die ich anschließend - im Detailbereich - auflisten lasse.

Problem: setze ich den Wert „CanGrow“ [weiss nicht, wie der im Deutschen heisst - sch*** englische Version] auf True, kann das Feld sich zwar ausdehnen, aber nur max. bis zum Ende des Pages Headers, und ausserdem überschreibt es mir alle Felder, die im Header darunter stehen. In der Hilfe steht auch irgendetwas darüber, dass die Funktion „CanGrow“ und „CanShrink“ für den Page Header nicht brauchbar sind. Aber trotzdem:

  1. Kann ich die nachfolgenden Felder zumindest gegen das „Überlagern“ sichern ? Falls ja, wie ?

  2. Habe ich eine andere Möglichkeit, die Daten aufzuteilen (Notiz -> Page Header, zugeordnete Datensätze -> Detailbereich) ? Kann ich eventuell einen „Unter“-Bericht erstellen, ähnlich wie bei Formularen ? Oder kann ich im Detailbereich noch einmal einen Detailbereich einrichten (und falls ja, wie) ?

  3. Sozusagen OffTopic: ich habe im Bericht einen Filter eingebaut, so dass nur die aktuelle Notiz gedruckt wird. Irgendwie verschwindet der Filter immer mal wieder, wenn ich im Design-Modus war, und zwar auch ohne dass ich den Wert überhaupt berührt habe. Was habe ich da jetzt schon wieder falsch gemacht ?

Bin offen für alle Ideen. Danke im Voraus
Gruß
Jürgen

Hallo Jürgen!

Es gibt in Access auch Unterberichte. Diese werden zwar selten genutzt, aber es gibt sie immerhin. Weiteres kann ich dir im moment noch nicht sagen, da muß ich nachher erst bei mir drüben mal nachschauen.

Vorab soviel:

Unterberichte sind grundsätzlich vergleichbar mit Unterformularen. Sie können eingesetzt werden, um detaildaten zu einem Datensatz im Hauptbericht auszugeben. Zu diesem Zweck erfolgt eine Verknüpfung über ein gemeinsames Feld - wie Beispielsweise eine Artikelnummer. Wie gesagt, alles andere muß ich selber erst einmal genau nachaschauen - aber da mich das Problem interessiert glaube ich, das wir zusammen eine Lösung dafür finden werden. Mit freundlichen Grüßen Albert.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Warum legst du keinen Gruppenkopf an (Müsste im Menü „Sort and Group“ oder so heissen - ich hab nun NICHT die englische Version)?

Und dann halt die Felder in den Gruppenkopf legen - dort sollte auch CanGrow und CanShrink funktionieren!

Gruß aus dem Norden
Reinhard Kraasch (http://www.kraasch.de - Access Tipps & Tricks)

Hallo Jürgen!

Leider warst du per E-mail nicht erreichbar, sonst hätte ich dir eine Beispieldatenbank mitgeschickt. Alles weitere siehe unten.

Hallo Jürgen, ich glaube ich habe eine Lösung für dieses Problem gefunden. Diese Lösung gilt allerdings für Access 97. Wie es bei anderen Versionen von Access damit aussieht, kann ich Dir leider nicht sagen. Wenn du eine andere Access Version benutzen solltest, Mail mich doch bitte noch einmal an. Ich habe diese Lösung von meiner Access Berater CD runtergezogen. Für andere Versionen gibt es eventuell noch andere Lösungen. Aber da die Datenbanken alle ziemlich groß sind, kann ich nicht alle auf eine Diskette packen. Hier nun die (vorläufige Lösung) in Form eines Workshops. Viel Erfolg damit.

Berichtdetails ein-/ausblenden (Für Access 97)

Die Berichtsfunktion von Access ist so flexibel, daß Sie auf derselben Datenbasis sowohl ausführliche Berichte mit vielen Details als auch eine zusammenfassende Variante erstellen können. In vielen Fällen werden zu diesem Zweck zwei Berichte angelegt, die dann je nach Bedarf aufgerufen werden. In diesem Tip zeigen wir eine interessante Technik, die das Anlegen von zwei Berichten überflüssig macht: Sie erstellen einen einzigen Bericht, den Sie dann per Mausklick aus einem Formular heraus aufrufen. Dabei bestimmen Sie über ein Kontrollkästchen, ob Sie die Details ausgeben möchten oder nicht.

Eine Beispieldatenbank zeigt den Einsatz dieses Tricks:

Kopieren Sie die Datenbank Detail.mdb in ein beliebiges Verzeichnis auf Ihrer Festplatte.

Über dieses Formular legen Sie fest, ob ein Bericht mit oder ohne Details ausgegeben wird

Öffnen Sie die Datenbank, und rufen Sie das Formular »frmBerichtDetails« auf.

Aktivieren Sie das Kontrollkästchen Details drucken, und klicken Sie auf Bericht ausgeben.

In der ausführlichen Version werden in dem Bericht sämtliche Details ausgegeben

Der Detailbericht zeigt die einzelnen Umsatzpositionen

Wie Sie erkennen können, sind in dem Bericht sehr viele Informationen enthalten. Auf insgesamt 24 Seiten sind nicht nur die Gesamtumsätze jedes Verkäufers nach Land, sondern auch die genauen Umsatzpositionen aufgeführt. Schließen Sie den Bericht wieder, und kehren Sie wieder in das Formular zurück.

Schalten Sie das Kontrollkästchen Details drucken aus, und klicken Sie noch einmal auf Bericht ausgeben.

So sieht derselbe Bericht ohne Details aus

Das Ergebnis: Access zeigt denselben Bericht an, nur daß er diesmal nur drei Seiten lang ist, weil sämtliche Details ausgeblendet wurden.

Um diesen Effekt zu erzielen, nutzen wir das Ereignis »Detail_Format«, das immer dann eintritt, wenn der Detailbereich ausgegeben werden soll. In unserem Beispiel haben wir diesem Ereignis die folgende Prozedur zugeordnet:

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If Forms![frmBerichtDetails]![cBoxDetails] = False Then
Cancel = True
End If
End Sub

Access liest also den aktuellen Status des Kontrollkästchens aus und setzt je nach Ergebnis den Parameter »Cancel« auf »True« (der Detailbereich wird nicht ausgegeben) oder läßt ihn unverändert (der Detailbereich wird ausgegeben).

Wie gesagt: Wenn diese Lösung für Dich nicht in Frage kommt, mail mich doch einfach noch einmal an. Gib dann bitte auch die Version an, für die Du diese lösung benötigst.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Vielen Dank Euch beiden !!