Newsgroup: it.comp.appl.access
Titolo: bloccare esecuzione corpo report

Ho un report che genera automaticamente (tramite la routine del 
sitocoume) n righe di corpo tutte uguali...
mi capita che con alcuni record la funzione non funziona e pertanto la 
genrzione delle "righe" diventa infinita (fino all'overflow)
come posso bloccare la creazione delle righe arrivati ad un determinato 
numero?
il codice è questo:
------CODICE------
Option Compare Database
Dim intCR As Integer        'contatore di righe
Dim intCP As Integer        'contatore di pagine per gruppo
Const intNR As Integer = 18 'numero di righe da stampare
Dim nr As Integer ' label
Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
     'incrementa il contatore di righe
     intCR = intCR + 1
     nr = nr + 1
     If intCR = intNR Then
         'imposta l'interruzione di pagina se non e' l'ultima pagina
         If intCP + 1 < Me.txtTRec / intNR Then Me.IntPagina.Visible = True
     ElseIf intCR + intNR * intCP = Me.txtTRec Then
         'se il numero di riga coincide con l'ultimo record
         'evita lo spostamento sul record successivo
         Me.NextRecord = False
     ElseIf intCR + intNR * intCP > Me.txtTRec Then
         'se il numero di riga e' maggiore dell'ultimo record
         'evita lo spostamento sul record successivo
         Me.NextRecord = False
     End If
     Me.CntRiga = nr
     If nr > 80 Then Exit Sub 'ho provato anche con cancel ma non cambia 
nulla
End Sub
Private Sub IntestazioneGruppo0_Format(Cancel As Integer, FormatCount As 
Integer)
     'incrementa il contatore di pagine per gruppo
     nr = 62
     intCP = 0
     'azzera il contatore di righe
     intCR = 0
     'incrementa il contatore di pagine per gruppo
     intCP = 1
     'elimina l'interruzione di pagina
     Me.IntPagina.Visible = False
End Sub
----- FINE CODICE -----
avete qualche suggerimento??
Grazie
Ciao
Nick

"Nick" <senz...@chedetesul.NG> ha scritto nel messaggio 
news:RPtwe.27687$yM4.4...@twister2.libero.it...

Bisognerebbe capire quali sono le condizioni che permettono il loop 
infinito; prova con il debug a verificare riga per riga il perché succede 
questo...
Ciao.
-- 
Sergio MAZZA 

 Nick
E' qualcosa che uso spesso e ha sempre funzionato perfettamente.
Il problema dovrebbe scaurire dal fatto che hai inserito "intCP = intCP +
1 " in  "IntestazioneGruppo0_Format"
Il controllo  "txtTRec" va messo in "IntestazioneGruppo0"
Prova pertanto in questo modo:
Private Sub IntestazioneGruppo0_Format(Cancel As Integer, FormatCount As
Integer)
 'incrementa il contatore di pagine per gruppo
   intCP = 0
End Sub
Private Sub IntestazionePagina_Format(Cancel As Integer, FormatCount As
Integer)
    'azzera il contatore di righe
    intCR = 0
    'incrementa il contatore di pagine per gruppo
    intCP = intCP + 1
    'elimina l'interruzione di pagina
    Me.IntPagina.Visible = False
End Sub
--
rgrds
SC
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

sv ha detto: in data 29/06/2005 17.36:

Il secondo problema (che non ho detto.. ops) è che è un sottoreport e 
quidni non ho intestazione di pagina :(
tra l'altro se visualizzo il sottoreport "singolarmente" funziona
se lo visualizzo come dovrebbe essere, ovvero dentro il suo report.. a 
volte mi salta il controllo...
credo sia quando il sottoreport non inizia in una nuova pagina.. ho 
provato a inserire interruzioni di pagina ovunque ma non ho ancora 
trovato il punto giusto...
provo a vedere seriesco a spostare qualcosa ;)
grazie
ciao
NIck

 NIck
Ci vado ad intuito senza provare.
Attieniti all'esempio e poni l'intestazione di pagina del sottoreport
Visible=False


sv ha detto: in data 30/06/2005 10.40:

Niente da fare...
l'ho messo in intestazione pagina, ma va solo come report singolo, l'ho 
messo in intestazione report e non va in nessuna modalità..
non capisco proprio dove è che mi va in loop :(
Ciao
Nick