Gerade/Ungerade Seitennummern korrekt positionieren

  • geschlossen
  • Access

  • HobbY-FreaK
  • 2059 Aufrufe 0 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Gerade/Ungerade Seitennummern korrekt positionieren

    Gerade/Ungerade Seitennummern korrekt positionieren
    Versionen: Access 97, 2000, 2002/XP und 2003

    In Ihren Berichten verwenden Sie im Seitenfuß Textfelder mit Formeln wie "=CurrentUser()", "=Jetzt()" oder "=[Page] & "/" & [Pages]", um neben einer normalen Seitennummerierung Informationen auszugeben, wann und von wem der Bericht ausgedruckt wurde und wie viele Seiten der Bericht insgesamt umfasst. Wenn Sie einen solchen Bericht direkt auf einem duplexfähigen Drucker auf Vorder- und Rückseiten drucken oder ein entsprechendes Tool für die Verteilung der Seiten auf Vorder- und Rückseiten einsetzen, ergib sich folgendes Problem: Auf ungeraden Seiten (1, 3, 5, 7...) stehen die Seitenzahlen korrekt rechts außen am Rand, auf geraden Seiten (2, 4, 6, 8...) erscheinen die Nummern aber innen am Bundsteg. Das sieht nicht nur unprofessionell aus, sondern erschwert auch die Suche nach einer bestimmten Seite. Mit einer kleinen Anpassung am Bericht lässt sich das Problem aber recht einfach lösen.

    Sofern noch nicht vorhanden, legen Sie im Seitenfuß zunächst einige Textfelder an:



    1. Links am Seitenrand positionieren Sie ein Textfeld "txtUngeradeLinks" mit der Formel "=CurrentUser()" in der Eigenschaft "Steuerelementeinhalt". Dieses Textfeld gibt später den Namen des Anwenders aus, so wie er sich bei Access angemeldet hat. Die Eigenschaft "Textausrichtung" dieses Textfeldes stellen Sie auf "Linksbündig" ein.
    2. In der Mitte positionieren Sie ein Textfeld "txtMitte" mit der Formel "=Jetzt()" in der Eigenschaft "Steuerelementeinhalt". Dieses Textfeld gibt Datum und Zeit aus, wann der Bericht gedruckt wurde. Die Eigenschaft "Textausrichtung" dieses Textfeldes stellen Sie auf "Zentriert" und das Format auf "tt.mm.jjjj hh:nn" (drei Leerzeichen zwischen Datum und Zeit) ein.
    3. Rechts am Seitenrand positionieren Sie ein Textfeld "txtUngeradeRechts" mit der Formel "=[Page] & "/" & [Pages]" in der Eigenschaft "Steuerelementeinhalt". Dieses Textfeld gibt später die aktuelle Seitennummer und die Anzahl Seiten insgesamt im Format "3/17" aus. Die Eigenschaft "Textausrichtung" dieses Textfeldes stellen Sie auf "Rechtsbündig" ein.
    4. Markieren Sie die beiden Textfelder "txtUngeradeLinks" und "txtUngeradeRechts" gemeinsam (Umschalt-Taste gedrückt halten) und drücken Sie dann Strg+C und Strg+V. Access legt nun eine Kopie der Textfelder unter den anderen Textfeldern an.
    5. Benennen Sie das linke Textfeld "txtGeradeLinks" und das rechte Textfeld "txtGeradeRechts".
    6. Ändern Sie die Textausrichtung von "txtGeradeLinks" auf "Linksbündig" und von "txtGeradeRechts" auf "Rechtsbündig".
    Ihr Seitenfuß sollte nun in etwa so aussehen:

    {=CurrentUser()} {=Jetzt()} {=[Page]&"/"&[Pages]}
    {=[Page]&"/"&[Pages]} {=Jetzt()} {=CurrentUser()}
    [font=arial, helvetica][size=-1]


    • Stellen Sie jetzt die Eigenschaft "Beim Öffnen" des Berichtes auf "[Ereignisprozedur]" und klicken Sie auf die Schaltfläche mit den drei Punkten. Im VBA-Editor geben Sie folgende Anweisungen ein:
    [/size][/font]Private Sub Report_Open(Cancel As Integer)

    Me.txtGeradeLinks.Top = Me.txtUngeradeLinks.Top
    Me.txtGeradeRechts.Top = Me.txtUngeradeRechts.Top
    Me.txtGeradeLinks.Left = Me.txtUngeradeLinks.Left
    Me.txtGeradeRechts.Left = Me.txtUngeradeRechts.Left

    End Sub
    [font=arial, helvetica][size=-1]
    Diese Anweisungen sorgen dafür, dass die Textfelder horizontal auf einer Linie stehen und sich ihre Ränder links bzw. rechts decken.



    • Stellen Sie die Eigenschaft "Beim Formatieren" des Seitenfußes auf "[Ereignisprozedur]" und klicken Sie auf die Schaltfläche mit den drei Punkten. Im VBA-Editor geben Sie folgende Anweisungen ein:
    [/size][/font]Private Sub Seitenfuß_Format(Cancel As Integer, _
    FormatCount As Integer)
    Dim intSN As Integer

    intSN = Me.Page
    Me.txtGeradeLinks.Visible = (intSN Mod 2 = 0)
    Me.txtGeradeRechts.Visible = (intSN Mod 2 = 0)
    Me.txtUngeradeLinks.Visible = Not (intSN Mod 2 = 0)
    Me.txtUngeradeRechts.Visible = Not (intSN Mod 2 = 0)

    End Sub
    [font=arial, helvetica][size=-1]
    Diese Anweisungen blenden nun je nach gerader oder ungerader Seitenzahl die jeweils nicht benötigten Textfelder aus und die benötigten Textfelder ein. Das erfolgt über deren Eigenschaft "Visible" (Sichtbar) abhängig vom Ergebnis der Prüfung "Aktuelle Seite Mod 2 gleich Null". "15 Mod 2" ergibt beispielsweise "1" und somit "False", "16 Mod 2" ergibt "0", also "True".



    • Speichern Sie die Änderungen und lassen Sie den Bericht testweise in der Seitenansicht anzeigen.
    Wenn Sie nun durch die Seiten blättern, erscheinen die Angaben zum Anwender und zu den Seitenzahlen wie gewünscht einmal links- und einmal rechtsbündig.



    Übernommen von SmartTools

    [/size][/font]