Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

CheckBoxes en ListView

Estas en el tema de CheckBoxes en ListView en el foro de Visual Basic clásico en Foros del Web. Tengo un problema con un ListView, que tiene checkBox, ya que tengo segun los datos del ListView algunos aparecen Tildados y otros no, y cuando ...
  #1 (permalink)  
Antiguo 17/10/2011, 15:12
 
Fecha de Ingreso: septiembre-2009
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 1
CheckBoxes en ListView

Tengo un problema con un ListView, que tiene checkBox, ya que tengo segun los datos del ListView algunos aparecen Tildados y otros no, y cuando preciono en el Boton Enviar, tendria que desaparecer los tildados

Este es el Codigo que Uso

Código:
Hola a todos
Tengo un ListView con checkbox y estos reciben si el tilde automaticamente segun un campo de access, o bien puedo tildarlos manualmente

Codigo:

Private Sub PreparaCabeceraLV(Lv As ListView)
Dim i As Integer

Lv.ColumnHeaders.Add , , "x", 310
Lv.ColumnHeaders.Add , , "D.C.", 900, , "ud"
Lv.ColumnHeaders.Add , , "Fecha", 1000, , "ud"
Lv.ColumnHeaders.Add , , "Paciente", 2000, , "ud"
Lv.ColumnHeaders.Add , , "Obra Social", 1440, , "ud"

End Sub

Sub Actualizar_ListView(Item As ListItem)
Dim rs As New ADODB.Recordset
Dim SQL As String

SQL = "UPDATE contratos set paso1 = " & IIf(Item.Checked, 1, 0) & _
" where id_contratos = " & CLng(Item.Tag) & ""

Set rs = Crear_Recordset(cnn, SQL)
Set rs = Nothing
End Sub

Sub Cargar_ListView(Lv As ListView, rs As ADODB.Recordset)
Dim Item As ListItem
Dim i As Integer

Lv.ListItems.Clear
Lv.ColumnHeaders.Clear

'CABECERAS
Call PreparaCabeceraLV(Lv)

Me.MousePointer = vbHourglass
If rs.RecordCount > 0 Then
rs.MoveFirst

While Not rs.EOF
Set Item = LV_Prestaciones.ListItems.Add(, , rs(0))

' almacen el id que luego se usa para el update
Item.Tag = rs("id_contratos").Value
'
If rs.Fields("documentacion") = True Then
If rs.Fields("paso1") = False Then
Item.Checked = True
End If
End If

If rs.Fields("documentacion") = True Then
Item.SubItems(1) = "Si"
Else
Item.SubItems(1) = vbNullString
End If

Item.SubItems(2) = rs.Fields("fecha_carga")
Item.SubItems(3) = rs.Fields("nombre")
Item.SubItems(4) = rs.Fields("obra")

End If
rs.MoveNext
Wend
End If
Set rs = Nothing
Me.MousePointer = vbDefault

Exit Sub
errSub:

MsgBox Err.Description, vbCritical, "Error"
Me.MousePointer = vbDefault

End Sub

Function Crear_Recordset(con As ADODB.Connection, SQL As String) As ADODB.Recordset
Dim rs As ADODB.Recordset
If con Is Nothing Then
Set Crear_Recordset = Nothing
Exit Function
End If

If cnn.State <> adStateOpen Then
MsgBox "La conexión está cerrada", vbCritical
Set Crear_Recordset = Nothing
Exit Function
End If

Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open SQL, con, adOpenStatic, adLockOptimistic, adCmdText

Set Crear_Recordset = rs

Set rs = Nothing
End Function

y lo que quisiera es poder llamar a la Funcion Actualizar por medio de un Boton

ejemplo:
Private Sub cmdEnviar_Click()
Call Actualizar_ListView
Form1.Refresh
End Sub
Pero me da el error que el argumento no es opcional


Alguna idea de como poder crear ese boton

Última edición por davchi; 19/10/2011 a las 14:30 Razón: Nuevo

Etiquetas: checkboxes, listview, sql, vb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:48.