Ver Mensaje Individual
  #4 (permalink)  
Antiguo 05/11/2009, 16:47
Avatar de lokoman
lokoman
 
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: Cargar listview con ADO

Hola!!
Intenta con este codigo, funciona bien.


NOTA: AJUSTA EL QUERY Y LA CONEXION

Agrega una referencia a “Microsoft ActiveX Data Objects 2.0 Library”
Agrega los componentes “Microsoft Windows Common Controls 6.0 (SP6)”
Crea un Form con un listview(ponle de nombre listview) y un command button

Copia y pega el código

Public Conexion As ADODB.Connection

Private Sub Command1_Click()
Conecta
Carga_Listview_ADO
Desconecta
End Sub

Sub Conecta()
Set Conexion = New ADODB.Connection
Conexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\Microsoft Visual Studio\VB98\NWIND.MDB;Persist Security Info=False"
Conexion.Open
End Sub

Sub Desconecta()
If Conexion.State = 1 Then Conexion.Close
Set Conexion = Nothing
End Sub

Sub Carga_Listview_ADO()
Dim strQuery As String
Dim I As Double, Columna As Double, Campo As Double, FD As Field
Dim rsData As ADODB.Recordset

'QUERY
strQuery = "SELECT ProductID,ProductName,QuantityPerUnit FROM [Catalog]"

'ALGUNAS PROPIEDADES DEL LISTVIEW
ListView.ListItems.Clear
ListView.ColumnHeaders.Clear
ListView.View = lvwReport
ListView.LabelEdit = lvwManual
ListView.FullRowSelect = True

Set rsData = New ADODB.Recordset
rsData.Source = strQuery
rsData.Open , Conexion, adOpenDynamic, adLockBatchOptimistic

If rsData.EOF = False Then
DoEvents

Columna = 0
Campo = 0

'CARGAR LAS COLUMNAS
For Each FD In rsData.Fields
ListView.ColumnHeaders.Add Columna + 1, , rsData.Fields(Campo).Name
Columna = Columna + 1
Campo = Campo + 1
rsData.MoveNext
Next

rsData.MoveFirst

'CARGAR LOS DATOS
Do While Not rsData.EOF
Set lsvItem = ListView.ListItems.Add(, , rsData.Fields(0).Value)
For I = 1 To Columna - 1
lsvItem.SubItems(I) = rsData.Fields(I).Value
Next I
rsData.MoveNext
DoEvents
Loop
Else
ListView.ListItems.Clear
ListView.ColumnHeaders.Clear
End If

DoEvents

ListView.SetFocus

rsData.Close
Set rsData = Nothing
End Sub