Listbox Con chekboes

Hola Mrtool espero que me puedas dar una mano con el siguiente problema.
Tengo un Listbox con Checkboxes (Activados desde la propiedad del Style)
A dicho listbox lo lleno con elementos y sus itemdata desde una tabla
Para que se entienda un poco mejo te doy ejemplo:
Cargo esto en el list
Verde Itemdata 1
Azul Itemdata 3
Blanco Itemdata 5
Rojo Itemdata 9
Mi Problema es que no estoy pudiendo guardar en una tabla los itemdata de los elementos que estén seleccionados.
Este es mi código: (a modo de ej, el código es más complicado)
For i = 0 To lst.ListCount - 1
    If lst.Selected(w) = True Then
       rs.AddNew
       rs!id_color = LstMaterias.ItemData(LstMaterias.Selected(w))
       rs.Update
    end if
next
El problema que tengo es que guarda el mismo itemdata repitiéndose, o sea si el usuario selecciono "azul" y "rojo" guarda dos registros pero con el mismo itemdata (3), lo que necesito es que me guarde (3 y 5), si selecciono los 5 elementos que guarde (1,3,5,9)
Espero que me puedas dar una mano, disculpa si esta un poco confuso es que te estoy escribiendo bastante cansado.
Desde ya muchas gracias, saludos

1 Respuesta

Respuesta
1
Viendo el código veo que usas siempre la 'W' para ver si está seleccinoado o no cuando cvreo que deberías usar el 'i'. De otra forma estas usando siempre el mismo valor aunque hagas el bucle.
Haz la prueba y si no te va bien me lo comentas.
Gracias por responder
Vos sabes que la "w" fue un error de copiar y pegar, no me di cuenta que declare la I como un contador y después use la w, Bueno done esta la w va la i, así tengo el código y no me funciona.
Espero que me puedas ayudar.
asi seria el codigo q tengo:
For i = 0 To lst.ListCount - 1
    If lst.Selected(i) = True Then
       rs.AddNew
       rs!id_color = LstMaterias.ItemData(LstMaterias.Selected(i))
       rs.Update
    end if
next.
Gracias por responderme y disculpa pero me confundí con las letras
Estas mezclando los datos y los objetos.
Prueba esto:
Cambia List1 por el que quieras procesar en tu código veo dos ( lst y lstmaterias)
Dim cont As Integer
For cont = 1 To Me.List1.ListCount - 1
    If Me.List1.Selected(cont) = True Then ' si está seleccionado
        Debug.Print Me.List1.List(cont) ' haces lo que quieras con ellos
    End If
Next cont
Si lo que necesitas es un lst multicolumna mejor usa un ListView que es más potente que el normal.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas