Freitag, 10. Februar 2012

Home
Tipps
Bücher
Software
News / Links
Hilfe
Impressum

Sponsored by
QualityHosting

Tipp/Trick
Berichte im Telefonbuchstil (Access 97, 2000)
Durch den Einsatz von VBA-Ereignisprozeduren können Sie diesen Komfort auch in Ihren Berichten zur Verfügung stellen.

Ein Telefonbuch enthält üblicherweise im Kopfbereich den ersten und letzten Eintrag der aktuellen Seite. Dies erleichtert das Auffinden bestimmter Einträge erheblich.

Als Beispiel dient ein Bericht, in dem Artikelnamen aufgelistet werden. Der Name des ersten und letzten Artikels einer Seite sollen jeweils im Seitenkopf ausgegeben werden. Plazieren Sie zu diesem Zweck im Kopfbereich ein Textfeld für den jeweils ersten Eintrag. Der Steuerelementinhalt-Eigenschaft weisen Sie einfach den Namen des gewünschten Feldes zu (in diesem Fall also Artikelname).

In einem zweiten Textfeld namens txtArrayBis soll Access den letzten Eintrag der Seite anzeigen. Diese Information ist etwas schwieriger zu ermitteln. Access muß dazu die gesamten letzten Artikelnamen der einzelnen Seiten in einem ersten Formatierungsdurchgang ausfindig machen und in einem Zeichenketten-Array abspeichern. Die Deklaration dieses Arrays nehmen Sie im Deklarationsbereich des Berichtsmoduls vor. Zusätzlich definieren Sie eine weitere Variable, die den ersten Formatierungsdurchgang vom eigentlichen Ausdruck unterscheidet:

Private ErsterDurchgang As Boolean
Private aryFirmaBis() As String

Sobald der Bericht geöffnet wird, muss der Inhalt der Variablen ErsterDurchgang auf True gesetzt werden. Dies bedeutet, dass der erste Formatierungsvorgang noch bevorsteht. Die Beim Öffnen-Ereignisprozedur hat dementsprechend den folgenden Aufbau:

Private Sub Report_Open(Cancel As Integer)
    ErsterDurchgang = True
End Sub

Das Füllen des Arrays übernimmt die Beim Formatieren-Ereignisprozedur, die an den Seitenfuß geknüpft ist:

Private Sub Seitenfuß_Format(Cancel As Integer, FormatCount As Integer)

    If ErsterDurchgang Then
        ReDim Preserve aryFirmaBis(Me.Page)
        aryFirmaBis(Me.Page) = Me!Firma
    End If

End Sub

Damit der Liste auch der allerletzte Eintrag des Berichts hinzugefügt wird, muß der Berichtsfuß ebenfalls an eine Ereignisprozedur geknüpft werden. Zusätzlich setzt diese Prozedur die Variable ErsterDruchgang auf False, um das Ende des Formatierungsdurchlaufs zu kennzeichnen:

Private Sub Berichtsfuß_Format(Cancel As Integer, FormatCount As Integer)

    If ErsterDurchgang Then
        ReDim Preserve aryFirmaBis(Me.Page)
        aryFirmaBis(Me.Page) = Me!Firma
        ErsterDurchgang = False
    End If

End Sub

Beim nächsten Formatierungsdurchgang (bei dem die Seiten schließlich auch ausgedruckt werden) wird das entsprechende Element aus dem Array ermittelt und dem Textfeld txtArtikelBis zugewiesen. Die Ereignisprozedur Beim Formatieren des Seitenkopfes, in dem sich die Überschriften befinden, hat damit den folgenden Aufbau:

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

    If Not ErsterDurchgang Then
        Me!txtFirmaBis = aryFirmaBis(Me.Page) 
    End If

End Sub




Ein Service der TriniDat Software-Entwicklung GmbH - Am Wehrhahn 45 - 40211 Düsseldorf

  Suche
Suche starten
  Service
Leserbrief / Frage zu Access
Kontakt
  NewsLetter
NewLetter bestellen
NewsLetter abbestellen
  Partner-Seiten
HyperLink

www.trinidat.de


HyperLink

www.fulldotnet.de