Newsgroup: it.comp.appl.access
Titolo: Domandina

Salve,
            il campo parolechiave di una tabella contiene una o più parole
chiave separate da una virgola (potrebbe essere anche un altro carattere).
        Filtro usando una o più parole chiave unite con And e raramente con
Or e a volte anche con altri campi (operatore Like e ApplyFilter).
        Problema: in questo modo mi estrae anche i record la cui
parolachiave contiene il filtro usato (Es. se filtro con "africa" mi trova
anche "sudafrica").
        E' possibile ovviare a ciò ?    Non mi dite di creare altri campi
parolechiave e metterne una sola per campo sono veramente tante.......
Uso access97
    Grazie        Mirko
P.S.     per facilitare l'interrogazione ho usato una casella combinata non
associata che si alimenta da una tabella di appoggio autoaggiornabile dal
campo parolechiave di cui sopra. Si può fare in maniera più semplice ?

 anche "sudafrica").
Questo ti succederà usando like *africa*. Crea il tuo filtro usando  =
africa
Antonio

 anche "sudafrica").
Questo ti succederà usando like *africa*. Crea il tuo filtro usando  =
africa
Antonio
ma in questo modo si estraggono solo i record in cui nel campo parolechiave
"africa" si trova al primo posto. Se per esempio il contenuto del campo
parolechiave è: "asia, europa, africa" non lo trova.
Grazie comunque per la risposta
   Mirko

 wrote in message
9evf8h$erq$1...@pinco.nettuno.it...

E ho capito ma tu voi fa le nozze coi fichi o come si dice....
Se ti vai ad impelagare in una struttura in cui memorizzi le parole chiave
tutte nello stesso campo con un separatore, allora poi devi prepararti una
routine che ogni volta ti spezza la "stringona" e ti fa i controlli parola
per parola.
In pratica dovrai ciclare sulla stringa, usando le funzioni len mid left
ecc. , ad ogni separatore che trovi prendi la parola e con quella fai la
ricerca oppure crei una stringa sql che abbia criteri where = ad ogni parola
singola estratta dalla stringona
Antonio

 ha scritto nel messaggio
news:9evf8h$erq$1...@pinco.nettuno.it...

Premessa: il contenuto del campo deve terminare sempre con una virgola.
like "*africa,*"
--
Silvio
il sito comune di it.comp.appl.access:
http://www.sitocomune.com

 Antonio
Grazie,
                è ciò che temevo.  Comunque la metto è sempre un gran
casino: posso avere fino a 10 parole chiave per record prese da un elenco di
circa 150. Proverò a metterle in 10 campi e vedere cosa ne esce.
Grazie ancora  Mirko

 circa 150. Proverň a metterle in 10 campi e vedere cosa ne esce.
guarda che comunque non č cosě assurdo fare una routine che ti spezza la
stringa
prima_volta = true
sql_cmd = "SELECT * FROM miatab "
j = instr(str,",")
do until j = 0
  parola = left(str, j - 1)
  str = mid(str, j + 1)
  if prima_volta then
    sql_cmd = sql_cmd & "WHERE miocampo = '" & parola & "' "
  else
    sql_cmd = sql_cmd & "AND miocampo = '" & parola & "' "
    prima_volta = false
  end if
  j = instr(str,",") - 1
loop
L'ho buttata giů cosě senza testarla...ma dovrebbe giŕ andare bene
Antonio

 circa 150. Proverň a metterle in 10 campi e vedere cosa ne esce.
Io preferirei metterle in un'altra tabella con una relazione uno a molti tra
la tabella principale e questa seconda tabella.
