Newsgroup: it.comp.lang.visual-basic
Titolo: Richiesta info

Come già avevo premesso qualche giorno fa sono un new-bye  (forse un
filino meno new-bye ma quattro giorni non mi hanno trasformato).
Sto creando un database dei computer aziendali quindi l'operatore
Mario Rossi non ha solo un oggetto hardware:  ha un monitor, un pc,
una stampante.....
Con questa sequanza Ado:
 
RecPC.MoveFirst
   RiempiCampi
If TxtRicOp = "" Then Exit Sub
RecPC.Filter = "Operatore like '" & RisolviApici(TxtRicOp) & "%'"
If RecPC.EOF = False Then
   RiempiCampi
CaricaComboUffici
   End If
RecPC.MoveFirst
vedo solo il primo record di ogni operatore. 
Se qualcuno può suggerirmi qualcosa gliene sarei più che  eternamente
grato.
Ciao  grazie  Indriano

 vedo solo il primo record di ogni operatore.
Non conosco/uso la Filter, ma se rende solo i records che soddisfano il
filtro cambierei, dopo l'applicazione del .Filter, in questo modo:
Do
    If RecPC.EOF = True Then Exit Do    'Fine records
    RiempiCampi
    CaricaComboUffici
'        Vado sul record seguente
    RecPC.MoveNext
Loop


Scusami Lupo, è tutto giusto quello che scrivi, ma l'uso del Exit Do proprio
non mi piace, quindi se non ti dispiace ti correggerei:
Do Until RecPC.EOF
    RiempiCampi
    CaricaComboUffici
'        Vado sul record seguente
    RecPC.MoveNext
Loop
;)
Ciao!
-- 
Esteban
www.seber.it
Questo post è stato scritto con bit riciclati.

 proprio non mi piace, quindi se non ti dispiace ti correggerei...
Nessuna scusa, ci mancherebbe, č solo questione di gusti.
Io "amo" i vari Exit perchč per me sono piů leggibili.
Se ogni volta devo star lě a pensare cosa significa Until, While, sul Do o
sul Loop io divento pazzo.
Un Exit Do dice chiaramente quello che fa e, nel contesto, si capisce
benissimo quando viene eseguito.

Ciao  sono Indriano,
    vi ringrazio 1000  10.000 volte: non ho ancora provato le
soluzioni che mi avete suggerito, per quanto riguarda la mia doppia
spedizione era solo un errore: spedivo con google (per la prima volta)
per non inquinare l'indirizzo mail aziendale  e non vedevo niente.
   Ciao e grazie di nuovo  ragazzi.
   Indriano

 benissimo quando viene eseguito.
A me i tuoi Exit Do ricordano un po' le tecniche di programmazione usate 
con i vecchi Basic che andavano avanti a Goto.
Anche io preferisco un
Do
   ...
While (Cond)
piuttosto che un Do Exit e anzi riesco a capire a impatto la prima 
piuttosto che la seconda.
Questioni di abitudini...
Poi, i gusti son gusti :)

> piuttosto che un Do Exit [...]
Pardon volevo dire Exit Do

Questioni di abitudini...
...ed anche di tipi di problemi da risolvere.
Mi domando, per esempio, se si debba ciclare su una tabella ed uscire
dal ciclo ad una determinata condizione di non banale computazione:
' rs = prefisso per ADODB.Recordset
' cn = prefisso per ADODB.Connection
Do Until rsTabella.EOF
    If (PrimaCondizioneIncasinata(rsTabella.Fields(1).Value)) Then
        Exit Do
    Else
        Set rsLookup = cnDatabase.Execute(sql)
        If (Not rsLookup.EOF) Then
            If (AltraCondizStrana(rsLookup.Fields(0).Value)) Then
                rsLookup.Close
                Exit Do
	    End If
        End If
        rsLookup.Close
        rsTabella.MoveNext
    End If
Loop
In un caso come questo mi sembra che l'Exit Do sia tutt'altro che
disprezzabile.
-- 
ciao,
hal


In queste condizioni dichiaro una variabile di tipo Boolean:
Dim QualcosaEAndatoStorto As Boolean
Do Until rsTabella.EOF OR QualcosaEAndatoStorto
    If (PrimaCondizioneIncasinata(rsTabella.Fields(1).Value)) Then
        QualcosaEAndatoStorto = True
    Else
        Set rsLookup = cnDatabase.Execute(sql)
        If (Not rsLookup.EOF) Then
            If (AltraCondizStrana(rsLookup.Fields(0).Value)) Then
                'rsLookup.Close -> questo qui non serve più
                QualcosaEAndatoStorto = True
            End If
        End If
        rsLookup.Close
        rsTabella.MoveNext
    End If
Loop


 Loop
A parte che non fa esattamente quanto hal ha esemplificato (fa almeno un
MoveNext che non deve), dici che è più leggibile? 8-(
Comunque, per una volta siamo tutti d'accordo: è solo questione di gusti...

Loop
Si', l'idea e' valida pero' ha il difetto di usare una variabile in
piu'. Il problema non e' tanto per i 32 bit in piu' o in meno, ma
la leggibilita': cioe' un Exit Do dice chiaro e tondo anche dopo mille
anni che quella condizione fa uscire dal ciclo mentre un flag non dice
gran che'. Non solo, qualsiasi codice dovesse essere aggiunto in
futuro all'interno del loop, sarei costretto a tener conto
dell'esistenza del flag. E ne ho viste di coperte di flag che le
tiravi da una parte e si accorciavano dall'altra...
-- 
ciao,
hal