Con Ado

Necesito llenar un grid, pero usando el modelo ADO, gracias por tu atención.

1 respuesta

Respuesta
1
Bueno tienes de dos o usas un control "adodc" o código, para crear tu record set
Si utilizas un control ado y la tabla esta como la quieres o cres poder organizarla con una consulta sql solo tines que enlasar el grid con el control, para activar el control da un click derecho sobre el y ve a propiedades en el cuadro de dialogo que aparece selecciona "Use connection String", ahora selecciona el proveedor el más sencillo es Jet 4.0 "OLEDB", ahora debes buscar tu base de datos en tu disco duro y tantan, en las propiedades del control pon tu consulta en "recordsource", recuerda si quieres cambiar la consulta des pues de dar el valor a "recordsource" tienes que utilizar el evento "Refresh" para que vuelva a cargar su recordset con la nueva consulta. (En el orden que ballans poniedndo los campos en la consulta te los dará en el grid)
Esto es lo más rapido y si es recomendable, pero si quieres código ahí te va:
Lo primero es crear una referencia a ADO en el menu Proyecto, Referecias, elige "Microsoft ActiveX Data Objects 2.0 Library"
Bien ahora en una rutina ponesto:
dim strSQL as string
dim rs as adodb.Recordset (recuerda si al poner el punto no te saca la coleccion de objetos no esta hecha la referecia a ADO)
dim cn as adodb.Connection
Set cn =New adodb.Connection
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Tu base de datos.mdb;Mode=Read|Write;Persist Security Info=False;"
cn.open
set rs = cn.Execute(strSQL)
Y parallenar el grid como dije antes solo enlasalo con la propiedad "Recordsource" del Grid o a mano seria algo así:
(Suponiendo que tu base de datos tuviera tres columnas, si tienes más de 5 columnas tal vez ya podrías usar un "for" este ejemplo lo hice con el MSFLEXGRID)
With NmbDelGrid
.cols = 4
.rows = 1
.TextMatrix(0,1)= "Campo1"
.TextMatrix(0,2)= "Campo2"
.TextMatrix(0,3)= "Campo3"
Do not Until rs.Eof
.AddItem .row
.TextMatrix(.row,1) = rs!NmbCampo1
.TextMatrix(.row,2) = rs!NmbCampo1
.TextMatrix(.row,3) = rs!NmbCampo1
rs.movenext
loop
Wnd With
Checalo espero que te allá servido, si acaso esta un poco mal la sintaxis por que lo escribí aquí pero, la técnica es lo que te ba a ayudar.
Bye y No entres en el mundo de la Drogadicción por que ya somos muchos y ya casi no hay.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas