Susan Harkins
ssharkins at gmail.com
Tue Nov 6 19:29:17 CST 2007
The following code is a simple solution, I thought, to displaying the last
item on a page in the page header section. I've dropped in a few Debug
statements to verify that the collection is storing and retrieving the right
items, but the control always displays the first item on the page. I'm
clueless -- I have no idea what's happening here.
Basically, during the first pass (I'm using the report Pages property to
force a second formatting run), I'm storing the last item on each page --
the value of txtFooterLast -- in a Collection object. That part works fine.
Then, the report retrieves those values using the page number as the index
value. The Debug statements verify that the right values are in the
collection, however, txtHeaderLast doesn't display the results of
col(Me.Page) -- it displays the first value on the page, not the value
retrieved from the Collection. I just don't have any explanation.
Option Compare Database
Option Explicit
Dim col As New Collection
Private Sub PageFooterSection_Format(Cancel As Integer, FormatCount As
Integer)
Debug.Print Me.Page
Debug.Print col(Me.Page)
Me.txtHeaderLast = col(Me.Page)
Debug.Print Me.txtHeaderLast.Value
End Sub
Private Sub PageHeaderSection_Format(Cancel As Integer, FormatCount As
Integer)
Me.txtFooterFirst = Me.txtHeaderFirst
Me.txtHeaderLast = Me.txtFooterLast
If Me.Pages = 0 Then
col.Add Me.txtFooterLast, CStr(Me.Page)
End If
End Sub
Private Sub Report_Close()
Set col = Nothing
End Sub