Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => 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

"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 ....

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:

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 (vb) [Seleccionar]
Private Sub Command1_Click()
Dim sCadena As String

   sCadena = "Select * From Flores WHERE Estado IN (" & _
   IIf(Check1, "'Pendiente'", "") & _
   IIf(Check2, ",'Enviado'", "") & _
   IIf(Check3, ",'Entregado'", "") & _
   IIf(Check4, ",'Anulado'", "") & ")"
   
   sCadena = Replace(sCadena, "(,", "(")
   Debug.Print sCadena
   
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