Hallo zuammen,
ich habe einen Bericht, der aus mehreren Berichten zusammengesetzt ist.
In einem der Unterberichte möchte ich per VBA einige Felder ausblenden, falls sie leer sind.
Das klappt grundsätzlich auch.
Aber, wenn ich den Hauptbericht öffne, wird der Code im Unterbericht nicht ausgeführt. Das geschieht erst, wenn ich in der Berichtansicht den UNterbericht anklicke.
Wie kann ich den Code im Ufo schon beim Laden/Öffnen des Hauptberichts starten?`
Gruß
Klaus
Hallo,
mit 177 posts, solltest du wissen, dass Code zu zeigen ist, kann ja schlecht erraten werden. Also hier einstellen - incl. des Prozedurrumpfes.
Hallo Klaus,
welches Ereignis hast du denn dafür gewählt?
Grundsätzlich geeignet für die Manipulation der Ausgabe sind das Format- oder Print-Ereignis des zugehörigen Berichtsbereichs, diese treten aber bei der Berichtsansicht nicht ein, sondern nur bei der Seitenvorschau.
Hallo MaggieMay,
ich habe den Code im "Report_Load" des Subberichts stehen. Bei Seitenansicht wird er aber auch nicht ausgeführt. :(
@Jürgen: 177 Posts sagen leider nicht viel über das Können aus. wenn das lauter so doofe Fragen sind. ;)
Die Sach mit dem Prozeduraufruf könnte schon der Wink in die richtige Richtung gewesen sein.
Momentan habe ich keinen Prozeduraufruf, sondern die Formatierungen im "Beim Laden" des Unterberichts definiert.
Gruß
Klaus
ZitatBei Seitenansicht wird er aber auch nicht ausgeführt.
Ich hatte dazu ja auch das Format- oder Print-Ereignis des zugehörigen Berichtsbereichs empfohlen.
Hat der Unterbericht denn nur einen Datensatz? Welchen Sinn sollte es sonst machen, ein Datenfeld beim Laden zu prüfen, ob es leer ist?
Halo MAggieMAy,
zugegeben, dieser Unterbericht hat nur einen DS. Ich habe ihn als Unterbericht, um die Formtierung zu vereinfachen und für den Hauptbericht die Datendefinition überschaubar zu halten.
Innerhalb des DS gibt es, sagen wir mal "verschieden Blöcke". Es kann sein, dass einer dieser Blöcke "leer ist" und deshalb ausgeblendet werden soll. Wahrscheinlich wäre es Datenbanktechnisch am korrektesten, wenn ich hierfür wieder eine eigene Tabelle und ein Ufo hätte, aber das wird mir zu verschachtelt.
Gruß
KLaus
Brauchst du denn unbedingt die Berichtsansicht? Im Format-Ereignis wäre das Ausblenden kein Problem.
Hallo MAggieMay,
was ist das Format Ereignis? Das finde ich in der Liste gar nicht (print übrigens auch nicht).
Ich habe den Code jetzt mal ins Ereignis Report_Open geschoben und jetzt wird der Code zumindest aufgerufen.
Private Sub Report_Open(Cancel As Integer)
Debug.Print "Report Open läuft"
Debug.Print Me!Txhziel
If IsNull(Me!Txhziel) Then
Debug.Print "null"
Me!Bezeichnungsfeld114.Height = 0
Me!Bezeichnungsfeld117.Height = 0
Me!Bezeichnungsfeld121.Height = 0
Me!Bezeichnungsfeld125.Height = 0
Me!Text113.Visible = False
Me!Text115.Visible = False
Me!Text116.Visible = False
Me!Text120.Visible = False
Me!Text124.Visible = False
Me!Text122.Visible = False
Me!Text123.Visible = False
Me!Txhziel.Visible = False
Else
Debug.Print "nicht null"
Me!Bezeichnungsfeld114.Height = 600
Me!Bezeichnungsfeld117.Height = 600
Me!Bezeichnungsfeld121.Height = 600
Me!Bezeichnungsfeld125.Height = 600
Me!Text113.Visible = True
Me!Text115.Visible = True
Me!Text116.Visible = True
Me!Text120.Visible = True
Me!Text124.Visible = True
Me!Text122.Visible = True
Me!Text123.Visible = True
Me!Txhziel.Visible = True
End If
Dafür bekomme ich jetzt den Fehler, dass er Txhziel nicht kennt. Das Feld gibt es aber definitiv in diesem Report. ???
Gruß
KLaus
Report_Open ist eindeutig zu früh, um auf die Daten zuzugreifen, aber wie bereits mehrfach erwähnt, findest du das Format-Ereignis beim zugehörigen Berichtsbereich, also bei dem Bereich in dem die Textfelder sich befinden, vermutlich ist das der Detailbereich.
BTW:
Es ist nicht nötig, die Höhe der Bezeichnungsfelder auf 0 zu setzen, sofern sie den Textfeldern die ausgeblendet werden zugeordnet sind.
das wesentliche hat MaggieMay schon gesagt, aber wenn so viele Felder betroffen sind - soll vllt sogar der ganze Bereich ausgeblendet werden und deshalb die Höhenreduzierung? Achja und Text113 ist nicht gerade ein wirklich aussagekräftiger Bezeichner.
Verknüpfte Bezeichnungsfelder verschwinden mit den zugeordneten Steuerelementen, wenn diese ausgeblendet werden und sowohl der Bereich als auch die Steuerelemente auf Verkleinerbar = Ja eingestellt sind.