Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Daten in Berichten von rechts nach links anordnen

Manche Anwendungen machen es erforderlich, das Berichte von der Vorder- und von der Rckseite bedruckt werden mssen. Oft handelt es sich dabei um korrespondierende Daten, bei denen der Eintrag auf der Rckseite sich auf der gleichen Position wie der entsprechende Eintrag auf der Vorderseite. Dazu mssen die Daten auf der Rckseite in Spalten von rechts nach links angeordnet werden. Wie das funktioniert, verrt der vorliegende Beitrag.

Beispieldatenbank

Die Beispieldatenbank enthlt eine Tabelle namens tblVokabeln zum Speichern der Vokabeln in Deutsch und Englisch sowie einen Bericht namens rptVokabeln, der je einmal zum Drucken der Vorder- und der Rckseite aufgerufen werden muss.

Bericht anpassen

Der Bericht enthlt als Datenherkunft die Tabelle tblVokabeln. Im Detailbereich befinden sich die beiden Felder Deutsch und Englisch, wobei die horizontale Position keine Rolle spielt.

Damit der Bericht die Daten auf Deutsch von links nach rechts und auf Englisch von rechts nach links anzeigt, werden einige Ereignisprozeduren bentigt. Geben Sie nachfolgenden Code direkt in das Klassenmodul des Berichts ein:

Dim i As Integer

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

    i = i + 1

    Select Case i

        Case 1

            Me.Deutsch.Left = 0

            Me.Englisch.Left = 6000

            Me.MoveLayout = False

        Case 2

            Me.Deutsch.Left = 2000

            Me.Englisch.Left = 4000

            Me.MoveLayout = False

        Case 3

            Me.Deutsch.Left = 4000

            Me.Englisch.Left = 2000

            Me.MoveLayout = False

        Case 4

            Me.Deutsch.Left = 6000

            Me.Englisch.Left = 0

            Me.MoveLayout = True

            i = 0

    End Select

End Sub

Private Sub Report_Open(Cancel As Integer)

    i = 0

    If Me.OpenArgs = "Deutsch" Then

        Me.Englisch.Visible = False

    Else

        Me.Deutsch.Visible = False

    End If

End Sub

Private Sub Report_Page()

    i = 0

End Sub

Die Ereignisprozedur Beim ffnen berprft, ob die deutsche oder die englische Version des Berichts aufgerufen werden soll. Den entsprechenden ffnungsparameter bergeben Sie mit den beiden folgenden Aufrufen:

    DoCmd.OpenReport "rptVokabeln", acViewPreview, , , , "Deutsch"

    DoCmd.OpenReport "rptVokabeln", acViewPreview, , , , "Englisch"

Die Prozedur, die fr jeden Detaildatensatz ausgelst wird, berprft den aktuellen Zhler i und setzt die Textfelder Deutsch und Englisch an die richtige Position. Dieser Zhler wird bei jeder neuen Seite wie auch beim ffnen des Berichts auf 0 gesetzt.

© 2003-2015 André Minhorst Alle Rechte vorbehalten.