• Domingo 22 de Diciembre de 2024, 13:43

Autor Tema:  consulta select sql con 2 condiciones where  (Leído 30473 veces)

nicagus

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
consulta select sql con 2 condiciones where
« en: Lunes 22 de Agosto de 2011, 04:30 »
0
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
  1. Private Sub Combo1_Click()
  2.  Data1.RecordSource = "SELECT * FROM Pagos WHERE Nombre_de_actividad='" & Combo1 & "'" And "where Numero_de_cliente=" & Val(Text3.Text)
  3.  Data1.Refresh
  4.  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

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re:consulta select sql con 2 condiciones where
« Respuesta #1 en: Lunes 22 de Agosto de 2011, 16:33 »
0
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: [Seleccionar]
Data1.RecordSource = "SELECT * FROM Pagos WHERE Nombre_de_actividad='" & Combo1.Text & "' And numero_de_cliente=" & Val(Text3.Text)

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

Javochin

  • Nuevo Miembro
  • *
  • Mensajes: 24
  • Nacionalidad: mx
    • Ver Perfil
Re:consulta select sql con 2 condiciones where
« Respuesta #2 en: Miércoles 31 de Agosto de 2011, 05:56 »
0
intenta esto:
Código: Visual Basic
  1. Private Sub Combo1_Click()
  2. Data1.RecordSource = "SELECT * FROM Pagos WHERE Nombre_de_actividad='" & Combo1.text & "' And Numero_de_cliente=" & Int(Text3.Text)
  3. Data1.Refresh
  4. End Sub
  5.  
Hay que seguirle!!

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re:consulta select sql con 2 condiciones where
« Respuesta #3 en: Viernes 2 de Septiembre de 2011, 20:33 »
0
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
  1. SELECT * FROM clientes WHERE cliente=1 AND WHERE nombre='juan' AND WHERE apellido='perez'

Lo correcto seria
Código: SQL
  1. SELECT * FROM clientes WHERE cliente=1 AND nombre='juan' AND apellido='perez'

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================