Newsgroup: it.comp.appl.access
Titolo: Condizione IIf in query

Buon giorno a tutti.
Ho la necessità di inserire in una query una condizione, ma per la 
complessità della questione anche se sono due giorni che provo non ci 
riesco. Per semplificare la cosa ho pensato di proporvi quello che sto 
tentando di fare con Access in formato Excel:
=SE(B3="";A3/100*(100-C3);A3-B3)
Come si deve impostare la formula sopra citata in formato Access?
Grazie per l'attenzione.
Roberto

 ha scritto nel messaggio 
news:dth937$srf$1...@balena.cs.interbusiness.it...

(!?)
=IIF(B3="";A3/100*(100-C3);A3-B3)
Ciao.
-- 
Sergio MAZZA 

 Sergio MAZZA
Grazie Sergio per la celerità con cui mi rispondi.
Probabilmente l'esempio che riporto in Excel non è così semplice in Access. 
L'avevo fatto per non dilungarmi troppo sperando desse ugualmente dei 
risultati
Vedo di riassumere la questione.
Nella sessione Inserimento Acquisti del mio db ho previsto le seguenti 
immissioni:
Data Acquisto
Descrizione Prodotto
Fornitore
Codice Prodotto
UM
Quantità
Prezzo
% Sconto
Importo Sconto
% I.V.A.
Nella maschera di visualizzazione prodotti per fornitore in due caselle di 
testo immettendo il range date di ricerca e successivamente in una combobox 
selezionando il fornitore desiderato, mi si visualizzano in una 
sottomaschera tutti gli articoli acquistati dal fornitore X.
Riporto un calce la query che stavo tentando di manipolare. Siccome il 
fornitore può farmi uno sconto sia in percentuale (es. 15%) che in ?, vorrei 
poter ottenere il prezzo ivato del prodotto X, al netto di sconto 
considerando che può essere come detto sopra, in percentuale oppure in ?.
Spero di non aver complitato ulteriormente la questione con la mia 
descrizione.
Grazie
Roberto
SELECT Prezzi.Fornitore, Prezzi.DescrProd, Prezzi.CodProd, Prezzi.DatAcq, 
Prezzi.Um, Prezzi.Qta, Prezzi.Prezzo, Prezzi.PerSco, Prezzi.ImpSco, 
Prezzi.Iva, IIf([ImpSco]>0,CCur([Prezzo]-[ImpSco])*(1+[Iva])/100*100) AS 
TOTALE, IIf([Um]="TN",Format([Totale]/10,'Fixed')) AS [COSTO AL Q], 
IIf([Um]="TN",[COSTO AL Q]*1936.27,[TOTALE]*1936.27) AS [COSTO AL Q IN £]
FROM Prezzi
WHERE (((Prezzi.Fornitore)=[Forms]![Prodotti per Fornitore]![RS]) AND 
((Prezzi.DatAcq) Between [Forms]![Prodotti per Fornitore]![dataI] And 
[Forms]![Prodotti per Fornitore]![dataF]))
ORDER BY Prezzi.DatAcq;

 dei risultati
quello che non è scritto, almeno io, non riesco a leggerlo;

---omissis---
La questione è semplice; devi verificare se il valore nei campi 
[percentuale] e [importo sconto] è > 0, regolandoti di conseguenza.
Es.
Iif([percentuale]>0;(calcolo con la percentuale);Iif([importo 
sconto]>0;(calcolo con l'importo sconto);0))
Ciao.
-- 
Sergio MAZZA 

 Sergio MAZZA
Grazie Sergio per la dritta.
M'impapinavo con le parentesi ed i punto e virgola. Dopo aver letto la tua 
risposta ho provato non riuscendoci subito, risolto tutto dopo una mezz'ora.
Colgo l'occasione per porgere a te ed a tutti quelli che vorranno dire la 
loro, il seguente quesito.
Il CISA2 è "abbordabile" a tutti i livelli di conoscenza?
Grazie.
Roberto
Questa è la query che mi serviva
TOTALE: 
IIf([PerSco]>0;(CCur([Prezzo])*(1-[PerSco])/100*100)*(1+[Iva]);IIf([ImpSco]>0;(CCur([Prezzo]-[ImpSco])*(1+[Iva])/1);[Prezzo]*(1+[Iva]))) 

 IIf([PerSco]>0;(CCur([Prezzo])*(1-[PerSco])/100*100)*(1+[Iva]);IIf([ImpSco]>0;(CCur([Prezzo]-[ImpSco])*(1+[Iva])/1);[Prezzo]*(1+[Iva])))
Un altro suggerimento; quando la IIF diventa così complicata (è già troppo lunga) conviene costruirsi una funzione e passargli i 
parametri...
Ciao.
-- 
Sergio MAZZA 

 Sergio MAZZA
Grazie Sergio per i preziosi consigli.
Buona giornata.
Roberto