Newsgroup: it.comp.appl.access
Titolo: Ciclo su IIf

Salve a tutto il n.g.
Per conteggiarmi le discipline in un torneo di calcio uso questo
sistema a dir la verità un pò arronzato.
Premetto:
prima ammonizione: 1 equivale ad Ammonito
seconda ammonizione: 2 equivale a Diffidato
terza ammonizione: equivale ad espulsione
Poi ricomincia, per cui 4 vale a prima ammonizione, 5 vale a
seconda ammonizione(diffida), 6 vale a terza ammonizione(espulsione)
e
cosi via.
Per il momento, tramite query, ho risolto in questo modo, considerando
che un giocatore difficilmente arriva a prendere 15 ammonizioni:
Penalizzazione: IIf([n_penalizzazioni]=1 Or [n_penalizzazioni]=4 Or
[n_penalizzazioni]=7 Or [n_penalizzazioni]=10 Or
[n_penalizzazioni]=13;"Ammonito";IIf([n_Penalizzazioni]=2 Or
[n_Penalizzazioni]=5 Or [n_Penalizzazioni]=8 Or [n_Penalizzazioni]=11
Or [n_Penalizzazioni]=14;"Diffidato";IIf([n_penalizzazioni]=3 Or
[n_Penalizzazioni]=6 Or [n_Penalizzazioni]=9 Or [n_Penalizzazioni]=12
Or [n_Penalizzazioni]=15;"Espulso";0)))
ma va da se che simili scorciatoie non vanno bene.
Allora ho cercato di risolvere con un ciclo For Next ... ma non ci
sono riuscito.
Mi potete aiutare?
Grazie, Vladimiro.

 Grazie, Vladimiro.
Secondo me dovresti creare una funzione, in un modulo, dove gli passi i 
paramentri e lģ fai i test che vuoi restituendo la stringa giusta:
es.
Penalizzazione: cheHaiCombinato([n_penalizzazioni])
(in un modulo)
Function cheHaiCombinato(nPenalizzazioni as integer) as string
dim risultato as string
risultato = ""
select case nPenalizzazioni
    case 1,4,7,10,13
        risultato = "Ammonito"
    case 2,...
        risultato = "..."
    case else
end select
cheHaiCombinato = risultato
end function
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio 
news:e141c615-cf80-4270...@v4g2000hsf.googlegroups.com...



potresti usare la funzione Switch così risparmi qualche passaggio di IIF
Penalizzazione: Switch (([n_penalizzazioni]=1 Or [n_penalizzazioni]=4 Or
[n_penalizzazioni]=7 Or [n_penalizzazioni]=10 Or
[n_penalizzazioni]=13);"Ammonito";([n_Penalizzazioni]=2 Or
[n_Penalizzazioni]=5 Or [n_Penalizzazioni]=8 Or [n_Penalizzazioni]=11
Or [n_Penalizzazioni]=14);"Diffidato";([n_penalizzazioni]=3 Or
[n_Penalizzazioni]=6 Or [n_Penalizzazioni]=9 Or [n_Penalizzazioni]=12
Or [n_Penalizzazioni]=15);"Espulso")

 - Mostra testo tra virgolette -
Ciao Vladimiro.

 Ciao.
uhmmmm..... funzione o meno pensi che questa attaglierebbe?
if nPenalizzazioni <> 0 then
	x = nPenalizzazioni mod 3
	select case x
	   case 0: Msgbox "te sei fatto risbatte fori"
	   case 1: msgbox "beccate sto cartellino"
	   case 2: msgbox "alla prossima stai fermo almeno un giro"
	end select
end if
-- 
ac
y-1=x

 y-1=x
Ciao.
-- 
Sergio MAZZA 

 Ciao Vladimiro.
Sì, non avevo capito che nPenalizzazioni è il numero progressivo delle 
penalizzazioni; il la interpretavo come una specie di codifica.
Alessandro ha la soluzione...
Ciao.
-- 
Sergio MAZZA 

 che chiedeva lui...
Sto a bara'. Ero in anticipo. La questione la avevo letta in anteprima.
Ciao Sergio. Buone giornate.
-- 
ac
y-1=x

 Ciao Sergio. Buone giornate.
Anche a te; tempo permettendo...



Non ho parole.
Un saluto a te e Alessandro
Vladimiro.

 ha scritto nel messaggionews:e141c615-cf80-4270...@v4g2000hsf.googlegroups.com...

Scusa per non averti risposto, ma avrai certamente capito che cercavo
qualcosa di diverso anche rispetto alla tua soluzione.
Comunque grazie.
Ciao Vladimiro.