Un lugar por donde empezar...

Poblando el control de presentación

Finalmente la tercera parte, mostrar los registros obtenidos en el recordset. Los registros obtenidos permanecerán allí, en memoria mientras el aplicativo este en memoria, al cerrar el aplicativo se borraran.
Entiéndase que lo que se muestra en un control de presentación NO ES la tabla en si, es el resultado de una consulta que por coincidencia pueden ser los mismos registros de la tabla que se consulto, pero sucede que también se filtran o se hacen consultas relacionando otras tablas.
Existen diversos controles donde se pueden mostrar los registros obtenidos, algunos admiten conexión a datos y en otros casos no, para esos casos hay que recorrer los registros del RS uno a uno para irlos escribiendo en el control.

MSHFlexGrid
Este es un control tipo grilla y es el que personalmente uso mucho. Es un control de tipo jerárquico y admite conexión a datos. Para obtenerlo tienes que ir a Componentes y seleccionarlo:
Grid
¿Y como lo poblamos?
Usando el ejemplo anterior asumiremos que el control se llama Grid1 y el código quedaría asi:

Dim rs  As New ADODB.Recordset
Dim SQL As String
SQL = "Select * From Clientes"
rs.Open SQL, dB, 1, 1
Set Grid1.DataSource = rs   '<<---- Nueva linea

Como vemos solo es una linea y el control ya tendrá a la vista todos los registros del recordset rs. Ya queda maquillar el control para una presentación mas personalizada.

Otros controles
Sobre el MSFlexGrid, No lo recomiendo usar porque este control sólo admite la propiedad DataSource en tiempo de diseño y debe estar enlazado a un control Data de DAO (del cual queremos huir). Entonces, para poblar este control sin necesidad del DAO deberemos recorrer todo el recordset y registro a registro usando el AddItem del control iremos poblándolo y esto va a consumir tiempo de procesador, no le veo ninguna ventaja.

Existe también el ListView que igual hay que recorrer el rs para poblarlo pero este control si podría valer la pena este trabajo adicional porque el ListView tiene mas prestaciones visuales de los cuales sacar ventaja. Con el Listbox es lo mismo, recorrer para poblar.

DataCombo
De los controles tipo combo prefiero al DataCombo por su versatilidad. No suelo usar el ComboBox por lo mismo del recorrido. Para poblar un DataCombo a parte de setearlo hay que indicarle que campo se va a mostrar. Si la consulta es parametrizable se podría escoger en tiempo de ejecucion el campo a mostrar. El codigo para poblar este control es asi (Supongamos que el DataCombo se llama DtC:

Dim rs  As New ADODB.Recordset
Dim SQL As String
SQL = "Select * From Clientes"
rs.Open SQL, dB, 1, 1

With Dtc
   Set .RowSource = rs
   .ListField = "Nombre"
   .BoundColumn = "ID"
End With

En ListField ponemos el campo que mostraremos en el control, y en BoundColum el Id del registros, esto nos puede servir para cuando necesitemos identificar el registro para otras consultas.

Y finalmente para el DataReport la forma de poblarla es casi exactamente igual al MSHFlexGrid:

Dim rs  As New ADODB.Recordset
Dim SQL As String
SQL = "Select * From Clientes"
rs.Open SQL, dB, 1, 1
Set DataReport1.DataSource = rs
DataReport1.Show   ' Mostramos el reporte

Y bueno, con eso concluyo este juego de 3 post básicos que intentan explicar como usar la conexión a datos, consultas y poblados de controles de presentación. Si tienen algún comentario, corrección o pregunta que quieran compartir gustoso los atenderé. Saludos

! Comentario

  1. Hector Hector
    Julio 8, 2014    

    Excelente aporte amigo yacosta

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Protected by WP Anti Spam

Gracias por su visita.