Newsgroup: it.comp.appl.access
Titolo: Come? Somme se la casella di controllo è spuntata

Ciao,
scusate se attingo, ma "attingendo si impara" nella speranza che prima o
poi qualcun altro
possa attingere da me... :-)
Ho un altro dei miei problemi stupidi:
in una maschera ho 3 caselle di testo con a fianco un pulsante di
opzione per ogni casella:
le caselle di testo sono: val1, val2, val3 e le caselle di controllo
invece sono op1, op2, op3.
Io dovrei fare una query che mi filtri i record come voglio io secondo
un criterio (e qui
posso usare il "Like") e che sommi tutti i valori delle val1, val2, val3
se queste hanno la
spunta di op1, op2, op3 impostata a "True".
---------  ---
val1 -  -x- op1
---------  ---
---------  ---
val2 -  - - op2
---------  ---
---------  ---
val3 -  -x- op3
---------  ---
in questo caso, per ogni record, la query deve fare val1+val2 e sommare
questo valore agli
altri degli altri record. Vengono scartati dalla somma qui valN che non
hanno la spunta.
So che si può fare, andando a logica, ma non so come.
Grazie per l'aiuto
Marco
-- 
Posted from 
smtp1.libero.it
 [193.70.192.51] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG


Non so se ho capito ben ma io la farei cosi:
Espr1: iif(op1; val1; 0) tradotto se op1 è true Espr1 = val1 altrimento
Espr1 = 0
Espr2: iif(op2; val2; 0)
Espr3: iif(op3; val3; 0)
SommaVal: (Espr1 + Espr2 + Espr3)
HTH Ciao,
Bolo

 ha scritto nel messaggio
news:3B522DE0...@iol.it...

Non puoi basare una query su una maschera, ma spuoi basarla solamente su una
tabella o su un'altra query.
Quindi puoi risolvere il problema solamente se in una tabella/query hai tre
campi di tipo Numerico chiamati val1, val2 e val3 e tre campi di tipo Si/No
chiamati op1, op2, op3.
Se le cose stanno così rifatti vivo  precisando se ti interessa conoscere
solo la somma del valori di tutti i record o ti serve che la query ti
restituisca anche la lista dei record?
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 spunta di op1, op2, op3 impostata a "True".
    Se i possibili valori di una OptionBox sono Vero o Falso (i.e.
TripleState=No) allora questa avra' Value = 0 (False) se è deselezionata,
Value = -1 squando è selezionata (True).
    Ne segue che per avere la somma dei valori val<i> dove op<i>= True, ti
basterà scrivere:
    TOT = -val1*op1-val2*op2-val3*op3
    Ciao.
-------------------------------------
http://digilander.iol.it/SimonenomiS/
-------------------------------------

                                                                                                                                                                 gｱ杉�ｪ於Yｮｴｯ  Uｽ�ｰｷｨtﾃm"ｬｭﾍ2ｾﾏ ﾑ噺ﾁ ﾊｧﾒ!ﾊｾ湫ﾆｴｧ9ﾊﾈt葬ﾝﾎ玄ﾔﾄ懣ﾋｩﾛﾌｬ瀨}ﾜﾝ�C �攘Q 鎤ﾒ� Cy`�Tｸﾐ燠㍾詁�o�sn:科ｶn G午ﾊE ]ｸc' ｦ�Q悍�yｱ敬�5  姚ﾀX O	 髞9ｳaLj�
ﾜ(R ;祈崘p･D�Mｨﾛ ﾘBeMbﾍ垉藐椢ﾐ+ 蝸KMりｵ禧伃劉ﾘ泡y60^ｿ@ｯｶﾕｺｽ
ｴ|v 孩ｯ蕭U�ﾖｼ咄ﾖﾂ功ﾚｹmAﾄcKﾘﾙﾔe
qgｸ0�ｶ`ｸ｣Gｶ収
-- 
Posted from 
smtp2.libero.it
 [193.70.192.52] 


 Marco
Se la tabella si chiama Tabella1, per risolvere il problema con una query,
crea una query che abbia il seguente codice SQL:
SELECT Sum(-[val1]*[op1]-[val2]*[op2]-[val3]*[op3]) AS Totale
FROM Tabella1;
Se invece vuoi avere il risultato della somma direttamente in una casella di
testo non associata di una maschera (senza far ricorso ad una query),
nell'origine controllo di tale casella di testo scrivi:
=DSum("-val1*op1";"Tabella1")+DSum("-val2*op2";"Tabella1")+DSum("-val3*op3";
"Tabella1")


 >                                                                                                                                                                                                                                                  
Grazie veramente a tutti per l'aiuto. Avete risolto il mio problema.
Ciao
Marco
-- 
Posted from 
smtp1.libero.it
 [193.70.192.51] 
