SQL para consultar text en el acceso con un apóstrofo en él

Por favor ayúdenme con esto porque parece que no puedo hacerlo bien

Estoy intentando consultar un nombre (Daniel O'Neal) en los nombres de columna tblStudents en una database de acceso; sin embargo, acceder a los informes presenta un error de syntax con la instrucción:

Select * from tblStudents where name like 'Daniel O'Neal' 

debido al apóstrofo en el nombre.

¿Cómo supero esto?

Gracias de antemano

Usted escapa ' duplicándolo, entonces:

 Select * from tblStudents where name like 'Daniel O''Neal' 

Tenga en count que si acepta "Daniel O'Neal" de la opinión del usuario, la cita interrumpida es un problema grave de security. Siempre debe desinfectar la cadena o usar consultas parametrizadas.

Cuando incluye un literal de cadena en una consulta, puede encerrar la cadena en comillas simples o dobles; El motor de database de Access aceptará cualquiera. Por lo tanto, las comillas dobles evitarán el problema con una cadena que contenga una sola comilla.

 SELECT * FROM tblStudents WHERE [name] Like "Daniel O'Neal"; 

Si desea mantener las comillas simples alnetworkingedor de su cadena, puede duplicar la comilla simple dentro de ella, como se menciona en otras respuestas.

 SELECT * FROM tblStudents WHERE [name] Like 'Daniel O''Neal'; 

Observe los corchetes que rodean el nombre . Usé los corchetes para disminuir la posibilidad de confundir el motor de la database porque el nombre es una palabra reservada .

No está claro por qué está usando la comparación Me gusta en su consulta. En base a lo que has mostrado, esto debería funcionar en su lugar.

 SELECT * FROM tblStudents WHERE [name] = "Daniel O'Neal"; 

Escápese del apóstrofo en O'Neal escribiendo O''Neal (dos apóstrofes).

… mejor es declarar el nombre como varible, y preguntar antes si hay un apóstrofo en la cadena:

p.ej:

DIM cadena YourName

YourName = "Daniel O'Neal"

  If InStr(YourName, "'") Then SELECT * FROM tblStudents WHERE [name] Like """ Your Name """ ; else SELECT * FROM tblStudents WHERE [name] Like '" Your Name "' ; endif