Newsgroup: it.comp.lang.visual-basic
Titolo: Ricerca SQL FIND in VB6

La domanda ha sicuramente una risposta semplice, ma io non riesco a trovarla
ed è per questo che chiedo agli esperti di questo NG.
Ho un DB Access col campo NOMINATIVO come campo chiave.
Quasto campo contiene il cognome e nome delle persone da me memorizzate.
Per cercare un nominativo inserisco interamente o parte del cognome/nome.
Col seguente comando non avevo nessun problema.
 
rsDB.Find "NOMINATIVO LIKE '" & txtCAMPO(CNOMINATIVO) & "%'"
Oggi volevo inserire un nominativo es. "D'ANGELO Mario".
Col carattere ' nel cognome il programma si ferma e mi segnala "errore di
runtime 3001 - gli argomenti non sono di tipo valido, non sono compresi
nell'intervallo consentito o sono in conflitto".
Sicuramente il problema è legato al carattere ' .
Qualcuno sa come ovviare a questo incoveniente.
Aggiungo che inserendo manualmente il nominativo all'interno del DB non si
verifica nessun errore. Il problema nasce esclusivamente durante la suddetta
istruzione FIND.
Grazie in anticipo.
Antonio.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 trovarla ed è per questo che chiedo agli esperti di questo NG.
stavo scrivendo il solito post, tra l'ironico e l'incazzato, per segnalarti
che il tuo problema è noto, stranoto e strarisolto, ma è così noto che
faccio persino fatica a trovare qualcosa di originale per dileggiarti.
comunque, il tutto si risolve raddoppiando l'apice singolo. se scritta in
questo modo ti risulta comunque difficilmente interpretabile, te la metto
per esteso:
rsDB.Find "NOMINATIVO LIKE '" & replace(txtCAMPO(CNOMINATIVO),"'", "''") &
"%'"
al di là di tutto, impara a cercare con google, ti risparmierà un sacco di
problemi.
-- 
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo


Ciao. Scrivi:
rsDB.Find "NOMINATIVO LIKE '" & Chr(34) & txtCAMPO(CNOMINATIVO) & "%'" &
Chr(34)
Chr(34) è il codice dell'apice singolo. In questo modo inserisci l'apice
delimitatore nella stringa.
Questo è un problema comunissimo, ma chissà perché questa semplice soluzione
non viene mai suggerita da nessuno. Mah...


 Chr(34) è il codice dell'apice singolo. In questo modo inserisci
Chr(34) è il codice del doppio apice (")
-- 
3st3b4n
www.seber.it
Questo post è stato scritto con bit riciclati 


...oops, giusto. Chr(39) è il codice dell'apice singolo. Comunque va usato
il Chr(34) nelle stringhe SQL.


 
Ecco perche' non viene suggerita da nessuno! ;-)
	maxx
-- 
NOSPAM: Rimuovere i trattini dallo username!
Cut hyphens from my username!

           
Non mi dire che adesso mi tocca modificare migliaia di linee di codice. 
Ecco perche' i miei programmi non funzionano.


 maxx
...ehehehehe, cose che succedono lontano da casa...


 fuori casa e vado a memoria...
a parte il 34 o il 39, mi sa che la sintassi da te suggerita non funzioni.
a dire il vero non l'ho neanche provata, ma penso proprio che tu volessi
suggerire quest'altra
"nomecampo like ""%" & variabilestringa & "%"""
che č il condensato di
"nomecampo like " & chr$(34) & "%" & variabilestringa & "%" & chr$(34)
che funziona (almeno in access), ma che non fa altro che spostarti il
problema dall'apice al doppio apice: se la stringa di ricerca ne contiene
uno sei a punto a capo, e ti tocca raddoppiarlo.
č ben vero che č piů probabile trovare un apice singolo che uno doppio, ma
se vuoi fare le cose fatte bene...
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Chiedo scusa a tutti
Ho trovato lo stesso suggerimento in post precedenti.
Grazie per la pazienza......



 
