Newsgroup: it.comp.lang.visual-basic
Titolo: Doppi apici su metodo FindFirst

Ciao a tutti
In un mio programma utilizzo questa sintassi per ricercare se un articolo è
già esistente in archivio:
MioRecordset.FindFirst "Art1=" & Chr(34) & Me.TXTArt1.Text & Chr(34)
Tutto funziona a dovere tranne quando TXTArt1.text contiene i doppi apici
( " quello sopra al 2)
Ho capito il perché infatti al metodo viene passata questa stringa di
ricerca:
Art1="""
e giustamente non gli sta bene...
ho provato a sostiruire chr(34) con l'apostrofo ( ' quello sotto ) in modo
che la stringa passata sia:
Art1='"'
effettivamente così funziona ma si capovolge il problema quando TXTArt1.text
contiene l'apostro.
Fino ad ora non ho trovato un alternativa valida. Cosa mi consigliate? Come
avete risolto o come risolvereste voi questo problema?
~~~~~~~~~~~~~~~~
Andrea Fabbrucci
anfa...@tin.it
Fax: 0761 0131187
ICQ 170722520
~~~~~~~~~~~~~~~~

 ( " quello sopra al 2)
che bello: un problema nuovo.......;-)
le soluzioni sono molteplici, io solitamente scrivo:
MioRecordset.FindFirst "Art1='" & Me.TXTArt1.Text &  "'"
(prima della chiusura della stringa c'è un apice singolo, come in mezzo ai
due doppi apici di chiusura, lo dico perchè potrebbe non essere così facile
da vedere)
Ovviamente, prima di questa istruzione, sostituisco tutti gli apici
contenuti in me.txtart1.text con una coppia di apici singoli
Salutoni
Sergio

 contenuti in me.txtart1.text con una coppia di apici singoli
Ma cosi facendo non troverai mai il record giusto!!!
Almeno se ho capito bene quello che fai!
Es.
    nel recordset c'č un articolo che ha come Art1="L'albero" (senza doppi
apici)
    se io cerco l'articolo L'albero secondo il tuo metodo (sostituendo cioč
' con ") cercherň:
L"albero
che logicamente non troverň mai!!!!

[cssoft]
Ovviamente, prima di questa istruzione, sostituisco tutti gli apici
contenuti in me.txtart1.text con una coppia di apici singoli
[keepme]
Ma cosi facendo non troverai mai il record giusto!!!
Almeno se ho capito bene quello che fai!
Es.
    nel recordset c'è un articolo che ha come Art1="L'albero" (senza doppi
apici)
    se io cerco l'articolo L'albero secondo il tuo metodo (sostituendo cioè
' con ") cercherò:
L"albero
temo di non essermi spiegato bene: non sostituisci l'apice singolo con un
apice doppio, ma con due apici singoli (lo so, è la stessa cosa che ti ho
detto nel post precedente, ma non trovo altro modo di esprimermi), quindi
non è
L"albero
ma
L''albero
il raddoppio dell'apice, nella sintassi sql, indica che non si vuole usare
l'apice come terminatore di stringa, ma proprio come "carattere apice", un
po come il raddoppio dei doppi apici nelle stringhe in basic
Secondo me funziona....
Salutoni
Sergio

 ha scritto

gia'...
text1.text = replace(text1.text, "'", "''")
keepme, fai reply su questo post e sposta il cursore in quella specie
di discorso di woodstock a snoopy qui sopra fra le parentesi...
--
ciao, j.
www.sundaysw.com

 po come il raddoppio dei doppi apici nelle stringhe in basic
Sto seguendo con interesse questo thread, perchè Keepme diceva di avere
problemi con il carattere " (doppi apici, nella tastiera sopra al 2), e non,
come spesso accade, con l'apicino.
Secondo me in questi ultimi due post non vi siete capiti reciprocamente.
A me comunque suona nuova che dia problemi il doppio apice. Tuttavia, non
usando mai Findfirst, sto seguendo con interesse....
alberto the lurker...

 come spesso accade, con l'apicino.
mica solo:


 usando mai Findfirst, sto seguendo con interesse....
No, ricordo qualcosa, ma non ho il link (cercherò).
Se il doppio apice è usato come delimitatore, crea problemi un doppio (o
più) apice all'interno. Analogamente all'apice singolo quando questo è usato
come delimitatore.
Nel suo primo post Keepme scrive, infatti:
MioRecordset.FindFirst "Art1=" & Chr(34) & Me.TXTArt1.Text & Chr(34)
usando palesemente il doppio apice (Chr(34)) come delimitatore.

 contiene l'apostro.
Vab, ci, salut ja.
;-)
j.risparmioso

 usando mai Findfirst, sto seguendo con interesse....
il fatto è che access permette una doppia sintassi per la ricerca di
stringhe con il metodo find: quella comunemente usata del singolo apice o
quella del doppio apice. entrambe hanno lo stesso problema: se il carattere
utilizzato per delimitare la stringa è presente all'interno della stessa
rompe i maroni....
keepme è evidentemente abituato a lavorare con i doppi apici per terminare
le stringhe (chr(34)), e quindi aveva il problema se all'interno della
stringa da cercare era presente tale carattere. Io gli ho consigliato di
passare all'altra sintassi, con relativo accorgimento per aggirare il nuovo
problema, perchè mi sembra di aver notato che funziona meglio quando si
inseriscono testi RTF all'interno di un campo memo, mi sembra insomma che
sia quella che funziona nel maggior numero possibile di casi, anche se in
questo momento non gli serviva.
Il suo problema era probabilmente risolvibile mantenendo la sintassi a cui
era abituato, raddoppiando i doppi apici all'interno della stringa di
ricerca.
Salutoni
Sergio

 ha scritto

no, j che citava.

 no, j che citava.
Pardon, visto.

 quella del doppio apice.
Adesso mi è tutto chiaro.
Pensa un po' cosa si scopre....
Ciao
Alberto

 ha scritto nel messaggio
news:EZct9.63117$RO.15...@twister1.libero.it...

se vuoi aggiungo una cattiveria totalmente gratuita: visto che consigli
l'utilizzo del wizard di access, prova a fare una query in cui ricerchi
qualcosa in un campo stringa, e guarda che delimitatori usa nel comando sql
generato.....
(però non ti offendere, trovo che il tuo consiglio sia in effetti
preziosissimo)
Salutoni
Sergio

 preziosissimo)
SELECT Materiali.Materiale
FROM Materiali
WHERE (((Materiali.Materiale)="ci""ao"));
E' vero.
Visto che io Access proprio non lo uso mai (o meglio, non piů di un 3-4%
delle volte), questa cosa non la sapevo.
Perň, se avessi avuto io il problema, sarei partito sicuramente avviando il
wizard
:-))
Ciao
Alberto

 ha scritto nel messaggio
news:mXbt9.19411$aL4.5...@news1.tin.it...


 wizard
Cosa vorresti dire con questo?

 Cosa vorresti dire con questo?
Spiegavo a Sergio perchč non mi sono offeso per il suo commento.
E tu cosa volevi dire?
Alberto

Scusa non avevo capito a cosa ti riferissi!
~~~~~~~~~~~~~~~~
Andrea Fabbrucci
anfa...@tin.it
Fax: 0761 0131187
www.andreafabbrucci.it
ICQ 170722520
~~~~~~~~~~~~~~~~