Newsgroup: it.comp.appl.access
Titolo: Filtro su campo con val(nz([campo]))

Buongiorno a tutti/e,
La situazione è questa: campo [simplo] che contiene null oppure -1.
Tramite nz([simplo];0) ottengo quindi i soli valori 0 e 1. Fin qui
tutto bene; infatti se metto 0 oppure 1 come filtro è tutto OK; se
metto <=0 vedo tutte le righe.
Il problema nasce quando voglio fare un iif come questo:
iif([forms]![maschera]![scelta]="tutto";<=0)
La condizione dovrebbe mostrarmi sia 0 che -1; invece Access si ostina
a mostrarmi soltanto i valori -1. (ovviamente il campo nella maschera
è impostato con stringa "tutto").
Ho provato stupidamente a mettere <1 come condizione, ma con lo stesso
risultato. Ho anche provato a fare simpli: val(nz([simplo];0)), per
forzare la lettura a valore numerico ma niente da fare.
Dov'è l'inghippo stavolta? 
Grazie,
Panathos


or is null
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it

 ...
www.donkarl.com/it
 FAQ 3.14 Criterio che restituirà tutti i record
-- 
HTH
Karl
*********
Access FAQ: 
www.donkarl.com/it
 + iscriviti alla CISA2, la seconda
Conferenza Italiana per Sviluppatori di Access, Paola, 17+18/6/2006 

 or is null
Grazie, ma se intendevi
iif([campo]="tutto";<=0 or is null)
non funziona, lo 0 continua a non uscire.
ciao,
Panathos

 Panathos
-- 


 
www.donkarl.com/it
 FAQ 3.14 Criterio che restituirà tutti i record
Ho letto ma non è il mio caso: non ho il problema di matchare il campo
di una maschera; piuttosto quello di far funzionare l'iif tra valori
che SONO -1 e 0. Ispirato dal tuo sito ho provato anche questo:
iif([forms]![maschera]![scelta]="tutto";like "*")
e anche così continuo a vedere nella colonna soltanto i -1; gli 0 non
ci sono. E non capisco perché, val(nz([campo];0)) toglie null ed
imposta valori numerici... perché se inserisco <0 nel filtro della
query vedo sia -1 che 0, mentre se faccio lo stesso filtro tramite
iif([condizione]="vero";<0) Access non matcha gli 0?
Non riesco ad arrivarci. Ora proverò ad usare delle stringhe, in un
nuovo campo, per vedere se almeno il like "*" potrà funzionare, ma è
un maledetto accrocchione. Comunque grazie lo stesso.
ciao,
Panathos

 è impostato con stringa "tutto").
perche' dovrebbe mostrarti sia 0 che -1
Personalmente l'avrei scritta cosi'
me.filter = iif([forms]![maschera]![scelta]="tutto",""," simplo = " & 
[forms]![maschera]![scelta])


 [forms]![maschera]![scelta])
me.filter presuppone che sia scritta via codice... io volevo metterla
nella query, via QBF (o QBE, come si chiama il costruttore di query).
Inoltre così facendo hai "demandato" a due campi su una maschera il
match... che ci scriveresti in quei campi? Perché il mio problema non
sta nel match del campo sulla maschera, ma nel fatto che non riesco ad
estrarre sia -1 che 0.
(poi ho risolto con l'accroccone: un altro campo con scritte due
stringhe differenti a seconda se quel campo è 0 oppure -1; e su questo
campo faccio un like "*")
ciao,
Panathos

 estrarre sia -1 che 0.
Non ho demandato a 2 campi (sarebbe meglio dire controlli) ma a uno 
solo. Ed e' il controllo che "evidentemente" hai sul tuo form, controllo 
che si chiama "scelta" in un form aperto che si chiama "maschera" o che 
ti verrebbe richiesto come parametro da fornire se la form non e' aperta.
Per scrupolo ho utilizzato la tua iif in una query e "regolarmente" mi 
da errore di sintassi. Puoi, per favore, riportare l'intera query?
(menu Visualizza-->SQL a partire dal QBE) copi e incolli la stringa sql.
Poiche' anch'io sono qui per imparare e poiche' non mi torna la sintassi 
di quella iif, che dici funzionante, vorrei capire un po' meglio.
Nel frattempo ho verificato che effettivamente, se non metti il terzo 
parametro, la query viene eseguita (con il secondo parametro 
virgolettato altrimenti c'e' errore di sintassi). Per false la iif 
ritorna pero' "null"
questa e' un query che "funziona"  (l'ho fatta su una  tabella di test)
SELECT Questionario.Nome, Questionario.Idprod,testsino
FROM Questionario
WHERE 
IIf([forms]![maschera]![scelta]="tutto",-1,nz(testsino,0)=[forms]![maschera]![scelta])
in cui se fornisci "tutto" restituisce tutti i records
se scrivi 0  restituisce quelli a 0 o a "null"
se scrivi -1 restituisce i -1
il mio testsisno sostituisce il tuo simplo
--
ac

 da errore di sintassi. Puoi, per favore, riportare l'intera query?
Certo che sì, ci mancherebbe... però ne riparliamo lunedì. Qui c'è
qualcosa che continua a non tornarmi e voglio sviscerare bene
l'argomento. Intanto grazie.
ciao,
Panathos