Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Consulta A Apellidos Con Quotes(')

Estas en el tema de Consulta A Apellidos Con Quotes(') en el foro de Bases de Datos General en Foros del Web. Hola, estoy creando un aplicacion en Visual Basic 6.0 que hace consultas a una Base de datos Access. Uno de los módulos realiza una búsqueda ...
  #1 (permalink)  
Antiguo 27/01/2005, 21:12
Avatar de seudoCodigo  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Rico
Mensajes: 163
Antigüedad: 21 años
Puntos: 1
Consulta A Apellidos Con Quotes(')

Hola, estoy creando un aplicacion en Visual Basic 6.0 que hace consultas a una Base de datos Access. Uno de los módulos realiza una búsqueda por apellido. El problema es que los apellidos son en ingles y algunos utilizan el simbolo ( ' ) , por ejemplo: O'neal.

Esto ocasiona un error al realizar la consulta. Mi código es este:
Dim Busqueda as String
Busqueda=trim(txtBusqueda.text)
sql= "SELECT * " & _
"FROM Players " & _
"WHERE lastname LIKE '" & Busqueda & "' " & _
"ORDER BY firstname DESC"

Si digitan el el textbox Jordan:

SELECT *
FROM Players
WHERE lastname LIKE 'Jordan'
ORDER BY firstname DESC

Pero si el usuario digita en el text box O'neal, se veria de esta:

SELECT *
FROM Players
WHERE lastname LIKE 'O'neal'
ORDER BY firstname DESC

¿Cómo puedo evitar ese error sin tener que eliminar el el caracter( ' ) del apellido? Gracias anticipadas compañeros.
  #2 (permalink)  
Antiguo 28/01/2005, 03:39
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 7 meses
Puntos: 0
Cambia la forma de hacer la SELECT

sql= "SELECT * " & _
"FROM Players " & _
"WHERE lastname LIKE " & Chr(34) & Busqueda & Chr(34) & " " & _
"ORDER BY firstname DESC"

Así evitas el problema de la comilla simple, en SQL Server, lo podrías hacer reemplazando antes un comilla simple por dos comillas simples, pero no sé si eso mismo funciona en Access, nunca lo he probado

sql= "SELECT * " & _
"FROM Players " & _
"WHERE lastname LIKE '" & Busqueda & "' " & _
"ORDER BY firstname DESC"

sql = Replace(sql,"'", "''")

Un saludo
  #3 (permalink)  
Antiguo 28/01/2005, 20:20
Avatar de seudoCodigo  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Rico
Mensajes: 163
Antigüedad: 21 años
Puntos: 1
Teri muchas gracias por tu ayuda, todo funciono de maravilla con la primera solución que me diste. La segunda, pues seguire intentando y buscando mas info a ver si se puede en Acces o si hay otra forma.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:33.