Newsgroup: it.comp.appl.access
Titolo: ciclo for molto strano

secondo voi perchè questo ciclo for anche se
Num_msg=282
    For i = 0 To Num_msg
        MAPIMessages1.msgindex = i
        If InStr(MAPIMessages1.Msgsubject, "ordine master") = 1 Then
            MAPIMessages1.Delete
            Num_msg = MAPIMessages1.MsgCount - 1
            i = -1
        End If
    Next i
i riesce ad assumere il valore 383 e quindi ad andare in errore?
Grazie a tutti.

 ha scritto nel messaggio

ma ti sei accorto che valorizzi num_msg all'interno del ciclo?
poi ti sei accorto che valorizzi anche la i all'interno del ciclo?
se segui l'andamento dell'istruzione troverai certamente il punto in cui
num_msg assume valore superiore a 282.
In ogni caso come tecnica e' sconsigliabile, infatti valorizzare le
variabili di un ciclo for al suo stesso interno significa esporsi al
pericolo di provocare un loop perpetuo.
Conviene usare variabili alternative e gestire l'eventuale uscita anticipata
con una istruzione exit for.
Sib


ciao sib. Bentornato.
Ho il vago dubbio che, mentre la modifica di i e' una cosa normale, la modifica
di num_msg, invece, se non erro, non e' consentita, o meglio non "funziona"
perche' la for la valuta all'inizio del ciclo e poi non la rivaluta.
--
a.cara 
Togli qualcosa dall'email

 Sib wrote:
[cut]
P.S. peggio di un "tossico". Manco arrivi e zacchete. Alle 2.37 e datti una
calmata no?
;<)


 ;<)
he he,
che vuoi, ero in crisi d'astinenza.
Se vuoi consigli per le tue prossime vacanze in francia consiglio:
Etap hotel (2 stelle dignitosi molto economici)
o, per i piu' esigenti
Ibis (2 stelle ma nettamente superiori come estetica e dimensioni della
stanza)
Tappe:
St Malo', Carnac,
Vannes (per chi e' stanco delle torri pendenti e vuol vedere un po' di
palazzi pendenti)
Mt St Michel solo da fuori, dentro e' come disneyland fino alla cattedrale.
Portatevi l'acqua da casa. (come diciamo dalle mie parti "ti fanno i
pirtusa" (i buchi) ) 2 euro la bottiglietta da 33cl e' la normalita'.
Ben ritrovato!
Sib

 ha scritto nel messaggio

Hai perfettamente ragione.
Potrei prendere come scusa l'orario, ma la verita' e' che non l'ho mai
ritenuta una operazione valida quindi non avevo mai provata.
Sib

 Sib
si ok, ma  a parte le vostre ferie e faccende varie, qualcuno mi sa dire
perchè i assume il valore 383 quando invece il numero di messaggi è 382?

 ha scritto nel messaggio

mi sa che prima, allora, avevi dato i numeri (controlla il tuo primo
messaggio).
Comunque il ciclo for termina quando il valore della variabile gestita
supera il valore impostato come finale all'inizio del ciclo, quindi e' ovvio
che se controlli la variabile dopo l'istruzione next la troverai di una
unita' sopra il limite impostato nell'istruzione for.
Sib

 Sib
il fatto strano e che rientra nel for e alla prima istruzione
MAPIMessages1.msgindex = i
và in errore in quanto MAPIMessages1.msgindex di 383 non esiste.
non capisco. potete provarlo questo ciclo?
Grazie in anticipo.

 
magari è una banalità, ma tu fai il ciclo da zero fino al numero dei msg 
(382) il che, dalle mie parti, vuol dire che esegui il ciclo 383 volte...
prova con:
    For i = 0 To (Num_msg - 1)
e vedi un pò se si risolve qualcosa.
-- 
+-------
| Paolo opg
|
| janickg ( at ) hotmail ( dot ) com
+-------