Hallo, Matthias!
Meine Frage ist die, wie ich es schaffe, dass abhängig von
einem Kriterium einzelne Felder angezeigt oder nicht angezeigt
werden.
Hängt davon ab, ob Du „Zeilen“ oder „Spalten“ ausblenden willst. Grundsätzlich kannst Du so was im ReportOpen-Ereignis machen, in dem Du z. B. die Visible-Eigenschaft der entsprechenden Felder/Steuerelemente setzt. Wenn eine Spalte ausgeblendet werden soll, müssen die rechts befindlichen Spalten wahrscheinlich nach links verschoben werden. Das ganze könnte so aussehen:
Private Sub Report\_Open(Cancel As Integer)
If MsgBox("mit Feld?", vbYesNo) = vbYes Then
Me.txtEventuellAusgeblendet.Visible = True
Else
Me.txtEventuellAusgeblendet.Visible = False
End If
' nächste "Spalte" nach links verschieben
If Not Me.txtEventuellAusgeblendet.Visible Then
Me.txtFeldNachAusgeblendet.Left = Me.txtEventuellAusgeblendet.Left
End If
End Sub
Wenn Du „Zeilen“ ausblenden willst (nicht ganze Datensätze!), geht das entsprechend, nur das folgende Felder mit der Top-Eigenschaft angepasst werden müssen. Wenn nur Zeilen ausgeblendet werden sollen, falls sie keine Inhalte haben (also NULL oder „“ sind), kannst Du ihnen eine minimale Höhe geben (0,001), die Vergrößerbar-Eigenschaft auf Wahr setzen und die folgenden Felder direkt darunter setzen. Dies brauchst Du auch, wenn innerhalb der angezeigten Datensätze das Ein- und Ausblenden variieren soll.
Ein weiteres Ereignis, welches interessant für die abhängige Formatierung ist, ist das Format-Ereignis der einzelnen Berichtsbereiche. Damit kannst Du z. B. alternierende Hintergründe (z. B. grau/weiß) erzeugen, die eine lange Tabelle vielleicht ein wenig übersichtlicher machen, in dem die BackColor-Eigenschaft immer zwischen weiß und grau getauscht wird.
Gruß, Manfred