Newsgroup: it.comp.appl.access
Titolo: doppi parametri nelle query

salve a tutti,
Ho una query con 2 campi parametrizzati: Campo1, parametro [a] e
Campo2, parametro [b].
In alcune ricerche ho bisogno di lasciare il parametro [a] vuoto in
modo che selezioni tutti i record (anche quelli in cui il campo non
contiene valori) e di sfruttare solo il parametro [b] o viceversa.
Al prompt di access che mi chiede il parametro [a] o [b] clicco quindi
"invio" senza inserire alcun valore mentre imposto  [b] o [a] ad un
valore scelto.
Ho provato con questa soluzione : criterio1 = like nz([a]; "*") or is
null e funziona bene se applicata ad un solo campo
Il problema sorge quando inserisco anche  il criterio2 =  like nz([b];
"*") or is null 
 
Se lascio infatti un parametro vuoto e l'altro lo imposto il risutato
della query č quello darmi tutti i record che contengono [b] nel
campo2 e tutti quelli che sono nulli nel campo1
credo di aver bisogno di un criterio da applicare ai 2 campi del tipo 
IIF ([a] is not null; [a]; "prendi tutti i recordi anche quelli con
campo nullo") ma non riesco ad implementarlo..........
qualcuno mi puņ aiutare ???  (Mi scuso se non sono stato abbastanza
chiaro e/o  mi sto perdendo in un bicchier d'acqua ma non riesco ad
uscirne)
Grazie 
Marco

 wrote in message
w2G7OQQLOxD=yaoTXVJ1VZ9Z=t...@4ax.com...

Prova a fare cosi': IIF([a] is null; Campo1;[a])
e IIF([b] is null; Campo2;[b])
In questo modo quando i parametri sono nulli access confronta i valori del
campo con...i valori del campo (e i risultati sono i valori del campo, anche
quelli nulli: perciņ sono presi tutti i valori)
Ciao
Marco

 wrote in message
keRu5.20752$2I.3...@news.infostrada.it...



Purtroppo la tua soluzione continua ad escludermi i record con i campi
vuoti...........
infatti se in una semplice query metti come criterio del campo1 la
formula [campo1] la query estrarrà tutti i records non vuoti, almeno
questo succede a me!
qualche altro suggerimento ???
grazie 
marco

 >>
... MegaCUT ...
Quando devo ricorrere ad una query come nel caso tuo o di Alessia,
preferisco aprire una maschera, far inserire i dati che servono, appoggiando
i criteri della query sui controlli della maschera.
Questa soluzione, e non è sicuramente l'unica, ha il vantaggio di poter
eseguire una verifica dei dati inseriti prima di passarli alla query,
andando eventualmente a modificarli o ad integrarli in dipendenza del
funzionamento della query stessa.
Sperando di esserVi d'aiuto...
Silvio


Perdonate l'intrusione, ma io aggiungerei due colonne non visibili alla
query rispettivamente scrivendo nel "Campo:":
    aa: IIF(IsNull(Campo1); "zzzzzzzzzz"; Campo1)
e
    bb: IIF(IsNull(Campo2); "zzzzzzzzzz"; Campo2)
e nei criteri di aa: scriverei :
    like IIF([a] is null; "*"; [a])
e in quelli di bb: scriverei:
    like IIF([b] is null; "*"; [b])
--
Roberto
---------------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------

> Marco
PRIMO CAMPO
Riga campo: XCampo1: IIf(IsNull([a]);Vero;IIf([a] Like "*" & [a] &
"*";Vero;Falso))
Riga Criteri: Vero
SECONDO CAMPO
Riga campo: XCampo2: IIf(IsNull([b]);Vero;IIf([b] Like "*" & [b] &
"*";Vero;Falso))
Riga Criteri: Vero
Ciao
Calamus
Cal...@ciaoweb.it

    like IIF([b] is null; "*"; [b])
MILLE GRAZIE dell'aiuto: il tuo consiglio funziona alla meraviglia 
alla prssima
ciao
Marco