Newsgroup: it.comp.appl.access
Titolo: L'apostrofo nelle ricerche tramite i metodi Find

Salve a tutti.
L'abate Martino ebbe problemi con un punto, e un proverbio seppe
renderlo famoso. Che anche a me possa toccare quella sorte, dal
momento che ho problemi con l'apostrofo? Frizzi a parte, ho l'esigenza
di invocare il metodo FindFirst su un oggetto recordset di tipo
snapshot (diciamo "rst") per cercarvi all'interno la prima occorrenza
- se presente - di una stringa alfabetica (diciamo "stringa"). La
tabella di origine del set di record a cui attingere (diciamo
"Tabella") si compone di un'unica colonna, intestata come
"Descrizione" e contenente l'elenco completo delle parole ammissibili.
Quel che segue è il frammento di codice che, in fase di debugging, mi
crea fastidi:
      [...]
      Dim rst As Recordset
      Set rst = CurrentDb.OpenRecordset("Tabella", dbOpenSnapshot,
dbReadOnly)
      rst.FindFirst "Descrizione = '" & stringa & "'"
      [...]
La riga incriminata, in particolare, è la prima dal basso (trascurando
le ellissi). Tutto funziona, fintanto che "stringa" non contiene - fra
gli altri caratteri - un apostrofo. La ragione mi è pure evidente.
Così vi chiedo: avete idea di come possa ovviare al problema, senza
che debba ricorrere alla soluzione brutale che ho già in mente? Grazie
in anticipo,
S


"Descrizione = '" & Replace(stringa,"'","''") & "'"
@Alex

 in anticipo,
Non dare retta ad A. Baraldi. Ci piacciono le soluzioni brutali! ;<)
-- 
ac
y-1=x


wrote:

Oh bella ora mi sono incuriosito.... cosa sarà mai questo tentativo di
BrutalForce....?
L'importante è che sia veramente Brutale e non una via di mezzo...
P.S. X [A.C.] in serata ti aggiorno la posta con le ultime
@Alex

 gli altri caratteri - un apostrofo. La ragione mi è pure evidente.
Prova questa, a me il problema degli apostrofi l'ha risolto:
rs.FindFirst "Descrizione=" & chr$(34) & stringa & chr$(34)
ciao,
Panathos

 
salvo_tring...@libero.it
 ha scritto:

Si e quello delle virgolette...?
In ogni caso questa soluzione funziona solo con Access e non è il
massimo poi
doverci rimettere mano...
Ti suggerisco di usare la mia proposta sempre.
@Alex

 ha scritto nel messaggio 
news:1176638400.2...@y5g2000hsa.googlegroups.com...



@Alex
Ciao @Alex, siccome interessa anche me risolvere questo problema e non 
riesco a vedere la tua proposta, la puoi riproporre? Oppure mi puoi indicare 
dove la trovo?
Ciao e grazie


E' questa:
"Descrizione = '" & Replace(stringa,"'","''") & "'"
raddoppiare gli apici. Questa funziona anche con tutti gli altri dbms
-- 
ac
y-1=x

 ha scritto nel messaggio 
news:xCrUh.38581$tx6....@tornado.fastwebnet.it...

Grazie per l'indicazione e scusami se approfitto, ma siccome non sono in 
grado di implementare la soluzione suddetta mi potresti aiutare?
il codice seguente come lo dovrei cambiare?
Forms![Stazioni_Italia].RecordSource = "select Stazioni_Italia.* FROM 
Stazioni_Italia WHERE ((Stazioni_Italia.descr_comune) like '*" & Testo14 & 
"*') ;"
forse cosi:
Forms![Stazioni_Italia].RecordSource = "select Stazioni_Italia.* FROM 
Stazioni_Italia WHERE ((Stazioni_Italia.descr_comune) like '*" & replace(& 
Testo14 &, "'", "''")  "*') ;"
Grazie ancora

 ha scritto nel messaggio 
news:sCsUh.8085$uJ5.1...@twister2.libero.it...

Ho provato non va.
Bho, aiutooo
Ciao e Grazie tante 


La istruzione che hai scritto, se e' quella riportata, contiene un 
errore di sintassi la "&" prima e dopo testo14 non ci va ed una delle 
due, cosi' si risparmia, puoi metterla dopo la chiusura della replace
replace(Testo14 , "'", "''") &
-- 
ac
y-1=x

 ha scritto nel messaggio 
news:cltUh.38713$tx6....@tornado.fastwebnet.it...

Non ho mai visto un NG con cosi' tanti esperti.
bravo davvero.
Grazie, funziona alla grande.
Ciao

 > messaggionews:xCrUh.38581$tx6....@tornado.fastwebnet.it...

Io direi che hai provato e non sei riuscito a farla funzionare...
facendo confusione con la concatenazione delle stringhe in modo
pedestre...!
Se non la composizione delle stringhe non ti è familiare al
massimo.... perchè rendi tutto ancora più incasinato...?
Nella tua proposizione non ti pare che manchi un & di congiunzione
finale...?
Non ti apre di aver messo degli & di troppo nella Funzione Replace...?
Ti funziona quel cavolo di DEBUG...?????
Dim strSQL  as String
Dim strValue as string
strValue= replace(Me!Testo14.Value , "'", "''")
strSQL="SELECT * FROM Stazioni_Italia " & _
            "WHERE [descr_comune] LIKE '*" & strValue & "*')
Perchè mai avete fretta di scrivere tutto su una RIGA e poi non ci
capite nulla nemmeno voi....????
Vi pagano in modo InversamenteProporzionale al Numero di Righe che
scrivere...?
Mi piacerebbe vedervi mettere le mani su del Vostro codice tra 4÷5
anni..... sono dolori...!
@Alex

 ha scritto nel messaggio 
news:1176663218.3...@q75g2000hsh.googlegroups.com...










@Alex
 @Alex ai pienamente ragione, sapessi quanto vorrei essere bravo come te.
Ciao sei forte

 ha scritto nel messaggio 
news:1176663218.3...@q75g2000hsh.googlegroups.com...










@Alex
Dimenticavo grazieeeeeeeeeeeeee, faro tesoro dei tuoi consigli.
Ciao

Hai ricevuto l'obolo...?
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.alessandrobaraldi.it
---------------------------------------------------------------------------

 Ti suggerisco di usare la mia proposta sempre.
Grazie.
ciao,
Panathos