Visual Basic - Sacar datos de un ListView

Life is soft - evento anual de software empresarial
 
Vista:

Sacar datos de un ListView

Publicado por Edward Ruiz (3 intervenciones) el 07/04/2009 20:55:55
Hola buenas tardes, tengo un caso que no he podido hacer, por favor necesito un poco de ayuda...

Tengo un listview (al cual nombre ListData) cargado con informacion de una tabla (de access) el cual cargue de la siguiente manera:

Sub List_Data()
'Crea la conexion a la BDD de donde se va a extraer la informacion a mostrar en el List
rs.Open "select ID,TAREA,DESCRIPCION,DIASAPROX,FECHAING,STATUS from PLANTRABAJO", cn, adOpenStatic, adLockOptimistic
ListData.ListItems.Add
'Aqui hace el Recordset de la tabla en los registros
While Not rs.EOF
Set Item = ListData.ListItems.Add(, , rs.Fields("ID"))
Item.SubItems(1) = rs.Fields("TAREA")
Item.SubItems(2) = rs.Fields("DESCRIPCION")
Item.SubItems(3) = rs.Fields("DIASAPROX")
Item.SubItems(4) = rs.Fields("FECHAING")
Item.SubItems(5) = rs.Fields("STATUS")
rs.MoveNext
Wend

rs.Close

End Sub

Lo que necesito es que al darle doble click a algun registro / fila seleccionada (que puede ser fila 1 o fila 2, etc., etc.) pues me traiga en variables todos los valores de sus deferentes campos (ID, TAREA, DESCRIPCION, DIASAPROX, FECHAING, STATUS) para poder asignarlos despues a un formulario y asi poder editar su contenido.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sacar datos de un ListView

Publicado por P3L30N2009 (699 intervenciones) el 08/04/2009 11:02:16
Puedes cargar los datos de la fila seleccionada en una matriz dinámica y después usar esos datos donde te convenga:

Private a() As String ' (Ver Nota abajo)

Private Sub ListData_DblClick()
Dim i As Integer
ReDim a(0)
With ListData
a(0) = .selectedItem
For i = 1 To .ColumnHeaders.Count - 1
ReDim Preserve a(UBound(a) + 1)
a(i) = .selectedItem.SubItems(i)
Next i
End With
End Sub

Nota: Si los datos de la matriz los vas a utilizar en otro formulario, declara la variable a() como Public en un módulo .bas:

Public a() As String
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sacar datos de un ListView

Publicado por Edward Ruiz (3 intervenciones) el 15/04/2009 15:56:43
Saludos.... Gracias por la informacion!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Sacar datos de un ListView

Publicado por Santiago (34 intervenciones) el 15/04/2009 06:20:45
Yo lo haria así: supongo que es lo que quieres.

Programando el evento "Hacer click sobre la linea del listview"

Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)

Dim LineaClick as Integer '(Para saber en que linea se hizo click)

LineaClick = item.index

Variable1 = ListView1.ListItems(LineaClick).SubItems(1)
Variable2= ListView1.ListItems(LineaClick).SubItems(2)
Variable3 = ListView1.ListItems(LineaClick).SubItems(3)

end sub

Espero haberte podido ayudar

Si tienes alguna duda o problema me avisas a mi correo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sacar datos de un ListView

Publicado por Edward Ruiz (3 intervenciones) el 15/04/2009 15:55:39
Gracias por la respuesta Santiago, me sirvio bastante!!!

Como lo necesitaba para el evento DblClick() lo que hice fue adaptarlo al mismo, pero la programacion quedo exacta y funciona correctamente

De nuevo gracias por la ayuda prestada
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sacar datos de un listview con mas de 62000 registros

Publicado por Ricardo (2 intervenciones) el 12/10/2015 14:33:53
Tengo un listview en el cual se cargan mas de 62000registros pero al usar este codigo funciona hasta 32000 si le doy en unregistro que este en una posisicon mayor a este solo toma los datos de registro 32000


1
2
3
4
5
6
7
8
9
10
11
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
 
Dim LineaClick as Integer '(Para saber en que linea se hizo click) 
 
LineaClick = item..index 'a qui es donde siento que tendria que ser el tipo de variable long pero como le hago para que acepte mas de 32000 
 
Variable1 = ListView1.ListItems(LineaClick).SubItems(1)
Variable2= ListView1.ListItems(LineaClick).SubItems(2)
Variable3 = ListView1.ListItems(LineaClick).SubItems(3)
 
end sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 147
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:Sacar datos de un listview con mas de 62000 registros

Publicado por Juan Gilberto (323 intervenciones) el 12/10/2015 19:15:04
Pruebalo declarando la variable LineaClick como Long


Pero lo realmente importante desde el punto de vista operacional es: Quien va a revisar 62000 registros en un listview o en un reporte o en cualquier medio impreso/desplegado

Tenemos que diseñar un poco mas amigable hacia el usuario final
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar