Ciao,
Non è una cosa immediata e serve sicuramente il VBA.
Per prima cosa il report principale deve essere raggruppato per l'ID del campione, e devi assicurarti che siano visualizzati Intestazione Gruppo o Piè di pagina Gruppo, a seconda di dove vuoi che appaiano i numeri di pagina. In questa sezione ci metti un controllo TextBox per visualizzare il numero di pagina e lo stesso fai nella sezione PièDiPagina del Report.
Poi nel codice del Form dichiari una variabile per tenere il conto delle pagine del campione:
Dim PagCampione As Integer
Poi nel l'evento IntestazioneGruppo del Campione :
Private Sub IntestazioneGruppoCampione_Format(Cancel As Integer, FormatCount As Integer)
If FormatCount = 1 Then '<--- si verifica ogni volta che inizia un nuovo campione
PagCampione = 0
End If
End Sub
invece nel PièDiPagina del Report:
Private Sub SezionePièDiPaginaPagina_Format(Cancel As Integer, FormatCount As Integer)
If FormatCount = 1 Then
PagCampione = PagCampione + 1
End If
Me.txtPaginaRegistro = "Pagina Reg: " & Me.Page & " di " & Me.Pages
Me.txtPaginaCampione = "Pagina Campione: " & PagCampione
End Sub
Il problema è che con
Me.Pages puoi sapere certamente quante pagine avrà il Report totale, ma non hai modo di sapere quante pagine sarà il campione.
Se sono sempre 2, allora puoi metterlo direttamente
Me.txtPaginaCampione = "Pagina Campione: " & PagCampione & " di 2"
Se invece non sai a priori quante sono, potresti provare a fare una query al volo (o un DCount basato sulla condizione che determina il sottoreport) per vedere se si riesce a determinare il numero di record e, di conseguenza, capire quante pagine possono occupare.
TheTruster