Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Visual Basic clásico (http://www.forosdelweb.com/f69/)
-   -   Cargar 2 tablas distintas en ListView (http://www.forosdelweb.com/f69/cargar-2-tablas-distintas-listview-597033/)

laluka 16/06/2008 11:35

Cargar 2 tablas distintas en ListView
 
Hola todos , tengo un problema : tengo una conecion con ADO ,y los datos de las 2 tablas que tengo las cargo en 2 List view distintos , la primera tabla se carga correctamente en el list view , la segunda que esta en otro formulario no se carga y me da el siguiente error :"la operacion no esta permitida si el objeto esta abierto" ,entonces no se como solucionar esto, ya que solo hay una coneccion pero quiero llenar 2 tablas en distintos listview, desde ya gracias , aqui les dejo el codigo:


Public Declare Sub InitCommonControls Lib "comctl32" ()

Public cnn As New ADODB.Connection
Public rs As New ADODB.Recordset

Public ObjItem As ListItem


Sub Main()
On Error Resume Next
Call InitCommonControls
Err.Clear
Form4.Show
End Sub


Public Sub IniciarConexion()

With cnn
.CursorLocation = adUseClient
.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
App.Path & "\datos.mdb" & ";Persist Security Info=False"
End With

End Sub


Public Sub CargarListView(LV As ListView, rs As ADODB.Recordset)

On Error GoTo ErrorSub

Dim i As Integer

LV.ListItems.Clear

If rs.RecordCount > 0 Then


While Not rs.EOF

Set ObjItem = LV.ListItems.Add(, , rs(0))
ObjItem.SubItems(1) = rs!Numero
ObjItem.SubItems(1) = rs!Nombre
ObjItem.SubItems(2) = rs!Apellido
ObjItem.SubItems(3) = rs!Direccion
ObjItem.SubItems(4) = rs!Observaciones
If Abs(rs!estado) = 0 Then
ObjItem.SubItems(6) = "Masculino"
Else
ObjItem.SubItems(6) = "Femenino"
End If
ObjItem.SubItems(7) = rs!Fecha

' siguiente registro
rs.MoveNext
Wend

End If
Call ForeColorColumn(&H8000&, 0, Form4.LV)
'Call ForeColorColumn(vbRed, 6, FrmPrincipal.LV)

Exit Sub

ErrorSub:

If Err.Number = 94 Then Resume Next

End Sub


Public Sub CargarListView1(LV1 As ListView, rs As ADODB.Recordset)

On Error GoTo ErrorSub

Dim o As Integer

LV1.ListItems.Clear

If rs.RecordCount > 0 Then

' recorre el recordset
While Not rs.EOF

' añade los datos


Set ObjItem = LV1.ListItems.Add(, , rs(0))
ObjItem.SubItems(1) = rs!CI
ObjItem.SubItems(1) = rs!Nombre
ObjItem.SubItems(2) = rs!Numero
ObjItem.SubItems(3) = rs!FechaD
ObjItem.SubItems(4) = rs!fechaP




rs.MoveNext
Wend

End If
Call ForeColorColumn(&H8000&, 0, Form4.LV)
'Call ForeColorColumn(vbRed, 6, FrmPrincipal.LV)

Exit Sub

ErrorSub:

If Err.Number = 94 Then Resume Next

End Sub

Avellaneda 16/06/2008 23:58

Respuesta: Cargar 2 tablas distintas en ListView
 
Hola,

fíjate que a ambos procedimientos les estás pasando el objeto recordset con el mismo nombre, tienes que cerrarlo antes de llamar al segundo procedimiento, mejor dicho, antes de abrir el segundo recordset, o bien asignarle otro nombre.

:adios:


La zona horaria es GMT -6. Ahora son las 00:29.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.