Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: TheGhost(Z) en 30 Junio 2009, 18:15 pm



Título: Consulta SQL
Publicado por: TheGhost(Z) en 30 Junio 2009, 18:15 pm
Hola, veran tengo que hacer un consulta SQL del tipo

Código:
"Select * From Flores WHERE Estado IN ('Pendiente','Enviado,'Entregado','Anulado')"


Los datos los cojo de 4 Check's. Mi difcultad esta en obtenerlos ya que tengo que hacer varios IF's ....

Código:
IF Check1=1 And Check2=1 AND Check3=1 AND Check4=1
IF Check1=1 And Check2=0 AND Check3=1 AND Check4=1
IF Check1=1 And Check2=0 AND Check3=0 AND Check4=1
IF Check1=1 And Check2=0 AND Check3=0 AND Check4=0
.
.
.
....
como veran boy haciendo muchos IF para cada caso, cosa que me enrreda. Hay alguna manera mas simple de hacer esto?


Título: Re: Consulta SQL
Publicado por: GroK en 30 Junio 2009, 19:04 pm
Si la consulta original la tienes en una string, que tal si solo almacenas hasta:

Código:
Select * From Flores WHERE Estado IN (

Y luego compruebas con solo 4 If's cada uno de los checks y, en caso de que alguno este activado, concatenas la opcion correspondiente a la cadena con los operadores + ó &. Al finalizar le concatenas el ultimo parentesis y ejecutas la consulta. Y ten cuidado también con las comas que hay entre medio.

Saludos


Título: Re: Consulta SQL
Publicado por: cassiani en 30 Junio 2009, 23:04 pm
Tambien tienes está opción, parecida a la que te mostro el amigo en la respuesta anterior:
Código
  1. Private Sub Command1_Click()
  2. Dim sCadena As String
  3.  
  4.    sCadena = "Select * From Flores WHERE Estado IN (" & _
  5.    IIf(Check1, "'Pendiente'", "") & _
  6.    IIf(Check2, ",'Enviado'", "") & _
  7.    IIf(Check3, ",'Entregado'", "") & _
  8.    IIf(Check4, ",'Anulado'", "") & ")"
  9.  
  10.    sCadena = Replace(sCadena, "(,", "(")
  11.    Debug.Print sCadena
  12.  
  13. End Sub

Mi recomendación es que trabajes con matrices de objetos, para los checks en este caso.
Recuerda o deberías hacer la validación para el caso en que ningún check este chequeado, no permita la consulta o recibiras un bonito mensaje de error..

saludos!!


Título: Re: Consulta SQL
Publicado por: TheGhost(Z) en 1 Julio 2009, 13:09 pm
Gracias, muchachos. me ha sido de gran ayuda