Programación General > Bases de Datos
consulta select sql con 2 condiciones where
(1/1)
nicagus:
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 ---Private Sub Combo1_Click() Data1.RecordSource = "SELECT * FROM Pagos WHERE Nombre_de_actividad='" & Combo1 & "'" And "where Numero_de_cliente=" & Val(Text3.Text) Data1.Refresh End Sub
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.
ProfesorX:
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, 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.
--- Código: ---Data1.RecordSource = "SELECT * FROM Pagos WHERE Nombre_de_actividad='" & Combo1.Text & "' And numero_de_cliente=" & Val(Text3.Text)
--- Fin del código ---
Saludos :)
Javochin:
intenta esto:
--- Código: Visual Basic ---Private Sub Combo1_Click()Data1.RecordSource = "SELECT * FROM Pagos WHERE Nombre_de_actividad='" & Combo1.text & "' And Numero_de_cliente=" & Int(Text3.Text)Data1.RefreshEnd Sub
F_Tanori:
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=1 AND WHERE nombre='juan' AND WHERE apellido='perez'
Lo correcto seria
--- Código: SQL ---SELECT * FROM clientes WHERE cliente=1 AND nombre='juan' AND apellido='perez'
Saludos
Navegación
Ir a la versión completa