Newsgroup: it.comp.appl.access
Titolo: routine ciclica

Scusate di nuovo la mia ignoranza in access.
Sto utilizzando questa routine me non fa esattamente quello che
chiedo.
La routine è questa:
Private Sub AggiornaFascia_Click()
Me.Refresh
Dim rstClone
Dim i
Set rstClone = Me.RecordsetClone
For i = 1 To rstClone.RecordCount
rstClone.Edit
       Select Case i
                  Case 1 To 30
                  rstClone.Fields("FasciaAss") = 1
                  rstClone.Fields("PrezzoRiservato") = Me.Prezzo -
(Me.Prezzo * 90 / 100)
                  Case 31 To 110
                  rstClone.Fields("FasciaAss") = 2
                  rstClone.Fields("PrezzoRiservato") = Me.Prezzo -
(Me.Prezzo * 40 / 100)
                  Case 111 To 150
                  rstClone.Fields("FasciaAss") = 3
                  rstClone.Fields("PrezzoRiservato") = Me.Prezzo -
(Me.Prezzo * 20 / 100)
                  Case 112 To 1000
                  rstClone.Fields("FasciaAss") = 4
                  rstClone.Fields("PrezzoRiservato") = Me.Prezzo
                  Case Else
                  Exit For
       End Select
rstClone.Update
rstClone.MoveNext
Next i
End Sub
La routine dovrebbe compilare il campo FasciaAss e funziona, poi
dovrebbe prendere il prezzo, fare la percentuale e scrivermelo nel
prezzo riservato. L'errore è che non mi prende il prezzo per ogni
record che va ad aggiornare ma fa la percentuale sempre sul primo
record.
Avete qualche suggerimento da darmi?
Grazie

 ...
"Me.Prezzo" sempre prende il valore dal record attuale nella maschera.
Se vuoi prendere il valore dal record attuale nel rsClone devi sostituire
tutti "Me.Prezzo" nel ciclo con: rstClone.Fields("Prezzo")
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 

 ha scritto nel messaggio 
news:4f02549e-8390-4536...@f30g2000yqa.googlegroups.com...
Scusate di nuovo la mia ignoranza in access.
Sto utilizzando questa routine me non fa esattamente quello che
chiedo.
cut
La routine dovrebbe compilare il campo FasciaAss e funziona, poi
dovrebbe prendere il prezzo, fare la percentuale e scrivermelo nel
prezzo riservato. L'errore č che non mi prende il prezzo per ogni
record che va ad aggiornare ma fa la percentuale sempre sul primo
record.
Avete qualche suggerimento da darmi?
Grazie
Prova cosě:
Private Sub AggiornaFascia_Click()
Me.Refresh
Dim rstClone
Dim i
Set rstClone = Me.RecordsetClone
rstClone.movelast
rstClone.moveFirst
For i = 1 To rstClone.RecordCount
 With rstClone
 Select Case i
 Case 1 To 30
 .Edit
              .Fields("FasciaAss") = 1
              .Fields("PrezzoRiservato") = Me.Prezzo - (Me.Prezzo * 90 / 
100)
 .Update
              Case 31 To 110
              .Fields("FasciaAss") = 2
              .Fields("PrezzoRiservato") = Me.Prezzo - (Me.Prezzo * 40 / 
100)
              .Update
 Case 111 To 150
              .Fields("FasciaAss") = 3
              .Fields("PrezzoRiservato") = Me.Prezzo - (Me.Prezzo * 20 / 
100)
              .Update
 Case 112 To 1000
              .Fields("FasciaAss") = 4
              .Fields("PrezzoRiservato") = Me.Prezzo
              .Update
 Case Else
              Exit For
        End Select
 end with
rstClone.MoveNext
Next i
End Sub
Questo va bene se Me.Prezzo č sempre il valore che devi usare, dunque quello 
che vedi a video.
Se il Prezzo deve essere quello del record editato allora ti basta togliere 
il Me e lasciare .Prezzo
Ciao, Carlo 

 - Mostra testo citato -
Grazie mille Karl.
Ho provato così:    rstClone.Fields("PrezzoRiservato") =
rstClone.Fields("Prezzo") - (rstClone.Fields("Prezzo") * 90 / 100)
ma non funziona, esce un messaggio che mi dice Elemento non trovato in
questo insieme.
Ho sbagliato qualcosa nella sintassi?
Grazie per la pazienza...

 Ciao, Carlo
Ciao Carlo grazie mille
ho provato ma mi esce una finestra con errore sia che scrivo .update
sia che scrivo me.update.
Hai qualche suggerimento?
grazie mille ancora ciaol

 ...
Sembra che nel rstClone non si trova un campo "Prezzo". ;-)
Purtroppo puoi solo sapere tu dove si trova e come si chiama.
Cos'è "Me.Prezzo"?
Se si tratta di un controllo nella maschera cosa si trova nella sua
proprietà "Origine controllo"?


 - Mostra testo citato -
Prezzo è semplicemente un campo  di una tabella dove è indicato il
prezzo, la cosa strana è che se scrivo me.Prezzo funziona e lo vede,
peccato che prende sempre il valore del primo record ...
quindi il campo dovrebbe essere giusto. Inoltre la cosa strana è che
funziona rstClone.Fields("PrezzoRiservato") quindi non capisco dove
stia l'errore...

 ha scritto nel messaggio 
news:8eaff69e-3aa9-4005...@l11g2000yqb.googlegroups.com...


Leggendo l'altro post suppongo che Prezzo non sia un campo del recordset. Se 
è un campo calcolato devi scomporlo. Non ti rimane che andare in struttura 
della maschera cliccare sul controllo Prezzo, tasto dx, proprietà e leggere 
cosa c'è scritto in "Origine controllo".
Ciao, Carlo 

 - Mostra testo citato -
Grazie mille per i preziosi aiuti... ho trovato l'errore. Da vb mi
prendeva me.Prezzo ma in realtà dovevo scrivere Iscrizione.Prezzo, è
stata una mia svista.
Adesso funziona.Grazie mille di cuore per i vostri post!
Buona serata


non hai risposto alla domanda di Karl?
Qual'è l'origine controllo di Me.prezzo?
E' "prezzo" il nome del campo che si trova nella tabella che vai a ciclare?
Il fatto che ti dia errore è la prova lampante che "prezzo" non esiste nel 
recordset della maschera.
-- 
Ciao
Geppo