|
Topic Topic Hot Topic New Topic Locked Topic Sticky Topic Hidden |
come passare il criterio "*" ad una query? |
Post Reply
|
| Author | |
compostabile
Utente Senior
Joined: 07/Mar/2011 Status: Offline Points: 190 |
Post Options
Thanks(0)
Quote Reply
Topic: come passare il criterio "*" ad una query?Posted: 26/Mar/2012 at 14:49 |
|
Attenzione... il problema è rimasto ma ho modificato la tabella e la query... quindi Vi invito ad andare al mio reply del 28/04/12
Ciao a tutti, mi trovo nella seguente situazione.
su una maschera(maschera1) ho posizionato la maschera (giorno) (non ha legami master/secondario con la precedente).
nella query che mi popola la maschera giorno ho la seguente condizione "AND ((Tab_promemoria.ambientale)=[Forms]![maschera1]![sel_amb]))"
dove sel_amb è un campo testo che assume il valore -1 o il valore 0 a seconda dello stato dell'interruttore F_amb
(se è premuto sarà -1, diversamente sarà 0). Nella tabella tab_promemoria il campo "ambientale" è un campo si/no.
Se attivo o disattivo l'interruttore (nel senso di cliccarlo) tutto ok. Il problema è che all'apertura della maschera vorrei che desse come valore "*"al criterio di cui sopra.
Se lo scrivo io nella query funziona e mi fa vedere tutti i record indipendentemente quindi non credo che gli dia fastidio.
Se invece se do come predefinito a sel_amb * o =* mi dice che l'espressione è troppo complessa e si blocca tutto.
c'è un modo per farlo digerire? (o sono completamente fuori strada?)
Spero di di essere stato comprensibile...
potrebbe tornarmi utile lo stato triplo dell'interruttore? (però non so come funziona)
ciao!
Piccolo aggiornamento:
ho bypassato il problema aggiungendo un ulteriore campo testo sulla maschera1 con valore predefinito -1
e ho messo e l'ho messo in OR con il valore di sel_amb.
rettifico... funziona solo con un unico criterio... io ne ho tre. quindi sono nuovamente bloccato
Edited by compostabile - 28/Apr/2012 at 14:39 |
|
![]() |
|
gregorio
Utente Onorario
Utente Onorario Joined: 28/Apr/2008 Location: Italy Status: Offline Points: 1715 |
Post Options
Thanks(0)
Quote Reply
Posted: 26/Mar/2012 at 20:54 |
|
Mettere l'* predefinito ? oppure utilizzare "IIF" nella query per due, tre,ecc. nella query?
Bisognerebbe vedere l'mdb. Ciao |
|
|
Infogreg
|
|
![]() |
|
compostabile
Utente Senior
Joined: 07/Mar/2011 Status: Offline Points: 190 |
Post Options
Thanks(0)
Quote Reply
Posted: 26/Mar/2012 at 21:21 |
|
come predefinito nel campo testo non gli piace...
sto provando con una combinazione di iif nella query però non ho ancora azzeccato quella giusta... ma come si dice... mille scimmie in mille anni... ciau:-) |
|
![]() |
|
willy55
Veterano
Esperto di Access Joined: 03/Ago/2011 Location: Italy Status: Offline Points: 1214 |
Post Options
Thanks(0)
Quote Reply
Posted: 26/Mar/2012 at 23:58 |
|
Un campo logico ha solo due stati, nel caso non si voglia selezionare uno di due valori basta non far agire il filtro su detto campo e quindi non è necessario l'asterisco.
In ogni caso se l'aspetto è quello della interfaccia si può impiegare un gruppo di opzioni che abbia la presentazione di tre valori ("-1" , "0" e "*" che magari si traduce nel primo caso in True, nel secondo in False e nel terzo nel non impostare nulla) associando il relativo codice del filtro con una apposita funzione. Per il gruppo di opzioni: http://office.microsoft.com/it-it/access-help/creare-un-gruppo-di-opzioni-HP005188325.aspx |
|
|
Willy
|
|
![]() |
|
@Alex
Utente Onorario
Joined: 09/Apr/2012 Location: Mantova Status: Offline Points: 818 |
Post Options
Thanks(0)
Quote Reply
Posted: 09/Apr/2012 at 22:42 |
|
Puoi scrivere una cosa simile
Questo predicato è valido per tutti i Tipi di Campo(Date,Numeri,Testo...) ed evita il Casting dei dati che avverrebbe con l'uso del LIKE ...."*" Per Casting dei dati si intende la Conversione del DataType al FieldType in questo caso, cosa evitabile. Chiaramente applicabile anche con HAVING. Edited by @Alex - 09/Apr/2012 at 22:45 |
|
|
Non SUPPORTO il CROSSPOST.
http://mirror.masterdrive.it/alessandrobaraldi/ Scaricare i DEMO modificando l'Estensione. |
|
![]() |
|
compostabile
Utente Senior
Joined: 07/Mar/2011 Status: Offline Points: 190 |
Post Options
Thanks(0)
Quote Reply
Posted: 28/Apr/2012 at 14:32 |
|
@Alex intanto grazie... ho provato ma non riesco a farlo funzionare...
considerando l'altro post ho eliminato i si/no ed ho utilizzato il gruppo di controllo opzioni. ora mi trovo a dover filtrare secondo il valore "argomento" con questa query: SELECT Tab_promemoria.ID_promemoria, Tab_promemoria.data_scad, Tab_promemoria.promemoria, Tab_promemoria.ripeti, Tab_promemoria.avviso, Tab_promemoria.fatto, (Weekday([data_scad]))-1 AS giorno, [data_scad]+[avviso] AS dataAvviso, IIf([avviso]>0 And [DiffD]=[Data_scad],"P: " & [data_scad] & " " & [promemoria],[promemoria]) AS Prome1, (Forms!maschera1!Testo30)+[avviso] AS DiffD, Tab_promemoria.argomento FROM Tab_promemoria WHERE (((Tab_promemoria.data_scad)=[Forms]![maschera1]![Testo30]) AND (((Weekday([data_scad]))-1)=1) AND ((Tab_promemoria.argomento)=[Forms]![maschera1]![argo])) OR (((Tab_promemoria.data_scad)=([Forms]![maschera1]![Testo30])+[avviso]) AND ((Tab_promemoria.argomento)=[Forms]![maschera1]![argo])); dove "argo" è uguale ad [argomento] in tab_promemoria. fuziona se argo è valorizzato, io ho però bisogno di poter farsi che in apertura di maschera o quando lo decido io mi visualizzi i record ignorando il valore del campo Argomento. non so se possa semplificare la vita ma visto che i valori di argomento saranno tutti maggiori uguali a 0 potrei anche dare come valore predefinito al campo "argo" il valore -1 o un'altro... ciao aggiornamento: ho trovato una soluzione fantasiosa... ho aggiunto alla tabella un ulteriore campo numerico con valore predefinito 1 [argomento1] ho modificato la query di cui sopra aggiungendo il campo argomento1 e in OR con le due prededenti gli ho messo il criterio [Forms]![maschera1]![argo1]. la query diventa così: FROM Tab_promemoria WHERE (((Tab_promemoria.data_scad)=[Forms]![maschera1]![Testo30]) AND (((Weekday([data_scad]))-1)=1) AND ((Tab_promemoria.argomento)=[Forms]![maschera1]![argo])) OR (((Tab_promemoria.data_scad)=([Forms]![maschera1]![Testo30])+[avviso]) AND ((Tab_promemoria.argomento)=[Forms]![maschera1]![argo])) OR (((Tab_promemoria.data_scad)=[Forms]![maschera1]![Testo30]) AND (((Weekday([data_scad]))-1)=1) AND ((Tab_promemoria.argomento1)=[Forms]![maschera1]![argo1])) OR (((Tab_promemoria.data_scad)=([Forms]![maschera1]![Testo30])+[avviso]) AND ((Tab_promemoria.argomento1)=[Forms]![maschera1]![argo1])); funzionare funziona... ![]() Edited by compostabile - 28/Apr/2012 at 15:13 |
|
![]() |
|
Post Reply
|
|
|
Tweet
|
| Forum Jump | Forum Permissions ![]() You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |