Newsgroup: it.comp.appl.access
Titolo: probelma apostrofi

ho il seguente codice:
xvar = DLookup("codice", "ditte", "[Ditte]=" & "'" & Me![Ditta] & "'")
che mi va in errore se il campo me!ditta ha un apostrofo al suo interno;
come devo modificarlo per farlo andare bene?
Ciao Max

 ha scritto nel messaggio

Prima di tutto perche' non scrivi:
"[Ditte]='" & Me![Ditta] & "'")
?
Poi due soluzioni:
usi una funzione per raddoppiare gli apostrofi (sito comune)
 oppure usa questa sintassi:
"[Ditte]=" & chr(34) & Me![Ditta] & chr(34))
Sib

 ha scritto nel messaggio
news:zOZKa.261946$g92.5...@news2.tin.it...

Un'altra soluzione, oltre a quelle prospettate da Sib consiste nell'utilizzo
della funzione Replace per sostituire il singolo apice con il doppio laddove
viene trovato all'interno della funzione DLookup.
Ciao

 ha scritto nel messaggio
news:_o_Ka.125726$Ny5.3...@twister2.libero.it...

E se ci fosse una ditta con l'apostrofo.....????
@Alex.


ha detto doppio apice non  virgolette
replace(x,"'","''") 
e' corretta,  forse ha dimenticato di dire che replace va bene per versione >
A97
Come si fa a mettere un condizionatore al NG?
;<)
--
a.cara 
Togli qualcosa dall'email

 ;<)
E' già la seconda volta............!!!!!
Ma se nella stringa "Dall'Oglio Profilati" eseguo il Replace
mi diventa "Dall''Oglio Profilati" o sbaglio.......???
Funziona ugualmente se devo inserire questa stringa in
un criterio....................??????????????????????
Non ho avuto modo di provare, ma se mi ILLUMINATE...!
Poi se vuoi il Replace anche in A97 tie......!
Public Function SostString(S As String, s1 As String, s2 As String) As
String
'*****************************************************************
'Name      : SostString (Function)
'Purpose   : Sostituisce s2 a s1 nella stringa s
'Called by :
'Calls     :
'Inputs    :
'Output    :
'*****************************************************************
  Dim start As Long, appo As String, appoLeft As String, appoRight As
String, P As Long
  P = 1
  appo = S
  Do Until InStr(P, appo, s1) = 0
      P = InStr(P, appo, s1)
      If P > 1 Then
          appoLeft = Left(appo, (P - 1))
      Else
          appoLeft = ""
      End If
      appoRight = Right(appo, Len(appo) - (Len(appoLeft) + Len(s1)))
      appo = appoLeft & s2 & appoRight
  Loop
  SostString = appo
End Function
@Alex.

 ha scritto nel messaggio
news:l5aLa.127174$Ny5.3...@twister2.libero.it...

La funzione Replace effettivamente è presente da Access 2000 e comunque
funziona benissimo in tutti i casi vi siano apici nelle stringhe di ricerca.
Ovviamente ache nel caso che tu hai prospettato.
Ciao

 
[cut]
ciao Alex.
L'uso delle virgolette (") come delimitatore di stringa e' una
invenzione recente. Le stringhe per parecchi linguaggi e ambienti sono
delimitate da apice ('), per cui esiste il problema di 'Dall''Oglio',
che scritto come lo ho scritto io funziona.
Il "probelma" esiste anche per le virgolette: "Il ""Vecchio Mulino"" e'
un ottimo ristorante" e' corretto se si vuole racchiudere "Vecchio
Mulino" fra virgolette. Ovviamente nella frase, in questo caso, e'
presente anche un apice ma non essendo delimitatore di stringa, va bene
cosi', senza particolari accorgimenti.
--
a.cara
togli qualcosa dall'email

 ha scritto nel messaggio
news:3EFEF1F0...@blunet.it...

Chiedo scusa per una risposta unica, ma era assurdo dupplicarla
per Antonio e Alessandro.
Farò buon uso di questo suggerimento, non lo sapevo proprio, usando sempre
le Convenzioni ANSI io non ho mai avuto problemi con il chr(34) ma è vero
anche che non ho mai avuto questa esigenza con SQL_Server.
Con Access o MySQL mai nessuna difficoltà componendo la stringa tra
Virgolette.
La cosa funzione Replace a parte che come ti ho postato non è un problema
nemmeno per
A97 mi pare più veloce e meno a rischi errori.
Ma a questo punto quello che mi piacerebbe capire è se potrei avere dei guai
con altri Server_SQL o se il fatto che nìcon MySQL non ne abbia avuti è
magari un
caso.
Questo mi preme in modo particolare poichè devo migrare alcune applicazioni
da Access
a SQL_Server e in effetti mi avete messo la pulce nell'orecchio......!
Saluti ad Antonio e Alessandro.
@Alex.


Ciao Antonio, scusa ma leggi se puoi il post di risposta a Alessandro Cara č
indirizzato ad entrabi per non dupplicare il post ne ho fatto uno essendo
unico
l'argomento.
Grazie.
@Alex.

 Virgolette.
Il pl/sql (oracle) mi sembra che faccia le bizze (almeno le vecchie versioni)
con le virgolette.
Attenzione anche il chr(34) non ti salva da possibili errori.
Mio caso recente:
chr(34) & desccomune & chr(34)
qualcuno si e' inventato di scrivere questa desccomune: Citta" Sant"Angelo
(probabilmente proprio per il problema dell'apice ;<) )
ovviamente ho preso errore.
