Para evitar los problemas de que en los nombres que aparecen en los Insert Into etc, haya nombres con comillas y dobles comillas, por ejemplo Fernando O'Donell Public Function IncluyeDobleComillaSimple(Texto As String) As String Dim X As Long Dim Enc As Long Dim Ini As Long Enc = InStr(1, Texto, "'") Do While Enc > 0 Texto = Left(Texto, Enc - 1) & "''" & Mid(Texto, Enc + 1) Ini = Enc + 2 Enc = InStr(Ini, Texto, "'") Loop IncluyeDobleComillaSimple = Texto End Function Y cuando voy creando la sentencia lo hago haciendo llamadas a la misma, sería algo como: UPDATE Clientes SET Nombre = "'" & IncluyeDobleComillaSimple(Campo) & "' " WHERE .... Y funciona. HAPPY A raiz de esta pregunta, te diré que en mi opinión (y no soy el único que pienso así), lo mejor es usar parámetros, pues además de las comillas simples, nos podemos encontrar con más dificultades y para cada una de ellas hay que buscarle una solución individual. En cambio, con el uso de parámetros la solución es global para todos los casos. Por ejemplo, en el caso que nos ocupa, tenemos una tabla "tabla1" con un campo apellido al cual queremos añadir un valor, con DAO lo podríamos hacer así : Dim qdf As QueryDef Dim prm As String Dim cadSQL As String cadSQL = "PARAMETERS cognom Text; " & _ "INSERT INTO tabla1 (apellido) " & _ "VALUES (cognom)" Set qdf = CurrentDb.CreateQueryDef("", cadSQL) prm = "O'Neil" qdf.Parameters("cognom") = prm qdf.Execute Set qdf = Nothing