Editar un lisviuw con ado

Solo disponible en BuenasTareas
  • Páginas : 7 (1569 palabras )
  • Descarga(s) : 0
  • Publicado : 25 de enero de 2012
Leer documento completo
Vista previa del texto
EDITAR UN LISVIUW CON ADO
Ejemplo que abre un formulario para editar el elemento actual del Listview.
 
El ejemplo requiere de dos formularios. Uno que contiene el control Listview ( Form1 ) en el cual se visualizan los registros del Recordset ADO, y otro formulario (Form2) que crea en forma dinámica los controles textbox para cada campo del registro actual, y que permite editar los datos.Importante: el ejemplo solo permite edtar el registro seleccionado, pero no permite eliminar y agregar nuevos
Nota: en este enlace hay un simple formulario Abm que también usa Ado para editar un Lv y poder realizar Altas, bajas y modificaciones entre otras opciones
 
Formularios

 
Pasos para crear el ejemplo
* Antes que nada incluir en el proyecto la referencia a Microsoft Activex dataObject para poder usar ADO
* En el Form1 agregar un control Listview
* En el Form2 dos CommandButton ( CmdAceptar y CmdCancelar ) y también un control textbox que forme una matrz, es decir un Text1(0). Luego a partir de este se crean los demás
* Agregar un módulo bas
 
Código en el Módulo bas
Texto planoImprimir
1. Option Explicit  
2.    
3.'Sub para cargar los datos de la tabla en el control ListView  
4. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''  
5. Sub Cargar_ListView( _  
6.     ListView As ListView, _  
7.     SQL As String, _  
8.     Cnn As ADODB.Connection)  
9.   
10. Dim Ant_Item As Long  
11. Dim Campo As Integer  
12.   
13. On Error GoTo ErrSub  
14.   
15.    Dim rst As ADODB.Recordset  
16.       
17.    'Variable para los SubItem del Listview  
18.     Dim Item As ListItem  
19.     Dim i_SubItem As Long  
20.       
21.     'Almacenar el Item actual seleccionado _  
22.      para luego reestablecerlo  
23.     If Not ListView.SelectedItem Is Nothing Then  
24.         Ant_Item = ListView.SelectedItem.Index  
25.     End If  
26.       27.     'Crear un Nuevo objeto Recordset  
28.     Set rst = New Recordset  
29.   
30.     'Llenar el Recordset  
31.     rst.Open SQL, Cnn, adOpenDynamic, adLockOptimistic  
32.   
33.     'Vista de reporte  
34.     ListView.View = lvwReport  
35.       
36.     ' Eliminar los item y los encabezado de columna  
37.     ListView.ListItems.Clear  38.     ListView.ColumnHeaders.Clear  
39.   
40.     ListView.Parent.MousePointer = vbHourglass  
41.   
42.     'Agregar los nombres campo junto con los _  
43.      encabezados de columna para el ListView  
44.     For Campo = 0 To rst.Fields.Count - 1  
45.         ListView.ColumnHeaders.Add , , rst.Fields(Campo).Name  
46.     Next  
47.   
48.    ' Recorrer todos los registros del Recordset  
49.     While Not rst.EOF  
50.         'Agregar el Item  
51.         Set Item = ListView.ListItems.Add(, , rst.Fields(0))  
52.           
53.         i_SubItem = 1  
54.   
55.         'Agregar los SubItem al ListView mediante la variable Item  
56.         For Campo = 1 To rst.Fields.Count - 1  
57.            'si el dato no es de tipo Null lo agrega  
58.             If Not IsNull(rst.Fields(Campo)) Then  
59.                 Item.SubItems(i_SubItem) = rst.Fields(Campo)  
60.             End If  
61.   
62.             i_SubItem = i_SubItem + 1  
63.   
64.         Next  
65.   
66.         'Ir al Siguiente registro  
67.         rst.MoveNext  
68.     Wend  
69.    'Reestablecer el puntero del mouse  
70.     ListView.Parent.MousePointer = vbDefault  
71.       
72.     'seleccionar el item que estaba seleccionado  
73.     If Not ListView.SelectedItem Is Nothing And Ant_Item <> 0 Then  
74.         ListView.ListItems(Ant_Item).Selected = True  
75.     End If  
76.   
77. Exit Sub  
78.   ...
tracking img