Programación General => Visual Basic 6.0 e inferiores => Bases de Datos => Mensaje iniciado por: nicagus en Lunes 22 de Agosto de 2011, 04:30
Título: consulta select sql con 2 condiciones where
Publicado por: nicagus en Lunes 22 de Agosto de 2011, 04:30
hola les cuento que estoy haciendo un programa en visual basic 6.0 que se relaciona con access y tengo una duda, necesito hacer una consulta SQL que tenga 2 condiciones, y no se como escribirlo.
Código: Visual Basic
PrivateSub Combo1_Click()
Data1.RecordSource = "SELECT * FROM Pagos WHERE Nombre_de_actividad='" & Combo1 & "'"And"where Numero_de_cliente=" & Val(Text3.Text)
Data1.Refresh
EndSub
O sea lo que quiero hacer es que cuando doy click en el combobox, en el ke están cargadas todas las actividades, ke solo me muestre las actividades que realiza un determinado cliente. Esos 2 campos los tengo en la misma consulta que se llama "Pagos". El código que puse arriba se que esta mal pero es para ke entiendan como lo quiero hacer y ke me digan por favor cual es la sintaxis correcta, desde ya muchas gracias.
Título: Re:consulta select sql con 2 condiciones where
Publicado por: ProfesorX en Lunes 22 de Agosto de 2011, 16:33
Bueno, tiene tiempo que no trabajo con Visual Basic 6, pero me parece que no puedes hacer una condicion que te busque en todos los elementos de un combobox automaticamente, tendrias que hacer un ciclo para iterar en cada elemento del combobox, y de esa forma construir tu consulta SQL. Aparte de eso, la sintaxis de tu sentencia SQL esta equivocada, no puedes poner 2 veces la clausula where dentro de la misma consulta, y ademas colocas el and fuera de la cadena de consulta. Un detalle adicional, no es recomendable concatenar cadenas para hacer la consulta, ya que hace tu consulta vulnerable a ataques de Inyeccion SQL (http://es.wikipedia.org/wiki/Inyeccion_SQL), lo mejor es hacer consultas parametrizadas, aunque no recuerdo como se hacen en Visual Basic 6, tendrias que averiguarlo por tu cuenta.
Te dejo un ejemplo de como deberias construir la consulta individual sin parametrizar, queda en ti hacer el ciclo para recorrer cada elemento del combobox, si esa es tu intencion, y averiguar como se hace una consulta parametrizada.
Data1.RecordSource = "SELECT * FROM Pagos WHERE Nombre_de_actividad='" & Combo1.Text & "' And numero_de_cliente=" & Val(Text3.Text)
Saludos :)
Título: Re:consulta select sql con 2 condiciones where
Publicado por: Javochin en Miércoles 31 de Agosto de 2011, 05:56
intenta esto:
Código: Visual Basic
PrivateSub Combo1_Click()
Data1.RecordSource = "SELECT * FROM Pagos WHERE Nombre_de_actividad='" & Combo1.text & "' And Numero_de_cliente=" & Int(Text3.Text)
Data1.Refresh
EndSub
Título: Re:consulta select sql con 2 condiciones where
Publicado por: F_Tanori en Viernes 2 de Septiembre de 2011, 20:33
Puedes utilizar las condiciones que desees utilizando los operadores logicos AND, OR, NOT etc. despues de la instruccion WHERE, no es necesario colocar WHERE en cada condicion.
Creo que tu idea es la siguiente :
incorrecto
Código: SQL
SELECT*FROM clientes WHERE cliente=1ANDWHERE nombre='juan'ANDWHERE apellido='perez'
Lo correcto seria
Código: SQL
SELECT*FROM clientes WHERE cliente=1AND nombre='juan'AND apellido='perez'