Chekbox en ListView

Iniciado por mdg, 16 Octubre 2007, 22:25 PM

0 Miembros y 1 Visitante están viendo este tema.

mdg

Buenas colegas.

La cuestion es que tengo un procedimiento en el cual inserto registros en una tabla mediante un bucle que recorre elementos en dos controles listview, la cuestion es que quiero que los registros que solo me agregue solo los registros que este chekados, es esto posible, lo ue intente es lo siguiente: , de antemano gracias


Private Sub cmdliquidar_Click()

Dim i As Long
Dim f As Long

Dbpath = App.Path & "\" & DirectorioBase & "\" & Db_A_Name
       
    StrSql = "SELECT * FROM tbl_liquidacion"
       
        Set Db = DBEngine.OpenDatabase(Dbpath, False, False, ";pwd=" & StrPass)
       
        Set Rst = Db.OpenRecordset(StrSql)
                       
         
      For i = 1 To Me.ListView1.ListItems.Count
   
          For f = 1 To Me.ListView2.ListItems.Count
     
       If Me.ListView2.ListItems.Item(i).Checked = True Then
          Rst.AddNew
          Rst!codigo = Me.ListView1.ListItems.Item(i).Text
          Rst!legajo = Me.ListView2.ListItems.Item(i).Text
          Rst.Update
          End If
          Next f
         
         
         
        Next i
       
         
         
         
End Sub

CeLaYa

pues creo que la lógica esta bien, pero segun lo que veo en tu código me hace suponer que los items seleccionados del Listview2 dependen de que item este seleccionado en el Listview1, por lo que creo que tal vez deberías modificar un poco tu código.


Private Sub cmdliquidar_Click()
     Dim i As Long
     Dim f As Long

      Dbpath = App.Path & "\" & DirectorioBase & "\" & Db_A_Name
      StrSql = "SELECT * FROM tbl_liquidacion"
      Set Db = DBEngine.OpenDatabase(Dbpath, False, False, ";pwd=" & StrPass)
      Set Rst = Db.OpenRecordset(StrSql)
      For i = 1 To Me.ListView1.ListItems.Count
          ListView1_ItemClick ListView1.ListItems(i) ' aqui usas este evento para simular que das click en el item del listview1
   
          For f = 1 To Me.ListView2.ListItems.Count
     
                 If Me.ListView2.ListItems.Item(f).Checked = True Then
                      Rst.AddNew
                      Rst!codigo = Me.ListView1.ListItems.Item(f).Text ' Aqui debes usar la variable f, que es con la que recorres el listview2
                      Rst!legajo = Me.ListView2.ListItems.Item(i).Text
                      Rst.Update
                 End If
          Next f
         
         
        Next i       
End Sub
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

mdg

Gracias amigo por tu ayuda, podes cerrar el tema