none
crear consulta dependiendo los checkbox seleccionados RRS feed

  • Pregunta


  • tengo una duda y no la eh podido resolver me encargaron en la escuela un tipo reporteador y basicamente es lo siguiente.

    tengo un formulario con 10 checkbox y un datagridview, cada checkbox corresponde a una columna de una tabla llamada Encuesta de la BD. lo que quiero hacer es crear la consulta en visual basic dependiendo de los checkbox seleccionen en el formulario. Lo e tratado de hacer de esta forma ya que un compañero me dijo que primero tenia que recorrer los checkbox y de ahi ir armando la consulta. 

    De antemano muchas gracias por su ayuda

     Try
                Dim ds As New DataSet 
                strSQL = "Select id"
    
                For Each obj As Object In GroupBox1.Controls
                    Select Case True
                        Case CheckBox2.Checked
                            strSQL = strSQL + ",Nombre"
                        Case CheckBox3.Checked
                            strSQL = strSQL + ",Encargado"
                        Case CheckBox4.Checked
                            strSQL = strSQL + ",Direccion"
                    End Select
                Next
             
                strSQL = strSQL + " " + "From Encuesta"
    
                ds = clsFramework.EjecutarDataSet(strSQL)
                If Not ds Is Nothing Then
                    DataGridView1.DataSource = ds.Tables(0)
                End If
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "Error")
            End Try



    Eduardo Rivera

    lunes, 4 de agosto de 2014 18:54

Respuestas

  • En principio, debería funcionar lo de ir concatenando columnas para formar la consulta SQL en función de los checkboxes seleccionados. Pero lo que resulta muy raro es el bucle en que recorres los controles pero luego usas un Select (también construido de forma extraña) para comprobar checkboxes que no tienen nada que ver con los controles que estás recorriendo.

    Si tus checkboxes se llaman CheckBox2, CheckBox3 y CheckBox4, con independencia de que estén contenidos en un groupbox (que no les afecta para nada a estos efectos), basta con que construyas la sentencia así:

    strSQL = "Select id"
    If CheckBox2.Checked then strSQL &= ",Nombre"
    If CheckBox3.Checked then strSQL &= ",Encargado"
    If CheckBox4.Checked then strSQL &= ",Direccion"
    strSQL &= " From Encuesta"
    

    • Marcado como respuesta Lalo_Rivera lunes, 4 de agosto de 2014 20:42
    lunes, 4 de agosto de 2014 19:03

Todas las respuestas

  • En principio, debería funcionar lo de ir concatenando columnas para formar la consulta SQL en función de los checkboxes seleccionados. Pero lo que resulta muy raro es el bucle en que recorres los controles pero luego usas un Select (también construido de forma extraña) para comprobar checkboxes que no tienen nada que ver con los controles que estás recorriendo.

    Si tus checkboxes se llaman CheckBox2, CheckBox3 y CheckBox4, con independencia de que estén contenidos en un groupbox (que no les afecta para nada a estos efectos), basta con que construyas la sentencia así:

    strSQL = "Select id"
    If CheckBox2.Checked then strSQL &= ",Nombre"
    If CheckBox3.Checked then strSQL &= ",Encargado"
    If CheckBox4.Checked then strSQL &= ",Direccion"
    strSQL &= " From Encuesta"
    

    • Marcado como respuesta Lalo_Rivera lunes, 4 de agosto de 2014 20:42
    lunes, 4 de agosto de 2014 19:03
  • muchas gracias funciono excelente, creo que yo solo me estaba complicando la vida y era muy sencillo pero nunca se me ocurrio


    Eduardo Rivera

    lunes, 4 de agosto de 2014 20:43