Newsgroup: it.comp.appl.access
Titolo: CICLI E CICLI

Ciao a tutti,
addentrato ed incuriosito dalle iterazioni, nonostante ne abbia studiato la
sintassi, non riesco a capirli: non trovo esempi concreti per applicarli.
Un pezzetto di codice che mi faccia meglio capire cosa fanno e le possibili
applicazioni.
Grazie, grazie e ancora grazie

Valerio wrote:

Se non riesci a trovare esempi concreti per applicarli vorra' dire che non
ti servono.
In generale i cicli si utilizzano se il tuo DB e' corredato di moduli in
VBA.
Es:
Supponiamo di voler leggere tutti i valori di una query:
Dim rs AS new ADODB.Recordset
rs.ActiveConnection = CurrentProject.Connection
rs.Open "SELECT * FROM [Nome tabella]"
while not rs.EOF
  MsgBox rs![Nome campo]
  rs.MoveNext
wend
rs.Close
Set rs = nothing
L'esempio ha solamente un scopo didattico e mostra come leggere i valori da
un recordset per processarli in qualche maniera.
P.S.: Chissa' perche' la while viene chiuso da wend mentre per tutti gli
altri si ha end if, end select, end sub, ... non era piu' coerente end
While???
Antonio.

 While???
    La coerenza Visual Basic e' costretto a gestirla come puo':
compatibilita' con il passato! Spesso e' questa la risposta a tanti perche'.
    L'intenzione era di rassicurare i programmatori che usavano dialetti
BASIC non ancora "pascalizzati", riguardo la possibilita' di far girare
sotto Visual Basic spezzoni di codice solamente ricompilando e senza
cambiare una virgola. (!) e senza modificare le abitudini di scrittura.
    Ecco cosi' che e' giunto sino a noi questo BASICsauro di nome
        While .. Wend
che non bisognerebbe mai usare perche' a differenza dell'equivalente e piu'
flessibile ciclo:
        Do .. Loop
non ha la possibilita' di essere interrotto mediante:
        Exit Do
    In particolare la forma "End While" contrastava con i compiti non
iterativi che si aveva intenzione di affidare all'istruzione "End":
        End Function
        End If
        End Select
        End Sub
        End Type
--
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------

         End Type
In effetti non ci avevo pensato.
Grazie per la risposta.
Antonio.


Correttissimo, anche se personalmente ho sempre mal visto questo tipo di
codice, perche difficilmente gestibile in fase di debug (opinione
personale). E' un po' come utilizzare l'istruzione goto che spezza il flusso
dell'applicazione......pratica sconsigliata. Che poi sia comodo è un altro
discorso.....
Bando alla considerazione aggiungerei alla tua corretta risposta che i tre
cicli universalmente utilizzati sono
I CICLO
do while (condizione)
....
loop
II CICLO
do
....
loop while (condizione)
III CICLO
for (condizione)
...
next
Il primo utilizzato quando la o le operazioni possono anche non essere
eseguite nemmeno una volta. Il secondo quando la o le operazioni devono
essere eseguite almeno una volta.
Il for di solito quando sai esattamente quante volte il ciclo deve essere
eseguito.
In effetti con i primi due dovresti ovviare al terzo. Ma è tanto
carino...... :-)
DD

 carino...... :-)
Forse il suo fascino deriva anche dall'essere stato per tanti e tanti anni
l'unico ciclo del BASIC.
GOTO C
A:
Concordo. Hai fatto proprio bene a tirar fuori il GoTo a questo proposito
perche' sia per Exit Do che per GoTo l'unico uso veramente *necessario* e'
quello relativo alla gestione degli errori.
GOTO B
C:
END
