Retroceder   Foros del Web > Temas generales de computación > Programación > Visual Basic

Respuesta
 
Herramientas Desplegado
Antiguo 16-jun-2008, 11:35   #1 (permalink)
laluka ha deshabilitado el karma
 
Avatar de laluka
 
Fecha de Ingreso: julio-2007
Mensajes: 25
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
laluka está desconectado   Responder Citando
Antiguo 16-jun-2008, 23:58   #2 (permalink)
Avellaneda está en el buen camino
 
Avatar de Avellaneda
 
Fecha de Ingreso: enero-2008
Ubicación: Madrid
Mensajes: 670
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.

Avellaneda está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 04:29.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93