Ver Mensaje Individual
  #10 (permalink)  
Antiguo 13/05/2009, 02:23
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 17 años, 2 meses
Puntos: 37
Respuesta: Como llenar un flexgrid

Bueno, si te fijas, estamos hablando de un control MSHFlexGrid (componente Microsoft Hierarchical FlexGrid Control 6.0).

El control MSFlexGrid (componente Microsoft FlexGrid Control 6.0) sólo admite la propiedad DataSource en tiempo de diseño y con un enlace a un control Data de DAO.

Para cargar este control en ejecución puedes hacerlo recorriendo el recordset de principio a fin y cargardo en el Grid cada uno de los campos de sus registros con la propiedad TextMatrix(fila, col) o con la propiedad Clip del control (esta última bastante mas rápida ya que no necesita de bucles):

Código vb:
Ver original
  1. With MSFlexGrid1
  2.         .Rows = 2
  3.         .Cols = Rec.Fields.Count
  4.         ' en el encabezado del Grid ponemos los nombres de los campos y ajustamos el ancho
  5.        ' de la columna
  6.        For i = 0 To .Cols - 1
  7.             .TextMatrix(0, i) = Rec.Fields(i).Name
  8.             .ColWidth(i) = Rec.Fields(i).DefinedSize * 120
  9.         Next i
  10.         .Rows = Rec.RecordCount + 1
  11.         .Row = 1
  12.         .Col = 0
  13.         .RowSel = .Rows - 1
  14.         .ColSel = .Cols - 1
  15.         .Clip = Rec.GetString(, Rec.RecordCount)
  16.        .Visible = True
  17.         .Row = 1
  18.     End With

Por cierto que la siguiente línea es redundante, no es que dé error, pero sobra el With .. End With
'With Rec <-- sobra
Rec.Open "Select * From p_users", Con, adOpenStatic, adLockOptimistic
'End With <-- sobra

o si lo prefieres:

With Rec
.Open "Select * From p_users", Con, adOpenStatic, adLockOptimistic
End With