Newsgroup: it.comp.appl.access
Titolo: apici e virgolette...

Ciao!
Ho un problema con una stringa SQL:
strSQL = "[NomeAzienda] = """ & Me.ElencoAziende.Column(0, intSelezionato) & """"
cosě com'č scritta, la variabile Me.ElencoAziende puň contenere anche gli apici
e non crea nessun tipo di problema.. 
perň poco fa mi sono accorto che non va bene
se la variabile contiene delle virgolette doppie " , generando un errore di run-time
e dicendo che manca un operatore nell'espressione della query...
E' evidente che l'errore viene causato dalla presenza di virgolette doppie.
Come si puň ovviare a questo problema?
grazie in anticipo!  ;-)
      luca

Woodrov ha scritto:

se sei su versione > di A97
puoi provare cosi'
strSQL = "[NomeAzienda] = """ & replace(Me.ElencoAziende.Column(0,
intSelezionato),'"','""') & """"
--
a.cara
togli qualcosa dall'email

intSelezionato),'"','""') & """"
Ho Access 2k...
ho provato la tua espressione ma ora mi da un errore di sintassi!
In particolare mi dice che l'errore può trovarsi nello schema sintattico della funzione
Replace... Credo che non gli vadano bene gli apici che hai messo per indicare la stringa da
sostituire e quella con cui deve essere rimpiazzata... almeno credo!
Ho provato delle varianti ma non va!
Anche se andasse bene sintatticamente, perché sostituire le virgolette con due virgolette???
grazie!  ;-)
     luca

 intSelezionato),'"','""') & """"
porcamiseria!
questa cosa non la sapevo...
e io che mi ero scritto una funzione apposta!
bhe.. io la posto sperando che magari possa tornare utile agli utenti di
access97.. anche se probabilmente se usano ancora ac97 è perchè sanno il
fatto loro. :)
Public Function CorreggiStringa(Stringa As String, Optional
tipoCorrezioneDafare As String = "Standard")
'consente di riformattare una stringa sostituendovi caratteri non graditi
    Dim i, j, k As Integer
    j = Len(Stringa)
    Select Case tipoCorrezioneDafare
       Case "Standard"
       'consiste nel sostituire tutte le occorrenze di " con ''
        For i = 1 To j
            k = InStr(i, Stringa, """")
            If k = 0 Then: Exit For
            Stringa = left(Stringa, k - 1) & "''" & Mid(Stringa, k + 1)
            j = Len(Stringa)
           Next i
       Case Else
        Stringa = ""
       End Select
    CorreggiStringa = Stringa
End Function
nella speranza di non aver perso il mio tempo
mandi

correggo:
 Public Function CorreggiStringa(Stringa As String, Optional
 tipoCorrezioneDafare As String = "Standard")> 'consente di riformattare una
stringa sostituendovi caratteri non graditi
     Dim i, j As Integer
     j = Len(Stringa)
     Select Case tipoCorrezioneDafare
        Case "Standard"
        'consiste nel sostituire tutte le occorrenze di " con ''
         For i = 1 To j
             i = InStr(i, Stringa, """")
             If i = 0 Then: Exit For
             Stringa = left(Stringa, i - 1) & "''" & Mid(Stringa, i + 1)


 Anche se andasse bene sintatticamente, perché sostituire le virgolette con due virgolette???
perche' l'sql ne sopprime una.
E tu perche' ne metti 3 o 4?   ;<))
--
a.cara 
Togli qualcosa dall'email

E tu perche' ne metti 3 o 4?   ;<))
YEAH!!!!
Funzia alla grande!!!
thanks so much!  :))
      luca