Visual Basic - Ciclo for con ADO y ListView

Life is soft - evento anual de software empresarial
 
Vista:

Ciclo for con ADO y ListView

Publicado por Javier Parada (23 intervenciones) el 01/03/2004 07:19:54
Saludos amigos, quisiera recibir documentación acerca de como extraer datos de una BD con ADO y el resultado ponerlo en un listview, pero por medio de un ciclo for , no declarando columna por columna, ya que mi consulta es muy extensa..

gracias a todos
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:Ciclo for con ADO y ListView

Publicado por Ruben (129 intervenciones) el 01/03/2004 15:18:04
A ver si te ayuda de algo:

Private Sub Command1_Click()
Dim i As Integer
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sSql As String
Dim Cont As Integer

Cont = 1
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset

conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\database.mdb;Persist Security Info=False"
conn.Open
sSql = "select * from tabla"
rs.Open sSql, con, adOpenForwardOnly, adLockReadOnly
rs.MoveFirst
list.ColumnHeaders.Add , , "ID"
list.ColumnHeaders.Add , , "Descripcion"
list.ColumnHeaders.Add , , "Cantidad"
While Not rs.EOF
list.ListItems.Add , , rs("campo_id")
list.ListItems.Item(Cont).ListSubItems.Add , , rs
("campo_descripcion")
list.ListItems.Item(Cont).ListSubItems.Add , , rs
("campo_cantidad")
Cont = Cont + 1
rs.MoveNext
Wend
End Sub

o sea para la ´primer columna se utiliza el list.ListItems.Add
y para las demas columnas se utiliza list.ListItems.Item(Cont).ListSubItems.Add

suerte
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:Ciclo for con ADO y ListView

Publicado por Ruben (129 intervenciones) el 01/03/2004 15:18:44
A ver si te ayuda de algo:

Private Sub Command1_Click()
Dim i As Integer
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sSql As String
Dim Cont As Integer

Cont = 1
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset

conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\database.mdb;Persist Security Info=False"
conn.Open
sSql = "select * from tabla"
rs.Open sSql, con, adOpenForwardOnly, adLockReadOnly
rs.MoveFirst
list.ColumnHeaders.Add , , "ID"
list.ColumnHeaders.Add , , "Descripcion"
list.ColumnHeaders.Add , , "Cantidad"
While Not rs.EOF
list.ListItems.Add , , rs("campo_id")
list.ListItems.Item(Cont).ListSubItems.Add , , rs
("campo_descripcion")
list.ListItems.Item(Cont).ListSubItems.Add , , rs
("campo_cantidad")
Cont = Cont + 1
rs.MoveNext
Wend
End Sub

o sea para la ´primer columna se utiliza el list.ListItems.Add
y para las demas columnas se utiliza list.ListItems.Item(Cont).ListSubItems.Add

suerte

NdeR: Con ayuda de Tony
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

ACLARACION!!!

Publicado por Ruben (129 intervenciones) el 01/03/2004 15:21:04
en la propiedad View del listview ponelo en "reporte"
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:ACLARACION!!!

Publicado por javier parada (23 intervenciones) el 01/03/2004 17:22:56
gracias amigo por responder,

pero es precisamente eso lo que no quiero ya que mi consulta es demasiado extensa para poner manualmente las columnas y los registros, encontre esta forma, pero me da error, no se si sepas algo de esto, para ver en donde esta el error, gracias...

saludos

For contador = 0 To rs.Fields.Count - 1
Set columna = lst.ColumnHeaders.Add(, , rs.Fields(contador).Name)
Next contador
'Ponemos los datos en el listview
If rs.Fields.Count = 0 Then Exit Sub
Do Until rs.EOF
Set li = lst.ListItems.Add(, , rs.Fields(0).Value)
For contador = 1 To rs.Fields.Count - 1
li.ListSubItems.Add , , rs.Fields(contador).Value
Next contador
rs.MoveNext
Loop

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