Newsgroup: it.comp.appl.access
Titolo: preposizione Where

SELECT *
FROM  [tabella]
WHERE ...... (dove almeno un campo di tutti i record della tabella soddisfi 
[la condizione ])
si puo' fare? e se si', come?
ciao
Alxx

Alxx ha scritto:

temo di no...dovrai sbizzarrirti con un po' di OR
a meno che qualcuno mi smentisca..
ciao

Alxx ha scritto:

Non è sufficiente quanto dici...., almeno io non ho capito.
Cosa intendi con "almeno un campo di tutti i Records"....?
e con "Soddisfi la condizione"...? Quale condizione visto che non la
esponi...!
Volevi dire che hai una Maschera di ricerca con N COntrolli e che
vorresti usarli per effettuare una ricerca generica su qualsiasi Campo
della Tabella...?
Se è così si può fare in modo abbastanza comodo senza impazzire con
i condizionamenti del codice..., ma dammi conferma su quanto ho
capito..!
@Alex

capito..!
se mi dici come faccio qualche prova
ciao
Alxx

 wrote in message news:e79mtr$p15$1...@nnrp.ngi.it...

SELECT F1, F2, F3, F4, F5, F6 FROM T4
WHERE F1=18 OR F2=18 OR F3=18 OR F4=18 OR F5=18 OR F6=18;
T4 è la tabella, F1... F6 sono i campi, 18 è la condizione.
Adattala alle tue esigenze.
Bruno

Alxx ha scritto:

Forse sono un pò "Stagno" io, ma la stessa condizione va applicata a
tutti i
campi...?
C'è qualcosa che non torna in questo, prima di tutto hai formattato la
condizione in
modo TESTO, hai tutti i campi di tipo TESTO...?
Speriamo.
Allora supponi di avere la Form di ricerca associata, solo per avere un
Recordset
di riferimento.
Metti come Origine della Form(RecordSource) questo predicato:
SELECT * FROM NomeTabella WHERE 1=0
Quindi avrai una TextBox chiamata txtCriterio ed un Pulsante:
Dim fld as DAO.Field
Dim sSQL as string
For each fld in Me.RecordsetClone.Fields
    sSQL=sSQL & "[" & 
fld.name
 & "] LIKE *" & Me!txtCriterio & "* OR "
Next
sSQL=Mid$(sSQL,1,Len(sSQL)-4)
Ora in sSQL hai il Criterio formattato correttamente che puoi usare sia
come condizione
WHERE in una SQL oppure come Filtro da passare all'apertura di una Form
o Report.
@Alex


La cosa più veloce secondo me è crearti una mega campo di unione e ricercare
in quello
Unico problema possibile è che se ricerchi più di una parola potrebbe
capitare a cavallo di due campi, ma questa sarebbe proprio sfiga!!!
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it

 MAssimiliano Amendola
Dalle mie parti dicono che la Fortuna è Cieca, ma la sfiga ci vede
benissimo...!
@Alex

"Alessandro Baraldi"  ha scritto
Allora supponi di avere la Form di ricerca associata, solo per avere un
Recordset
di riferimento.
Metti come Origine della Form(RecordSource) questo predicato:
SELECT * FROM NomeTabella WHERE 1=0
Quindi avrai una TextBox chiamata txtCriterio ed un Pulsante:
Dim fld as DAO.Field
Dim sSQL as string
For each fld in Me.RecordsetClone.Fields
    sSQL=sSQL & "[" & 
fld.name
 & "] LIKE *" & Me!txtCriterio & "* OR "
Next
sSQL=Mid$(sSQL,1,Len(sSQL)-4)
Ora in sSQL hai il Criterio formattato correttamente che puoi usare sia
come condizione
WHERE in una SQL oppure come Filtro da passare all'apertura di una Form
o Report.
@Alex
___________________________
faro delle prove, grazie
Alxx 

"Alessandro Baraldi"  ha scritto
Allora supponi di avere la Form di ricerca associata, solo per avere un
Recordset
di riferimento.
Metti come Origine della Form(RecordSource) questo predicato:
SELECT * FROM NomeTabella WHERE 1=0
Quindi avrai una TextBox chiamata txtCriterio ed un Pulsante:
Dim fld as DAO.Field
Dim sSQL as string
For each fld in Me.RecordsetClone.Fields
    sSQL=sSQL & "[" & 
fld.name
 & "] LIKE *" & Me!txtCriterio & "* OR "
Next
sSQL=Mid$(sSQL,1,Len(sSQL)-4)
Ora in sSQL hai il Criterio formattato correttamente che puoi usare sia
come condizione
WHERE in una SQL oppure come Filtro da passare all'apertura di una Form
o Report.
@Alex
---------------------------------------------------
mi dice "impossible usare trova e sostituisci"
cosa avro' sbagliato?
Alxx

Alxx ha scritto:

Che messaggio strano...., ma hai provato ad eseguire un Debug e
vedere dove si pianta...?
In ogni caso essendo una stringa ho scordato gli APICI, ora è OK:
sSQL=sSQL & "[" & 
fld.name
 & "] LIKE '*" & Me!txtCriterio & "*' OR "
Ciao
@Alex

"Alessandro Baraldi"  ha scritto
Che messaggio strano...., ma hai provato ad eseguire un Debug e
vedere dove si pianta...?
In ogni caso essendo una stringa ho scordato gli APICI, ora è OK:
sSQL=sSQL & "[" & 
fld.name
 & "] LIKE '*" & Me!txtCriterio & "*' OR "
Ciao
@Alex
------------------------------------------------
non saprei...
se eseguo solo il codice mi appare una maschera che mi chiede
il nome della macro...
hai per caso un esempio in .mdb o sai dove posso trovarlo?
Alxx

 Bruno
interessante ma non fa al caso mio in quanto "18" non e' una
condizione standard;
di volta in volta la condizione dovrei poterla decidere io
tramite maschera
ciao
Alxx 

 wrote in message news:e7c8vm$987$1...@nnrp.ngi.it...

È del tutto evidente che 18 è un'esemplificazione...
Che andrà sostituito con una variabile:
"SELECT ... WHERE F1=" & NumVar & " OR F2=" & NumVar & "... ;"
ovvero
"SELECT ... WHERE F1='" & StrVar & "' OR F2='" & StrVar &  "'... ;"
Dove NumVar | StrVar = [NomeTextBox]
Bruno

 Alxx
Hai i riferimenti DAO..?
Sono 2 righe di codice che rendono flessibile al massimo la generazione
del criterio e seguendo il DEBUG non è possibile non si riesca a
capire l'inghippo.
In questi giorni se ho tempo pubblico qualcosa, ultimamente ci sono
spesso domande
relative alla composizione di criteri.
Ciao
@Alex

Prova questo Demo, non è esattamente quello che chiedi, ma è facile
da modificare.
http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=233
Ciao
@Alex

 Bruno
---------------------------------------------------
ti ringrazio, faro' delle prove .....non era pero' proprio del tutto 
evidente!
ciao
Alxx 

"Alessandro Baraldi" ha scritto
Prova questo Demo, non è esattamente quello che chiedi, ma è facile
da modificare.
http://www.alessandrobaraldi.it/DettaglioFaq.asp
?
Ciao
@Alex
------------------------------------
grazie, credo che l'esempio possa essere di aiuto,
ciao
Alxx 

cosa stranissima,
ho provato l'esempio e funzionava,
l'ho provato dopo mezz'ora e mi da il seguente errore:
-------------------------------------------
errore di run-time '5':
chiamata di routine o argomento non valida
--------------------------------------------
il debug si ferma su:
----------------------------------------------------
    sSQL = Mid$(sSQL, 1, Len(sSQL) - Len(Attr))
----------------------------------------------------
che sara' mai?
Alxx

in effetti capita quando non inserisci alcun parametro di ricerca!
si puo' evitare?
ciao
Alxx 

Alxx ha scritto:

Si hai ragione sostituisci con questo:
    If Len(sSQL) > 0 Then
        sSQL = Mid$(sSQL, 1, Len(sSQL) - Len(Attr))
    End if
Ciao
@Alex