Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

per VBA abfragen auf welcher Seite Berichtsfuss anfängt?

Begonnen von trebuh, August 28, 2015, 21:24:13

⏪ vorheriges - nächstes ⏩

trebuh

Hallo Accesgemeinde,

folgender Fall:

in meinem Bericht habe ich den Berichtskopf, den Detailbereich und den Berichtsfuß (Dieser beginnt immer mit neuer Seite).
der Detailbereich variert je nach Datenmenge und auch der Berichtsfuss.

Da auch Zwischensummen (im Detailbereich) vorkommen, habe ich per VBA den Seitenkopf und Seitenfuss entsprechend ausgeblendet.

Das funktioniert so weit einwandfrei, solange der Berichtsfuß nur aus einer Seite besteht.
Wenn es mehr Seiten im Berichtsfuß sind, dann habe ich den Übertrag und die Zwischensumme im Berichtsfuß drin (das ist natürlich blöd >:().

Nun meine Frage:

Kann man per VBA ermitteln, auf welcher Seite der Berichtsfuß anfängt? Oder bedarf es da einer Modulfunktion?
Wenn ja, wie müsste der Code aussehen?

Gruß Hubert

Nachtrag:

Habe eine Lösung gefunden. Sogar mit wenig Code-Aufwand.

MaggieMay

Hallo,
ZitatHabe eine Lösung gefunden. Sogar mit wenig Code-Aufwand.
die Lösung wäre sicherlich auch für andere mit derselben Fragestellung interessant.
Freundliche Grüße
MaggieMay

trebuh

Hallo MaggieMay,

ja da hast Du recht. Also ich habe es wie folgt gelöst:

Ich habe 2 Variable in den Berichtskopf gesetzt.
Option Compare Database
Option Explicit
Dim zaehler As Integer
Dim gezaehlt As Boolean


(schlagt mich jetzt nicht, weil ich "Dim zaehler As Integer "und "Dim gezaehlt As Boolean" und nicht "Dim intzaehler As Integer" und "Dim bolgezaehlt As Boolean" geschrieben habe. ;D)

Beim Ereigniss "Öffnen des Formulars" 
Private Sub Report_Open(Cancel As Integer)

10       On Error GoTo Report_Open_Error

20        zaehler = 1
30        gezaehlt = False

60       On Error GoTo 0
70       Exit Sub

Report_Open_Error:

80        MsgBox ....
         
End Sub


Dann im Seitenfuss den Code:
Private Sub Seitenfußbereich_Format(Cancel As Integer, FormatCount As Integer)
10       On Error GoTo Seitenfußbereich_Format_Error
   
20    If gezaehlt = False Then
30        If Me!Zwischensumme = Me![Summe von LHA_Volum] Then
40          gezaehlt = True
50        Else
60          zaehler = zaehler + 1
70        End If
80    End If
       
90     Me.Uebertrag = Me.Zwischensumme

100     If Me.Page >= zaehler Then
110        Cancel = True
120     End If

       
130      On Error GoTo 0
140      Exit Sub

Seitenfußbereich_Format_Error:

150       MsgBox ".....

End Sub


und zuletzt noch im Seitenkopf:
Private Sub Seitenkopfbereich_Format(Cancel As Integer, FormatCount As Integer)

10       On Error GoTo Seitenkopfbereich_Format_Error
     
20      If Me.Page >= (zaehler + 1) Then
30         Cancel = True
40          End If


50       On Error GoTo 0
60       Exit Sub

Seitenkopfbereich_Format_Error:

70        MsgBox ".....
End Sub


Dann im Bericht--> Format-->Seitenkopf auf "Außer Berichtskopf", und
                                       --> Seitenfuß auf " Außer Berichtsfuß" einstellen.

Das war´s

Hoffe ich habe nichts vergessen.

Gruß Hubert