Home
Montag, 6. September 2010
access:anwender
Produkte
access:anwenderPro
access:anwenderWissen
access:anwenderLösungen
Main Menu
Home
Tipps & Tricks
Access Forum
Access Blog
Suche
Kontakt
Impressum
Datenschutz
Ticket Support
Administrator
Login Form





Passwort vergessen?
Noch kein Benutzerkonto?
Registrieren
Tipp: Zeilen in tabellarischen Bericht unterschiedlich formatieren PDF Drucken E-Mail

Ein Bericht ist oft besser lesbar wenn die Hintergrundfarbe der Zeilen abwechselnd sich ändert. Wie Sie diese Funktion sehr einfach mit VBA programmieren und in Ihren Berichten universell einsetzen können, zeigt der nachfolgende Tipp. Gehen Sie nun wie folgt vor:

  1. Erstellen Sie wie gewohnt einen tabellarischen Bericht. Die Steuerelemente, die Daten beinhalten, sind dann im Detailbereich zu finden.

  2. Markieren Sie alle Steuerelemente im Detailbereich und setzen Sie die Eigenschaft Hintergrundart auf Transparent.

  3. Definieren Sie im Detailbereich des Berichtes für die Codesteuerung die Ereignisprozedur "Beim Formatieren". Wechseln Sie dazu in den VBA-Editor und deklarieren Sie nun zunächst die Variable sw im Deklarationsbereich (ganz oben). Danach wählen Sie oben links den Detailbereich, dann oben rechts das Ereignis Format aus.

    Option Explicit
    Dim sw As Boolean

  1. Es wird dann automatisch die Prozedur erstellt:

    Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer).

    Setzen Sie den Cursor zwischen die beiden Zeilen und definieren Sie den Funktionsaufruf wie folgt:

    Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
        AlternateColor
    End Sub

  2. Setzen Sie den Cursor ans Ende von "End Sub" und fügen Sie mit der Return-Taste ein paar Leerzeichen ein. Kopieren Sie nun den folgenden Code an diese Stelle:

    Private Sub AlternateColor()
        Const farbehell = 16777215
        Const farbedunkel = -2147483633
        If sw = True Then
            Me.Detailbereich.BackColor = farbehell
        Else
            Me.Detailbereich.BackColor = farbedunkel
        End If
        sw = Not sw
    End Sub

  3.  

    TIPP: Lernen Sie an dieser Stelle gleich den Umgang der Funktion IIf() um If-Strukturen vereinfacht darzustellen. Der Syntax lautet: IIf(Ausdruck,Wahr-Teil,Falsch-Teil). Wenn der Ausdruck wahr wird, kommt der Wahr-Teil zum Zuge, ansonsten der Falsch-Teil. Obige Funktion lässt sich somit wie folgt umschreiben:

    Private Sub AlternateColor()
        Const farbehell = 16777215
        Const farbedunkel = -2147483633
        Me.Detailbereich.BackColor = IIf(sw, farbehell, farbedunkel)
        sw = Not sw
    End Sub

    Man sieht, der Code wird um einiges kürzer - aber auch ein wenig schlechter lesbar. Man kann IIF() auch nahezu beliebig verschachteln, indem man in den Falsch-Teil eine weitere IIF()-Funktion einfügt. Darauf sollte man aber um der Lesbarkeit des Codes willen besser verzichten.

    Die IIF()-Funktion hat noch eine Tücke die man beachten sollte, wenn man beabsichtigt sie einzusetzen. Es werden immer der Wahr-Teil und der Falsch-Teil ausgewertet, egal ob nur der eine oder andere zum Zuge kommt. Daher sollte man darauf achten dass z.B. durch entstehende Null-Werte keine Fehler entstehen. Nachfolgend sehen Sie einen Berichtsausschnitt der mit dieser Funktion formatiert wurde:

    Sie sehen, mit wenigen Codezeilen haben Sie nun eine komfortable Formatierungsmöglichkeit erstellt, die es Ihnen in einem tabellarischen Bericht ermöglicht die einzelnen Zeilen in unterschiedlicher Hintergrundfarbe darzustellen. Die beiden Farbwerte können Sie direkt aus dem Access entnehmen, oder eigene definieren.


 
© 2007 AccessHilfe.de - Informationsdienst, Hilfe und Support für Microsoft Access.de