Newsgroup: it.comp.appl.access
Titolo: Una domanda facile facile sull' operatore LIKE

Se faccio :
select * from T where T.nome like 'ciccio*'
mi trova tutte queste :
ciccio
cicciobello
cicciobrutto
...
Cioe' in pratica mi trova tutti i record di T che
il cui campo [nome] ha contenuto che comincia con "ciccio"
Ma se il campo contiene "ci", lo salta. Deve contenere *almeno*
"ciccio", ma non meno di "ciccio".
Io invece devo fare una query che faccia esattamente l' inverso
(il problema duale) e cioe' :
se nome = "ciccio" + qualcosa NON lo trova
se nome = "ciccio" lo trova
se nome = "cicci" lo trova
se nome = "cicc" lo trova
...
Se nome = "c" lo trova
Se nome = "" (vuoto) lo trova
Si puo ' fare con una query ?
Non sara' per caso che basta scrivere
select * from T where NOT (T.nome like 'ciccio*') ???
Essendo il duale, dovrebbe funzionare. Ma GIURO che
m' e' venuto in mente solo ora mentre che scrivevo ! :D
Ormai ci sono, e posto.
Un abbraccio affettuoso a tutti.


Il problema è che funziona con tutto, pure con "abcdefg"
imho devi scrivere una funzione, con un SELECT CASE che contenga tutte 
le opzioni di cui sopra.

 ha scritto nel messaggio 
news:f4a7ae58-11cb-432d...@i28g2000yqa.googlegroups.com...

Se la query deve fare l'inverso, inverti gli operandi della Like
----
select * from T where "ciccio" like [nome] & "*"
----
Ciao
Giorgio Rancati 

 ----
Si, c' avevo pensato, ma non funziona.
Perche' in realta' "lui" guarda sempre
se  "ciccio" sta dentro [nome].
Cmq grazie. Anche a Nuts.

 ha scritto nel messaggio 
news:84698f61-4ef7-4528...@d37g2000yqm.googlegroups.com...

no! lui guarda se Nome sta dentro a Ciccio.
Io ho provato e a me funziona.
Ciao
Giorgio Rancati 

 Io ho provato e a me funziona.
Ma davvero ?!? E che diamine !
Io ho scritto, papale papale :
' -------------------------------
Q = _
"select codice, descrizione from " & _
" tipi where '" & gruppo & "*' like [gruppo_]; "
' e poi ho dato in pasto la Q ad un combobox :
Q_combo.rowsource = Q
' --------------------------------
... Niente !

    
Scusa ma scrivi una cosa diversa da questa
select * from T where "ciccio" like [nome]&  "*"
dovresti scrivere
select
	codice,
	descrizione
from tipi
where
	'gruppo' like [gruppo_]&  "*"
Ciao
Daniele


Cosi' addirittura mi va in errore.

 ha scritto nel messaggio 
news:675074f9-709c-4819...@d37g2000yqm.googlegroups.com...

se gruppo è la variabile che contiene la costante e  [gruppo_] è il nome del 
campo, fai così.
----
Q = _
"select codice, descrizione from " & _
" tipi where '" & gruppo & "' like [gruppo_] & '*'; "
----
Ciao
Giorgio Rancati

 " tipi where '" & gruppo & "' like [gruppo_] & '*'; "
Macche'. Niente.
Scusa :
la variabile gruppo contiene "X.01.01"
il campo gruppo_ contiene "X.01"
... Mica lo vede. Non c'e' verso.
Eppure dovrebbe, perche' tu dici che
controlla se gruppo_ e' in gruppo.
E lo e', come vedi.  BOH. :-(

 E lo e', come vedi.  BOH. :-(
Ciao,
controlla bene la stringa SQL contenuta nella variabile Q, stampala nella 
finestra immediata e postala.
Qui un piccolo esempio di come lavora la query.
http://cid-ac66fd4806f55617.office.live.com/self.aspx/Pubblica/msaccess/Db/TestLike.mdb
Ciao
Giorgio Rancati

variabile Q, stampala nella finestra immediata e postala.
Subito ! Ecco qua :
' -----------------------------------------
' questo il codice che prepara la stringa :
Dim Q_Sorgente_Tipi as string
Q_Sorgente_Tipi = _
              "select codice_,descrizione_ from tipi_pratiche " & _
              "where '" & G_Addetto_Gruppo & "' Like [gruppo_] & '*';"
msk.tipo_pratica_.RowSource = Q_Sorgente_Tipi
' questo il risultato della stringa fornito dal debug :
"select codice_,descrizione_ from tipi_pratiche where 'X.01.01' Like
[gruppo_] & '*';"
' infine, questo il contenuto del campo
"X.01.01"
' ---------------------------------------
come vedi, produce (mi sembra) la stringa
query come dovrebbe, e la da in pasto al
combobox di nome tipo_pratica.
Io davvero non capisco : non e' che il problema si ha
per il fatto che la query la interpreta il combobox,
che magari ha qualche limitazione ?
Grazie per la pazienza.

 che magari ha qualche limitazione ?
no, a meno che tu non veda delle righe vuote nella casella combinata, in 
questo caso e se hai Access 2003, il problema potrebbe essere quello 
descritto in questo articolo.
----
Combo box controls and list box controls display no value or incorrect 
values in Access 2003 after you install Office 2003 Service Pack 3
http://support.microsoft.com/kb/945280/en-us
----
In ogni caso puoi sempre testare la stringa SQL ottenuta dal debug 
copiandola in una nuova query.
Ciao
Giorgio Rancati