Newsgroup: it.comp.appl.access
Titolo: Strutture di decisione?

Salve a tutti,
sto cercando di estrarre, da una tabella, dei dati che abbiano determinate
caratteristiche e quindi di trasferirli su un'altra tabella in modo da
poterli poi elaborare con più facilità.
Il problema è che non riesco a far funzionare le varie strutture di
decisione, come If Then e For Next, che di solito non mi creano problemi.
un' esempio del codice è questo:
    Dim Db As Database
    Dim Rst As Recordset
    Dim tblC As Recordset
    Dim i
    Dim c
    Set Db = CurrentDb
    Set Rst = Db.OpenRecordset("tblsport")
    Set tblC = Db.OpenRecordset("tblClass")
        c = Rst.RecordCount
    For i = 0 To c
      If Rst(1) = "San Donato" And Rst(3) > Rst(4) Then
         tblC.AddNew
         tblC(0) = "San Donato"
         tblC(1) = 3
         tblC.Update
         Rst.MoveNext
      End If
      If Rst(2) = "San Donato" And Rst(3) < Rst(4) Then
         tblC.AddNew
         tblC(0) = "San Donato"
         tblC(1) = 6
         tblC.Update
         Rst.MoveNext
      End If
  Next i
Il risultato sono sempre dei dati incongrui.
Ringrazio in anticipo chi mi potrà dare un'aiuto.
                                   Ciao, Eugenio

 Il risultato sono sempre dei dati incongrui.
Non capisco cosa intendi per dati incongrui.
Apparentemente il codice scritto da te è corretto, ma, non conoscendo la
struttura della base dati, il mio parere ha poco valore.
Ho quotato comunque alcune parti del codice, come puoi notare. Sono solo
osservazioni e non credo risolveranno i tuoi problemi.
Prima di tutto, visto che ci sei e che dichiari le due variabili i e c,
dichiara anche il tipo, che non fa mai male. In questo caso, usa untipo
Integer o Long (non so quanti record hai nella tabella).
Poi, c'è quel recordcount che, così com'è, rischia di avere poco
significato.
Per essere sicuro di avere il numero corretto di record presenti nel
recordset, utilizzando la prorietà .recordcount, devi prima spostarti
sull'ultimo record, con .movelast (ti riposizioni poi sul primo con
.movefirst).
L'utilizzo di For ... Next per scorrere i record è una scelta soggettiva. Io
preferisco utilizzare
Do Until nomerecordset.eof
    [...]
Loop
Non ti costringe a contare i record.
Infine, seppure corretto, l'utilizzo dell'indice, per fare riferimento adun
campo di un recordset, lo trovo molto scomodo.
Tu scrivi nomerecordset(numero) per fare riferimento ad un campo. Io trovo
molto più comodo e leggibile scrivere nomerecordset("NomeCampo"). Alla fine
della fiera è esattamente la stessa cosa.
Ciao.
________________________________________
Andrea Sciamanna
andrea.s...@libero.it
Mi faccio un pò di pubblicità:
Tamtando: 
http://www.tamtando.com
Res Nova Duo: 
http://utenti.tripod.it/resnovaduo
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To stop the train
In cases of emergency
Just pull down the chain
     pull down the chain
Penalty for improper use
Five Pounds!

 struttura della base dati, il mio parere ha poco valore.
[cut]
Sono d'accordo.
Prima di tutto se non spieghi cosa vuoi ottenere non si capisce quali sono
le incongruenze, inoltre (oltre a quanto già opportunamente rilevato da
Andrea) nella maggior parte dei casi e' inopportuno usare il codice per
manipolare grosse quantità di dati (salvo casi particolari) meglio vedere se
si puo' fare con le query.
Ciao, Sib


Ho visitato questo sito è l'ho trovato originale.
Sono poi contento di non essere l'unico a farsi (o a fare) un pò di
pubblicità con le risposte ai post ;-)
Saluti
Michele

 pubblicità con le risposte ai post ;-)
Sì, ne approfitto :-)
Cmq, di norma, non la metto. Solo che l'ho impostata in automatico e, a
volte, mi dimentico di toglierla (ovviamente, la via più facile, cioè quella
di eliminarla dalla configurazione, non fa per me :-)