Hallo NG!
Hallo ich mᅵchte in einem bericht nicht die Gesamtseitenzahlen anzeigen,
sondern pro Gruppierung.
Also statt "1 von 5" bis "5 von 5" eben
ID 123 "1 von 2", "2 von 2"
ID 456 "1 von 2", "2 von 2"
ID 789 "1 von 1"
Ich habe mir schon ein paar Beispiele rausgesucht:
-------------------------------------------------------------------------
Option Compare Database
Option Explicit
Dim db As Database
Dim rs_GrpPages As Recordset
Private Sub Report_NoData(Cancel As Integer)
Cancel = True
End Sub
Private Sub Report_Open(Cancel As Integer)
Dim sql As String
'Leeren der Tabelle
sql = "DELETE * FROM XPAGES"
DoCmd.SetWarnings False
DoCmd.RunSQL sql, False
DoCmd.SetWarnings True
Set db = CurrentDb
Set rs_GrpPages = db.OpenRecordset("XPAGES", DB_OPEN_TABLE)
rs_GrpPages.Index = "PrimaryKey"
End Sub
'Wenn neue Gruppe beginnt, die Seitennummer auf 1 setzen
Private Sub Gruppenkopf0_Format(Cancel As Integer, FormatCount As Integer)
Me.Page = 1
End Sub
Private Sub Seitenfuᅵbereich_Format(Cancel As Integer, FormatCount As
Integer)
'Suchen der Gruppe
rs_GrpPages.Seek "=", Me.LID
If Not rs_GrpPages.NoMatch Then
'Gruppe bereits vorhanden
If rs_GrpPages!PAGENR < Me.Page Then
rs_GrpPages.Edit
rs_GrpPages.Fields!PAGENR = Me.Page
rs_GrpPages.Update
End If
Else
'Erst Seite der Gruppe
rs_GrpPages.AddNew
rs_GrpPages.Fields!ID = Me.LID
rs_GrpPages.Fields!PAGENR = Me.Page
rs_GrpPages.Update
End If
End Sub
'Funktion zur Suche des Gruppennamens
Function GetGrpPages()
rs_GrpPages.Seek "=", Me.LID
If Not rs_GrpPages.NoMatch Then
GetGrpPages = rs_GrpPages!PAGENR
End If
Debug.Print "GetGrpPages " & Nz(Me.LID, "X") & " > " &
Nz(GetGrpPages, "x")
End Function
-------------------------------------------------------------------------
XPAGES ist eine temporᅵre Tabelle, welche die Seitenanzahl der Gruppen
speichert. ID (Long, PK) PAGENR (Long)
Im Bericht selber ist fᅵr den Gruppenkopf0 angegeben
- Neue Seite: Vor Bereich
- Wiederholen: Nein
Und im Seitenfuᅵbereich existieren Textfelder:
- txtGrpPageCnt Inhalt =GetGrpPages()
- txtSeitenText Inhalt =" Seite " & [Page] & " von " & [txtGrpPageCnt]
Das hat auch irgendwie schon mal funktioniert, aber jetzt habe ich das
Problem, daᅵ in der Vorschau nur die erste Seite formatiert wird:
Gruppenkopf0_Format: Me.Page=1
Seitenfuᅵbereich_Format: XPAGES -> ID: 123 PAGENR=1
GetGrpPages: Liefert 1
txtSeitenText: Seite 1 von 1
Erst wenn ich auf Seite zwei springe formatiert er diese:
Seitenfuᅵbereich_Format: XPAGES -> ID: 123 PAGENR=2
GetGrpPages: Liefert 2
txtSeitenText: Seite 2 von 2
Springe ich in die nᅵchste Gruppe habe ich dasselbe Problem wie in der
ersten.
Problem ist also erkannt: der Bericht formatiert nur Seite 1 und hat
somit keine Kenntnis von evtl weiteren Seiten der Gruppe.
Das komische ist aber, es hat definitiv schon einmal funktioniert - ich
weiᅵ nur nicht wie oder warum. Irgendwas habe ich kaputtgebastelt.
Wie ist das Formatierungsverhalten der Berichte?
Wird immer nur die aktuelle Seite formatiert? Wie kann ich den ganzen
Bericht rendern um herauszubekommen wieviele Seiten es gibt pro Gruppe gibt?
Bin ratlos ...
Lutz
--
news.albasani.net