SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: gervb en Lunes 12 de Marzo de 2007, 01:55

Título: Ayuda Con Msflexgrid
Publicado por: gervb en Lunes 12 de Marzo de 2007, 01:55
Hola a todos, estoy realizando una busqueda en un programa que consta de varios formularios y dos de ellos se encargan de realizar esta tarea, bueno el tema es asi tengo un msflexgrid y se como conectarlo a la base de datos y que me lo muestre y todo; pero lo que quiero hacer esta vez es manejar la cantidad de columnas del msflexgrid de modo que me muestre los campos que yo le ordene y no todos los de la base(utilizo access y data no ado).
Si lo entendieron y saben algo, por favor diganme como se realiza este proceso.
Gracias de antemano.
Título: Re: Ayuda Con Msflexgrid
Publicado por: ArKaNtOs en Lunes 12 de Marzo de 2007, 02:40
Pues para eso no necesitas una función especifica del msflexgrid, si ya tienes conectado el msflexgrid al control data atraves de la propiedad datasource, es simple solo realiza un query a la BD y automaticamente el msflexgrid te mostrara los valores que deseas :)

por ejemplo algo asi:

data1.recordsource ="SELECT campo1, campo2 FROM mitabla WHERE campo1=campo2"
data1.refresh

y en el msflexgrid se reflejara esa consulta :)
Título: Re: Ayuda Con Msflexgrid
Publicado por: Mollense en Lunes 12 de Marzo de 2007, 02:42
Hola gervb.-

Bueno, te cuento como lo hacía yo, vos veras después si te sirve !!

Lo único que haces con esta función es pasarle como parámetros el MSHFlexGrid donde se van a mostrar los datos y un recordset con el resultado de la consulta a tu tabla. Y como en la consulta están solamente los campos que vos seleccionás me parece que puede ser una solución.

Código: Text
  1.  
  2. Public Sub CargarGrid(ByRef flx1 As MSHFlexGrid, ByRef rs1 As Recordset)
  3.  
  4.     If rs1 Is Nothing Then Exit Sub
  5.  
  6.     flx1.Rows = 1
  7.     flx1.Clear
  8.    
  9.     flx1.row = 0
  10.     flx1.Col = 0
  11.          
  12.     On Error GoTo exitsub
  13.    
  14.     flx1.Cols = rs1.Fields.Count
  15.        
  16.     For lcol = 0 To flx1.Cols - 1
  17.         flx1.TextMatrix(0, lcol) = rs1.Fields(lcol).Name
  18.     Next lcol
  19.          
  20.     rs1.MoveFirst
  21.  
  22.    
  23.     Do Until rs1.EOF
  24.         lrow = lrow + 1
  25.         flx1.Rows = flx1.Rows + 1
  26.         flx1.FixedRows = 1
  27.         flx1.row = lrow
  28.         For lcol = 1 To flx1.Cols
  29.             dato = rs1.Fields(lcol - 1).Value
  30.             If (Len(dato) > 0) Then
  31.                
  32.             Else
  33.                 dato = ""
  34.             End If
  35.             flx1.TextMatrix(lrow, lcol - 1) = dato
  36.         Next lcol
  37.         rs1.MoveNext
  38.     Loop
  39. exitsub:
  40. End Sub
  41.  

Salutes  :beer: