Newsgroup: it.comp.appl.access
Titolo: if then else

Ciao ho un problemino da risolvere e vorrei avere il vostro parere.
Ho 5 campi del tipo Si/No. C'č un modo per creare un campo unico a partire
da questi 5?
Io ho fatto cosě, ma non so se sbaglio.
Gli oggetti (campi) sono 5 e posso avere 32 diverse combinazioni
(vero/falso) di questi 5 oggetti.
Ho provato quindi a impostare una routine su attivazione di un ctrll in una
form che mi avrebbe dovuto riempire il famoso campo unico da me creato.
Per fare questo ho scritto i primi miseri 3 elseif e si č imballato tutto.
Il codice su  riassumi_GotFocus() č
If Me.tMattino.Value = True Then Me.riassumi.Value = 1
ElseIf Me.tMattino.Value = True & Me.TPomeriggio.Value = True Then
Me.riassumi.Value =  2
ElseIf Me.tMattino.Value = True & Me.Tsera.Value = True Then
Me.riassumi.Value = 3
End If  e volevo continuare cosě.
Ma non funziona.
E' terribile, anche perchč dovrei scrivere le 32 combinazioni. Un
suggerimento, perfavore?
Marina

 ha scritto nel messaggio
news:xjLE8.61940$zW3.8...@news1.tin.it...

C'č un modo molto piů semplice per far assumere al controllo che hai
chiamato riassumi un valore compreso tra 0 e 31 (32 combinazioni) a seconda
che i 5 controlli Si/No siano impostati s Si oppure a No.
Se i controlli di tipo Si/No si chiamassero Campo1, Campo2 ... Campo5, io
farei cosě:
Me!riassumi = 0
If Me!Campo1 = True Then
    Me!riassumi = Me!riassumi + 1
End If
If Me!Campo2 = True Then
    Me!riassumi = Me!riassumi + 2
End If
If Me!Campo3 = True Then
    Me!riassumi = Me!riassumi + 4
End If
If Me!Campo4 = True Then
    Me!riassumi = Me!riassumi + 8
End If
If Me!Campo5 = True Then
    Me!riassumi = Me!riassumi + 16
End If
Altrimenti la numerazione binaria e l'algebra booleana a cosa servirebbero?
;-)
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 wrote in message
xjLE8.61940$zW3.8...@news1.tin.it...


Sob me misera e tapina ...
Un grazie 1000 x l'attesissima risposta ma aimč leggendo mi sento ancora
peggio ... (di come stavo stamattina).
Allora, un altro tentativo - stavolta riuscito - ma senza l'ausilio di
Access ma
del complice Excel ho in effetti fatto una tabella di quella suggerita da
AnTor, ho dato un valore ad ogni combinazione e infine ho usato l'SPSS per
ricodificare la nuova varibile riassumi.
Ma vorrei imparare a farlo anche in access. Perciň da dove devo cominciare
per capire come fare lo stesso? E soprattutto ci posso arrivare anche io che
non sono del mestiere? E si perchč, caro Roberto l'algebra booleana non č
proprio il mio pane quotidiano. Pensa che per capire la differenza tra
combinazioni e permutazioni ci sono stata 2 giorni!!!
:-(
Sicchč da dove comincio? :-)
Ciao Marina

Funziona benissimo. Ma io però non lo capisco. Mi spiegheresti la
funzionalità perchè ho io non ho capito la sintassi di if then end if (il
che è probabilissimo) oppure mi sfugge qualcosa (il che è evidentissimo).
:-) Grazie ancora
Marina

Abbiate pazienza sono un pň stanca ... mi riferisco a  quel "ho" di
troppo!!!!

 Ciao Marina


Funziona benissimo. Ma io però non lo capisco. Mi spiegheresti la
sintassi perchè o io non ho capito la sintassi di if then end if (il
che è probabilissimo) oppure mi sfugge qualcosa (il che è evidentissimo)...
se ti va eh
:-) Grazie ancora
Marina

 ha scritto nel messaggio
news:hvTE8.63938$zW3.9...@news1.tin.it...

prova a mettere un'interruzione del codice nella prima riga del codice che
ti hanno suggerito (con F9 quando il cursore lampeggia su quella riga), poi
esegui il codice riga per riga con F8. Puoi controllare il valore delle
variabili con doppio click sul loro nome e pio premendo Shift-F9. Alla fine
togli il blocco di esecuzione del codice con F9 là dove l'avevi messo.
Ciao.
-------------
Fabio Dalla Villa
Biella

Non chiamatemi prolissa.
Allora .. per avere le informazioni sulle varie combinazioni, ho creato una
query a campi incrociati.
Ma per sapere poi a chi corrispondevano ho fatto un'altra query di selezione
tra la tabella di origine e la qry a campi incrociati con un join proprio
sul campo riassumi e cosě ho saputo a quali campi era stato attribuito il
codice per esempio 1 (tutti i campi no).
E' corretto cosě? C'č una routine per farlo automaticamente?
By, by Marina

 wrote in message
HRUE8.64176$zW3.9...@news1.tin.it...

Ciao,
premettendo che non ho mai programmato in ACCESS credo di aver capito che tu
voglia
nel report dare il valore di riassunto, e riportare cmq il valore dei
singoli campi.
La soluzione di Roberto era una corretta implementazione della LOCK UP
TABLE, infatti noterai che somma
al riassumi potenze successive del 2 se il campo valutato e' TRUE.
Quindi Riassume vale
C1 x 2^0 +C2 x 2^1 +C3 x 2^2 +C4 x 2^3 +C5 x 2^4
Pertanto il valore di
C1 e'   Riassumi AND 2^0
C2 e'   Riassumi AND 2^1
C3 e'   Riassumi AND 2^2
C4 e'   Riassumi AND 2^3
C5 e'   Riassumi AND 2^4
Spero di non averti confuso ulteriormente le idee. :)
AnTor

 AnTor
Assolutamente no anzi, avevo anche cercato di effettuare il blocco poi F ma
il tentativo non è riuscito. In effetti io ho un database con l'informazione
di pazienti (già perchè sono una banalissima biologa) che hanno avuto tosse,
se si di che tipo (e qui viene il bello) e se più di un tipo (ecco perchè ci
sono 5 campi).
Banalmente avevo contato campo1 campo2 ecc ma il totale superava la somma
dei pazienti. Quindi c'era qualcosa che non andava. Al report non volevo
arrivarci perchè è troppo complicato e quindi volevo una query che
sintetizzasse un pò la situazione. Ho infine risolto così:
TRANSFORM Count(scompenso.Tosse) AS ConteggioDiTosse
SELECT scompenso.Riassumi, scompenso.Tosse, scompenso.Tsecca,
scompenso.tMattino, scompenso.TPomeriggio, scompenso.Tsera, scompenso.Tnotte
FROM scompenso
GROUP BY scompenso.Riassumi, scompenso.Riassumi, scompenso.Tosse,
scompenso.Tsecca, scompenso.tMattino, scompenso.TPomeriggio,
scompenso.Tsera, scompenso.Tnotte
PIVOT scompenso.Tosse;
Basta solo che mi copio tutto in excel e poi attribuisco le etichette ai
codici e dovrebbe esser fatta.
Grazie ancora
Un bacio Marina

 ha scritto nel messaggio
news:G0SE8.51448$CN3.1...@news2.tin.it...

Circa la funzionalità della soluzione non vorrei ripetere ciò che ti ha
scritto nel suo messaggio AnTor. :-)
Nella mia ipotesi non è necessario usare una If ... Then ... Else ... End If
con delle If nidificate, ma è sufficiente usare 5 If in cascata del tipo If
... End If .
