Newsgroup: it.comp.appl.access
Titolo: Query per cierca in archivio

Ciao a tutti!
Ho un database contenente alcune migliaia di records.
Vorrei lanciare una query per ricercare tutti i records che contengono in un
determinato campo almeno una delle voci comprese in un controllo testo tra
di loro separate da un "-".
In pratica:
ho un controllo testo contenente "bianco - rosso acceso - verde - giallo
paglierino"
Mi piacerebbe gaspare in un unico campo di un insieme di records per tirare
fuori tutti i records che contengono almeno uno dei colori sopra indicato
(alcuni records potrebbero avere campi che contengono più di un colore
insieme, ad esempio "verde - bianco").
E' possibile?
un grazie sentito a tutti!

 ha scritto nel messaggio
news:LItRa.44439$it4.1...@news1.tin.it...

GASPARE?!?!!??!
Antonio

 un grazie sentito a tutti!
Per selezionare in una query i record per i quali il valore di un campo
(colore) č contenuto in un elenco di valori (elenco di colori), nella
proposizione WHERE del codice SQL della query prova ad usare l'Operatore In
(vedi help); naturalmente nell'elenco di valori come separatore dovrai usare
una virgola e non un trattino e dovrai eliminare gli spazi tra un colore e
l'altro.
Se poi il campo sul quale effettui la ricerca di colori ne puň contenere piů
di uno, le cose si complicano abbastanza; non saprei dirti come impostare la
query di ricerca; a mio parere dovresti ricorrere ad un robusto codice VBA.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Antonio
Antò ma dove vivi??? Gaspàre, significa portare mirra.
E' l'unico esempio alla voce "mirra" sul vocabolario
Massimiliano

 ha scritto nel messaggio
news:pwuRa.6826$B8....@news.edisontel.com...

Quando si dice essere accurturato!!!
Antonio


Ma sė gaspare, ravanare, cercare,......
Ciao!


Mi pare proprio che l'operatore IN possa servirmi: l'ho usato in una query
con dei colori già indicati e funziona. Il problema ora è utilizzarlo
prendendo i colori da cercare separati da una virgola in una stringa o in un
controllo testo non associato: penso che si possa fare con i Dao (oggetto
Recordset?) di cui però so ben poco. C'è qualcuno che ha un'idea di come
fare?
Ciao!

 ha scritto nel messaggio
news:KPARa.47061$it4.1...@news1.tin.it...

Se hai una maschera Maschera1 con visualizzazione a maschere continue che ha
come origine record la tua tabella.
Se il campo della tabella che contiene il colore da selezionare si chiama
Pippo.
Inserisci nell'intestazione della maschera una casella di testo non
associata chiamata Cerca nella quale digiterai i colori da ricercare
scanditi da virgola.
A fronte dell'evento "Dopo agiornamento" della casella di testo Cerca prova
a generare il seguente codice VBA:
Me.Filter = "Pippo In (" & Me!Cerca & ")"
Me.FilterOn = True
Così facendo, nel corpo della maschera dovresti vedere solo i record che
contengono in Pippo uno dei colori presenti nella lista presente in Cerca.


 ha scritto nel messaggio
news:g2PRa.184772$lK4.5...@twister1.libero.it...

Dovrebbe andare bene al mio caso, però mi sono piantato su di un altro
problema!
L'operatore In equivale ad utilizzare tanti operatori Or tra i vari colori
da cercare: Or però non mi permette di trovare quei records contenenti
contemporaneamente più di un colore tra quelli richiesti.
And non va bene perchè mi tirerebbe fuori solo i records contenti tutti i
colori richiesti, altri operatori non mi pare ce ne siano: si può fare in
qualche maniera?
Ciao e grazie veramente, pian pianino sto imparando!

 ha scritto nel messaggio
news:6MSRa.94234$qa5.1...@news2.tin.it...

Come ti avevo detto precedentemente, se il campo può contenere anche due
colori, le cose si complicano.
Dovresti crearti una funzione che splitta i colori su due variabili separate
e poi verifica se sono presenti nell'elenco dei colori.
Forse è più semplice crearti una query basata sulla tabella ed inserire
nella tabella due campi calcolati che contengano i due colori, basare la
maschera su tale query ed impostando la proprietà Fiter della maschera
usando due operatori In (uno per ognuno dei campi che contiene i colori); il
risultato dei due operatori In li metterai in And o in Or a seconda come
meglio ti aggrada.


 ha scritto nel messaggio
news:pUTRa.185737$lK4.5...@twister1.libero.it...

Ciao!
Mi pare che tu abbia perfettamente inquadrato il mio problema: come al
solito ho però qualche problema ad inquadrare la tua seconda soluzione:
potresti dettagliarmela meglio?
In riferimento alla prima soluzione, quella più complicata (per me lo sono
entrambe alla grande), cosa vuol dire splittare?
Ciao e grazie!

 Ciao e grazie!



Ho finalmente capito cosa intendi. Il mio problema e perň che nella tabella
colori potrebbero eserci piů di due colori, anzi ce ne potrebbero essere
15-20!
A questo punto mi č venuto in mente questo.
Ammettendo di dover cercare tre colori e non di piů, non si potrebbe
lanciare 3 query di accodamento che accodino in una tabella transitoria  il
solo numero ID della tabella principale per poi, mettendola in relazione con
quella principale, aprire i soli record che interessano?
Purtroppo cosě si evidenzierebbe il difetto di Access di "memorizzare"  come
spazio i record della tabella transitoria anche se cancellati, e
bisognerebbe lanciare piů di una query!
Cosa ne pensi?
Ciao!

 ha scritto nel messaggio
news:1kOSa.5214$t92.1...@news1.tin.it...

Beh, se la tua situazione č che in ogni record hai un campo che puň
contenere anche 20 colori, penso che la cosa migliore sia abbandonare
l'ipotesi di risolvere il problema con una query ed organizzare una funzione
in VBA che, con due cicli annidati, va a verificare se ognuno dei 20 colori
siano contenuti nell'elenco dei colori; ma per dare una soluzione sensata
bisognerebbe cominciare a capire a cosa servono queste ricerche di 5 colori
all''interno di 20 colori: magari c'č da rivedere anche la struttura delle
tabelle.
