Newsgroup: it.comp.appl.access
Titolo: Problema apici doppi e sostituzione in una stringa

Ho un campo testo che mi identifica dei prodotti.
Quando faccio dei filtri o delle query, se all'interno del valore c'è
un doppio apice, mi dà un'errore.
C'è una soluzione a questo o devo sostituire il carattere doppio apice
con un simbolo tipo §.
In questo caso come posso fare sostituire all'interno della stringa il
simbolo delle virgolette?
Avevo pensato di usare instr per localizzare il simbolo, ma a me pare
sia un po' troppo macchinoso. Sono convinto che ci sia qualche comando
più semplice che non ho però trovato sulla guida. nessuna idea?
Ciao
Christian
chri...@ngi.it
http://web.tiscalinet.it/libertasmeratenuoto
http://asp4free.ravenna2000.it/libertasmerate

un doppio apice, mi dà un'errore.
IMO il metodo piu' pratico e' racchiudere il campo fra
chr(34):
"SELECT * FROM Pluto WHERE Pippo=" & chr(34) & var & chr(34)
--
Lorenzo Coronati
--
<<Il materiale sul NG non è di particolare 
qualità... cioè siti... magari in inglese in 
cui si possono trovare maggiori informazioni...>>
(Matteo Testoni, 24/05/2000)
--

"SELECT * FROM Pluto WHERE Pippo=" & chr(34) & var & chr(34)
Ma se nella stringa trovi un doppio apice dà errore
as.:  pippo"pluto
Il metodo che hai descritto preserva dagli errori dati dalla presenza
di un apice singolo (   '    )


as.:  pippo"pluto
Strano che ti dia errore!
Al massimo non ti dovrebbe estrarre niente...
Cmq se vuoi cercare valori che comprendono " devi usare like
e parsare la stringa mettendoci dei ?
Bai


 Christian
Già postato (un mesetto fa), rieccolo
'Proveniente da "Domain function builder", Microsoft.
'Io l'ho riciclato nelle mie add-in (MAE_Navigator, WhereMaker Wizard)
'Funziona benissimo
'FiltroValido = ParseInvalid(FiltroPotenzialmenteNonValido)
Function ParseInvalid(ByVal strParseString As String) As String
   ' -------------------------------------------------------------
   ' Parses single and double quotes from strings into their
   ' associated chr()'s to prevent parsing problems with criteria
   ' strings. Returns a string that includes delimiters
   ' if delimiters are needed.
   ' -------------------------------------------------------------
   Dim SwapPoint, SwapChars, i, SwapAscii, ParseLen
   ' -------------------------------------------------------------
   ' Set SwapChars to characters you want replaced.
   ' -------------------------------------------------------------
   SwapChars = Chr(34) & Chr(39)
   ' -------------------------------------------------------------
   ' Search for first special character.
   ' -------------------------------------------------------------
   For i = 1 To Len(SwapChars)
   SwapPoint = InStr(strParseString, Mid(SwapChars, i, 1))
      If (SwapPoint) Then
         SwapAscii = Asc(Mid(strParseString, SwapPoint, 1))
         ParseLen = Len(strParseString)
         Exit For
      End If
   Next
   Select Case SwapPoint
      Case 0
         ' -------------------------------------------------------------
         ' No special characters found, return string with surrounding
quotes.
         ' -------------------------------------------------------------
         ParseInvalid = Chr(39) & strParseString & Chr(39)
      Case 1
         ' -------------------------------------------------------------
         ' First character is a special character
         ' -------------------------------------------------------------
         If (ParseLen = 1) Then
            ParseInvalid = "Chr(" & SwapAscii & ")"
         Else
            ParseInvalid = "Chr(" & SwapAscii & ") & " &
ParseInvalid(Right(strParseString, ParseLen - 1))
         End If
      Case ParseLen
         ' -------------------------------------------------------------
         ' Last character is a special character...
         ' -------------------------------------------------------------
         ParseInvalid = ParseInvalid(Left(strParseString, ParseLen - 1)) & "
& Chr(" & SwapAscii & ")"
      Case Else
         ' -------------------------------------------------------------
         ' Middle character is a special character.
         ' -------------------------------------------------------------
         ParseInvalid = ParseInvalid(Left(strParseString, SwapPoint - 1)) &
" & Chr(" & SwapAscii & ") & " & ParseInvalid(Right(strParseString,
ParseLen - SwapPoint))
   End Select
End Function
--
{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}
{}{}
Un pò di pubblicità per il mio sito, su
http://utenti.worldonline.it/micheleamato
è possibile trovare wizards e add-ins per Access97:
Access Navigator 1.0
WhereMaker Wizard
sono solo due esempi
...
mi piacerebbe conoscere la tua opinione su
MAE_Navigator (in fase di beta test)
{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}
{}{}