vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Access   |   VB-Versionen: VBA24.09.15
ACCESS Bericht Nur erste Seite anzeigen

Manchmal möchte man nur die erste Berichtsseite eines Gesamt- oder Teil- Datenumfangs sehen. Dieser Tipp könnte dabei helfen.

Autor:   Richard MittelstädtBewertung:  Views:  4.390 
ohne HomepageSystem:  WinXP, Vista, Win7, Win8, Win10kein Beispielprojekt 

Ich verwende den Code (etwas erweitert) zum Anzeigen folgender Sätze:

  • (ca.) 20 letzte neueste Messwert-Sätze
  • + maximal 40 leere Dummy-Sätze für manuelles Bleistift-Eintragen beim Messen

Dieses Blatt muss schnell und einfach gedruckt werden können. Die Dummy-Sätze enthalten u.a. nützliche Hilfslinien.
Viel Spass !

' Nur die erste Seite eines Berichts anzeigen/drucken.
' Datenherkunft ist eine Tabelle oder eine Abfrage.
' Es muss allerdings ein Feld mit aufsteigender laufender Nummer da sein:
' hier das Feld [LNr] !!!
' Beim ersten Formatieren des Detailbereichs wird der ERSTE Seite-2-Satz "rausgefischt".
' Die Nummer des LETZTEN Seite-1-Satzes ist damit bekannt.
' Bei nachfolgenden Formatierungen wird nur noch alles bis zum LETZTEN Seite-1-Satz dargestellt.
' Die "überflüssigen" Seite-2-Sätze werden unterdrückt/ ausgeblendet mittels
' der Methoden Me.MoveLayout und Me.PrintSection.
' 1. ---- Globale Variable in einem Modul deklarieren: ------------------------------------
Global NurSEITE_1 As Boolean      ' Nur 1.Seite des Berichts anzeigen
' 2. ---- Variablen im Deklarionsbereich des Berichts-Moduls: -----------------------------
Dim iLNrLAST As Long            ' 2015-09-16 Höchste LNr auf Seite 1
' 3. ---- Evtl. "muss" dabei auch der Berichts-Fuss ausgeblendet werden: ------------------
Private Sub Berichtsfuß_Format(Cancel As Integer, FormatCount As Integer)
  If NurSEITE_1 = True Then         ' Nur Seite 1 anzeigen (ohne Fuss!)
    Cancel = True
  End If
End Sub
' 4. ---- Restliche Sätze (LNr > iLNrLAST) ausblenden (Detailbereich_Format): -------------
Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
  If NurSEITE_1 = True Then       ' Nur 1.Seite des Berichts anzeigen
    If FormatCount = 2 Then       ' Hier passiert es, hier ist schon Seite 2.
      iLNrLAST = [LNr] - 1        ' Nr vom Satz davor merken (Letzter auf Seite 1)
    End If
    If iLNrLAST > 0 And [LNr] >= iLNrLAST Then   
      Me.MoveLayout = False       ' Für Rest-Sätze nicht weitergehen!
      If [LNr] > iLNrLAST Then
        ' Text vom Letzten Satz nicht überschreiben mit Text von "Seite 2"-Sätzen 
        Me.PrintSection = False   
      End If
    End If
  End If    
End Sub
' 5. ---- Aufruf zum Öffnen des Berichts irgendwo im Code: --------------------------------
NurSEITE_1 = True     ' Nur 1.Seite des Berichts anzeigen
DoCmd.OpenReport "BerichtName", acViewPreview
NurSEITE_1 = False    ' Rücksetzen



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2019 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.