Visual Basic - Problema con sentencias SQL y VB6

Life is soft - evento anual de software empresarial
   
Vista:

Problema con sentencias SQL y VB6

Publicado por nuskes (7 intervenciones) el 21/04/2009 12:14:25
Primero de todo muy buenas, es la primera vez que escribo aunque hace tiempo que os sigo y espero que me podais ayudar.

Pues bien yo tengo el siguiente codigo en el formulario:

[QUOTE]Dim BDD As Database 'Objeto para manejar la base de datos

Dim TBL As Recordset 'Objeto para manejar la Tabla
Dim SQL As String

Private Sub Command1_Click()

Set BDD = OpenDatabase(App.Path & "pelu.mdb") 'Abre la base de datos

buscar = Command1.Caption

SQL = "select Descripcion from peluqueria where descripcion like = '" & buscar & "'"

Set TBL = BDD.OpenRecordset(SQL)
TBL.MoveFirst
Form1.List1.AddItem TBL("Descripcion")

End Sub

[/QUOTE]

He mirado por todos sitios y en teoria esta es la manera de hacerlo, pero no me funciona, da error en la sentencia SQL y el error es el siguiente:

[I]Error '3075' en tiempo de ejecucion: Error de sintaxis (falta operador) en la expresion de consulta 'descripcion like = 'Lavar,teñir,peinar" [/I]

A ver si alguien me puede ayudar, muchas gracias y saludos!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con sentencias SQL y VB6

Publicado por Pedro Luis (878 intervenciones) el 21/04/2009 13:24:07
En principio creo que te sobra el =, seria Like lo que sea.
Si son varias cosas a buscar tendrias que usar OR, Descripcion Like wrwrw Or descripcion Like eertet Etc.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con sentencias SQL y VB6

Publicado por nuskes (7 intervenciones) el 21/04/2009 13:47:47
Lo he probado y ahora me dice que no coinciden los tipos.....

muchas gracias y saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con sentencias SQL y VB6

Publicado por P3L30N2009 (701 intervenciones) el 21/04/2009 15:09:59
Bueno, además de lo que te dijeron antes de suprimir el signo igual faltarían los caracteres de máscara, en este caso sería el esterisco (*)

"select Descripcion from peluqueria where descripcion like = '*" & buscar & "*'"
esto seleccionaría todos los registros en cuyo campo "descripcion" encontrara el texto "Lavar,teñir,peinar" (que al parecer es el Caption del Command1), pero no cada uno de ellos.

Hay otras formas de hacerlo:

Con una clausula condicional WHERE:
sql = "Select Descripcion From peluqueria Where descripcion = 'Lavar' OR descripcion = 'teñir' OR descripcion = 'peinar'"

O mas sencillo, con el operador IN:
sql = "Select Descripcion From peluqueria Where descripcion IN ('Lavar', 'teñir', 'peinar')"

Aunque estas dos consultas arrojarían solamente el campo descripcion (lo que no tiene demasiada lógica), si quieres recuperar todos los campos de la consulta, sustituye:

"Select Descripcion From... " por "Select * From..."
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con sentencias SQL y VB6

Publicado por nuskes (7 intervenciones) el 21/04/2009 15:30:11
Muchas gracias primero de todo, pero he añadido los asteriscos y el error es el mismo

saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con sentencias SQL y VB6

Publicado por P3L30N2009 (701 intervenciones) el 21/04/2009 15:36:56
Me parece que no has leido bien la respuesta:

"esto seleccionaría todos los registros en cuyo campo "descripcion" encontrara el texto "Lavar,teñir,peinar" (que al parecer es el Caption del Command1), pero no cada uno de ellos."

No te compliques mas la vida y pon la última opción:

sql = "Select Descripcion From peluqueria Where descripcion IN ('Lavar', 'teñir', 'peinar')"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con sentencias SQL y VB6

Publicado por nuskes (7 intervenciones) el 21/04/2009 15:40:24
Ya pero es que el contenido del registro de la base de datos es "Lavar,teñir,peinar", por lo tanto necesito buscar exactamente ese texto ya que es un pack que ofrece la peluqueria,

muchas gracias y saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con sentencias SQL y VB6

Publicado por P3L30N2009 (701 intervenciones) el 21/04/2009 16:02:27
Eso ya es otra cosa, escribe la consulta así:
sql = "SELECT * FROM Peluqueria WHERE descripcion ='" & buscar & "'"

Ahora, eso sí buscar tiene que ser exactamente lo mismo que el registro de la tabla (no valdría "Lavar, <espacio> teñir...)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con sentencias SQL y VB6

Publicado por nuskes (7 intervenciones) el 21/04/2009 16:06:02
Muchas gracias!!!!!!! llevo 3 dias con esto ya me va perfecto muchas gracias!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar