Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Überschrift Unterbericht ausblenden, wenn Unterbericht leer

Begonnen von Scholar, Juli 02, 2013, 23:15:52

⏪ vorheriges - nächstes ⏩

Scholar

Hallo!

Ich habe einen Bericht mit mehreren Unterberichten. Nun werden mir aber die Überschriften der Unterberichte angezeigt, selbst wenn die Unterberichte keine Daten enthält. Das würde ich gerne vermeiden. Kann mir jemand helfen? Ich nehme an, dass man eine Prozedur bei No_data eingeben muss. Kenne mich mit VBA noch nicht sehr genau aus, deswegen bitte ggf. eine "idiotensichere" Erklärung ;)

Vielen Dank im Voraus!

bahasu

Hi,

1. Du öffnest den Bericht in der Entwurfsicht.

2. In dem Bereich, in dem der Unterbericht steht (z.B. Detailbereich oder Fußbereich), rufst Du die Eigenschaften auf (anklicken und mit der rechten Maustaste das Kontext-Menü aufrufen).

3. In den Eigenschaften klickst Du den Reiter "Ereignis" an.

4. Dort klickst Du den rechten Auswahlbutton (hat schwarzes nach unten zeigendes Dreieck) in der Zeile "Beim Formatieren" an und wählst [Ereignisprozedur]

5. Dann klickst Du auf den Button mit den drei Punkten => jetzt solltest Du im VBA-Teil gelandet sein

6. Falls Du den Unterbericht im Seitenfuß hast, steht das folgende im VBA-Teil

Private Sub Seitenfuß_Format(Cancel As Integer, FormatCount As Integer)

End Sub

7. Dort trägst Du ein:


Private Sub Seitenfuß_Format(Cancel As Integer, FormatCount As Integer)
   Me!SteuerElementNameDesUnterBerichts.Visible = Dcount("*", "Datenherkunft_des_UNTER_Berichtes") > 0
End Sub


8. Hier bitte die Namen anpassen:
SteuerElementNameDesUnterBerichts   und
Datenherkunft_des_UNTER_Berichtes: kann der Name einer Abfrage oder einer Tabelle sein

Hoffentlich hilft das.

Harald
Servus

Scholar

Vielen Dank für die ausführliche Antwort! Leider habe ich es noch nicht hinbekommen, was aber auch daran liegen könnte, dass ich nicht genau weiß, was ich in den Code einfügen soll. Mit geht es darum, dass das Bezeichnugsfeld (mit Namen "Beschriftung_Archiv") nicht angezeigt wird, wenn im Unterbericht "Latex_ArchivNeu" (beruhend auf der gleichnamigen Abfrage) keine Einträge zu der ID des Hauptformulares vorliegen.


Ich habe den Code jetzt so verfasst:

Private Sub Detailbereich_Format(Cancel As Integer, Format Count As Integer)
Me!Beschriftung_Archiv.Visible = DCount("*", "Latex_ArchivNeu") > 0
End Sub

Wenn keine Daten im Unterformular vorliegen, wird aber trotzdem immer das Bezeichnungsfeld "Beschriftung_Archiv" mit der Beschriftung "Archiv" angezeigt.

Kann mir nochmal jemand helfen?

bahasu

Hi,

Wenn "Beschriftung_Archiv" der Name Deines Steuerelementes in Deinem UNTERBERICHT ist, mußt Du es in der Art ansprechen:
Me!NameDeinesUnterBerichtes!Beschriftung_Archiv.visible = ...

In meinem obigen Beispiel hatte ich den UNTERBERICHT unsichtbar gemacht: Das erspart Dir, zig-Steuerelemente unsichtbar zu machen.

Ist sichergestellt, dass in der Abfrage "Latex_ArchivNeu" tatsächlich keine Daten selektiert werden?

Harald
Servus

Scholar

Hallo Harald,

danke nochmal für den Tipp, auch wenn ich es noch nicht hinbekommen habe. Aber das liegt vermutlich  daran, dass ich mich nicht deutlich ausdriücken kann.

Verschwinden lassen wollte ich das Bezeichnungsfeld, welches im Hauptbericht erscheint, wenn ich einen Unterbericht einfüge. Das Bezeichnungsfeld ist also kein Teil des Unterformulars.

Der Name des Steuerelements ist schon das, was bei Eigenschaften  - Andere - Namen steht, oder?

Ich habe jetzt in den Hauptbericht den Code stehen, leider ohne Erfolg.

Me!Latex_Archivangaben!Latex_ArchivNeuBeschriftung.Visible = DCount("*", "Latex_ArchivNeu") > 0

Ist es richtig, dass der Name der Abfrage in Anführungszeichen steht? Stört es vielleicht, dass Unterbericht und Abfrage den gleichen Namen tragen? Muss ich das Bezeichnungsfeld etwa in den Berichtskopf des Unterformulars einbinden (auch schon probiert, aber nicht geklaptt)? Oder sollte ich den VBA-Code direkt im Unterformular einbinden (auch probiert, nicht geschafft).

Ich habe jetzt den Unterbericht auch nochmal neu erstellt und unter anderen Namen (Latex_Archivangaben) gespeichert, ohn Erfolg.

Auch den Namen des Hauptberichtes (Latex_Person11) habe ich  eingesetzt.

Me!Latex_Person11!Latex_ArchivangabenBeschriftung.Invisible = DCount("*", "Latex_ArchivNeu") < 1

Leider auch ohne Erfolg. Die Abfrage "Latex_ArchivNeu" bringt auf jeden Fall kein Ergebnis.


bahasu

Hi,

kannst Du eine komprimierte und gezippte Datei mit ein paar Spieldaten im access 2003-Format zur Verfügung stellen?
Ich denke, dass ich dann schneller helfen kann.

- Der Name des Steuerelements ist schon das, was bei Eigenschaften  - Andere - Namen steht, oder? => Ja
- Ja, die Abfrage steht in Anführungszeichen.

Das Bezeichnungsfeld muß doch einen Namen haben.
Was passiert, wenn Du probierst:
Me.DerName_vom_Bezeichnungsfeld.Visible= dcount .... s.o.

Harald
Servus