Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/04/2008, 18:45
GabrielDR
 
Fecha de Ingreso: julio-2004
Mensajes: 104
Antigüedad: 20 años, 9 meses
Puntos: 0
Re: Ayuda para llenar MSFlexgrid en VB6 con datos de MySQL

Te voy a dejar 2 metodos.
El mas sencillo y en el cual vas a casi vas a calabacearte de risa cuando veas lo facil que es...
y otro un poco mas elaborado.

1.- Te recomiendo que uses el MSHFLEXGRID en vez del Msflexgrid (EL HERATICAL FLEX GRID) o como se escriba.
luego este si acepta un Recordset ADO
asi que se hace esto...

Set Me.MSHFlexGrid1.DataSource = recSQL 'asignar el REcordset DIRECTO al flex

Listo ya vacia todos tus datos al Flexgrid.
ahora solo queda cambiarle los nombres a los encabezados...
y tal vez ocultar algunas columnas que no queramos...

Me.MSHFlexGrid1.TextMatrix(0, 1) = "nombrecolumna1"
Me.MSHFlexGrid1.TextMatrix(0, 2) = "nombrecolumna1"
Me.MSHFlexGrid1.TextMatrix(0, 3) = "nombrecolumna1"
Me.MSHFlexGrid1.TextMatrix(0, 4) = "nombrecolumna1"
Me.MSHFlexGrid1.TextMatrix(0, 5) = "nombrecolumna1"
etc..
Luego a ocultar
Me.MSHFlexGrid1.ColWidth(6) = 0
Me.MSHFlexGrid1.ColWidth(7) = 0
Me.MSHFlexGrid1.ColWidth(8) = 0
etc.. etc... (aqui es poner el ancho de la columna a 0)


Metodo 2.
Aqui el truco esta en saber cuantas columnas y filas tienes
Pero eso se soluciona preguntandole al RECORSET
Columnas = rs.Fields.Count
Filas = rs.RecordCount

Ahora para poblar el Flex
Me.MSHFlexGrid1.Cols = Columnas 'define las columnas
me.msflexgrid1.rows=filas 'define las filas para el flex

'poner encabezados
For i = 0 To Cols
Me.MSHFlexGrid1.TextMatrix(0, i) = recSQL.Fields(i).Name
Next
'Llenar las filas
For j = 1 To filas 'comenzamos en 1 porque el encabezado no se vuelve a llenar
For i = 0 To Cols
Me.MSHFlexGrid1.TextMatrix(j, i) = recSQL.Fields(i).Value
Next
recSQL.MoveNext 'al terminar de llenar todas las columnas brincar al siguiente registro
Next

Listo... Ya se puebla un flex...
Ahora queda darle un pequeño retoque, cambiando el ancho de columnas o bien fomateando el texto numerico como moneda... etc.. etc..
Para ello tienes que barrer todos los textmatrix de la columna y hacer el cambio
Por ejemplo si queremos que todos en una columna tengan formato numerico
for i=1 to me.mshflexgrid1.rows-1
me.mshflexgrid1.textmatrix(i,3)= format(me.mshflexgrid1.textmatrix(i,3)," $ #,##0.#0")
next


Tambien serviria para cambiarle los colores al texto... meter una imagen.. no se tantas cosas...
Dudas Contactame y te apoyo.
__________________
Podria no estar de acuerdo con lo que dices....., pero daria mi vida por el derecho que tienes de decirlo.