Access-o-Mania

Access-Forum (Deutsch/German) => Bericht => Thema gestartet von: Klaus S. aus B am April 09, 2015, 10:08:31

Titel: Code im Ufo (Bericht) ausführen
Beitrag von: Klaus S. aus B am April 09, 2015, 10:08:31
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
Titel: Re: Code im Ufo (Bericht) ausführen
Beitrag von: el_gomero am April 09, 2015, 10:18:24
Hallo,

mit 177 posts, solltest du wissen, dass Code zu zeigen ist, kann ja schlecht erraten werden. Also hier einstellen - incl. des Prozedurrumpfes.
Titel: Re: Code im Ufo (Bericht) ausführen
Beitrag von: MaggieMay am April 09, 2015, 10:38:12
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.
Titel: Re: Code im Ufo (Bericht) ausführen
Beitrag von: Klaus S. aus B am April 09, 2015, 14:22:26
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
Titel: Re: Code im Ufo (Bericht) ausführen
Beitrag von: MaggieMay am April 09, 2015, 14:33:01
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?
Titel: Re: Code im Ufo (Bericht) ausführen
Beitrag von: Klaus S. aus B am April 09, 2015, 14:42:21
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
Titel: Re: Code im Ufo (Bericht) ausführen
Beitrag von: MaggieMay am April 09, 2015, 14:48:26
Brauchst du denn unbedingt die Berichtsansicht? Im Format-Ereignis wäre das Ausblenden kein Problem.
Titel: Re: Code im Ufo (Bericht) ausführen
Beitrag von: Klaus S. aus B am April 09, 2015, 14:59:07
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
Titel: Re: Code im Ufo (Bericht) ausführen
Beitrag von: MaggieMay am April 09, 2015, 15:06:54
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.
Titel: Re: Code im Ufo (Bericht) ausführen
Beitrag von: el_gomero am April 09, 2015, 15:26:01
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.
Titel: Re: Code im Ufo (Bericht) ausführen
Beitrag von: MaggieMay am April 09, 2015, 15:30:57
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.