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 originalWith MSFlexGrid1
.Rows = 2
.Cols = Rec.Fields.Count
' en el encabezado del Grid ponemos los nombres de los campos y ajustamos el ancho
' de la columna
For i = 0 To .Cols - 1
.TextMatrix(0, i) = Rec.Fields(i).Name
.ColWidth(i) = Rec.Fields(i).DefinedSize * 120
Next i
.Rows = Rec.RecordCount + 1
.Row = 1
.Col = 0
.RowSel = .Rows - 1
.ColSel = .Cols - 1
.Clip = Rec.GetString(, Rec.RecordCount)
.Visible = True
.Row = 1
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