none
CheckBox en treview, codigo Visual Basic RRS feed

  • Pregunta

  • Como están amigos, por favor necesito su ayuda, soy aficionado a la programación no soy experto y hay muchas cosas que son complicadas para mi entender, sin embargo me las he arreglado para conseguir algunas cosas, en esta ocasión quiero colocar checkboxes a cada item que tengo en una Base de Datos, quisiera que me ayuden que con el codigo siguiente como puedo lograr eso, muchas gracias.

     Sub Plantilla1()

    Dim nodo As TreeNode
            Dim odacli As New OleDb.OleDbDataAdapter("SELECT * FROM Plantilla_1", conexion)
            Dim oDataSet As New DataSet
            odacli.Fill(oDataSet, "Encabezados")
            Dim oTablaCli As DataTable = oDataSet.Tables("Encabezados")

            Dim RegistroCli As DataRow
            nodo = TreeView1.Nodes.Add("PLANTILLA INDICADOR ATENCION Y CORTESIA")

            For Each RegistroCli In oTablaCli.Rows
                'agrego el nodo en el segundo nivel
                nodo = TreeView1.Nodes(0).Nodes.Add(Trim(RegistroCli("Encabezados")))

                Dim oDAproductos As New OleDb.OleDbDataAdapter("SELECT * FROM Plantilla_1_Para where Parametro=" + Chr(34) + Trim(RegistroCli("Encabezados")) + Chr(34), conexion)
                Dim ds2 As New DataSet
                oDAproductos.Fill(ds2, "Plantilla_1_Para")
                Dim oTablaProductos As DataTable = ds2.Tables("Plantilla_1_Para")
                If oTablaProductos.Rows.Count <> 0 Then
                    Dim RegistroProd As DataRow
                    For Each RegistroProd In oTablaProductos.Rows
                        nodo.Nodes.Add(Trim(RegistroProd("SubParametro")))
                    Next
                End If
                oDAproductos.Dispose()
                ds2.Dispose()
            Next

    End Sub

    jueves, 4 de julio de 2019 19:52

Todas las respuestas

  • Así a ojo tiene en general bastante buen aspecto. La principal pega que le veo es que en la segunda Select has usado comillas dobles Chr(34) en lugar de comillas simples "'". Se podría arreglar así:

    Dim oDAproductos As New OleDb.OleDbDataAdapter("SELECT * FROM Plantilla_1_Para where Parametro='" & Trim(RegistroCli("Encabezados")) & "'", conexion)

    Si el problema no es ese, habría que ver cuál es exactamente el mensaje de error que te sale (si es que se produce un error) así como la línea en la que se produce. Y si no se produce un error, seguirlo paso a paso con el debugger hasta ver en qué punto de la ejecución se observa un comportamiento distinto del que se esperaba en ese punto.

    Obviamente estoy presumiendo que son correctos los nombres de tabla y los nombres de campo y que son coherentes los tipos de campo que se utilizan. Esto no se puede validar viendo el código cliente, habría que ver la base de datos.

    • Propuesto como respuesta Pablo Rubio jueves, 4 de julio de 2019 21:39
    jueves, 4 de julio de 2019 21:33
  • Muchas gracias por darse el tiempo para responder , no supe expresarme bien en mi pregunta anterior, mil mil disculpas, en realidad con el codigo que coloque no tengo ningun error esta muy bien, lo que consigo con eso es llenar mi Treeview con  datos de una Base de Datos de Acces, lo que necesito es que como ya tengo mi arbol formado, lo que quisiera  saber es como hacer que mediante el codigo que ya tengo que cada Item tenga un CheckBox. mil gracias por su ayuda.
    sábado, 6 de julio de 2019 14:20
  • Errr... Solo hay que ir a las Propiedades del Treeview y poner true en la propiedad CheckBoxes.
    sábado, 6 de julio de 2019 21:20