Holas:
Aqui envío un par de funciones, que espero a alguien le sirva:
El primero mete un resultset en un array.
El segundo mete un array a un grid (MSFlexGrid).
De ese modo no es necesario tener abiertas las conexiones todo el
tiempo. Las abren, cargan el resultado a un array y las cierran
Public Function cargarray(ByVal rs As rdoResultset)
Dim ejex As Integer, ejey As Integer
ejex = rs.RowCount
For Each cl In rs.rdoColumns
ejey = ejey + 1
Next
ReDim arr(ejex, ejey)
ejex = 0
ejey = 0
Do
Do Until rs.EOF
For Each cl In rs.rdoColumns
arr(ejex, ejey) = cl.Value
ejey = ejey + 1
Next
ejey = 0
ejex = ejex + 1
rs.MoveNext
Loop
Loop Until rs.MoreResults = False
cargarray = arr
End Function
Public Function cargagrid(marr As Variant, MS As MSFlexGrid, mtit As
Variant)
Dim ejex As Integer, ejey As Integer, contador1, contador2, cadena As
String
Dim ta As String
ta = Chr(9)
ejex = UBound(marr, 1)
ejey = UBound(marr, 2)
MS.Cols = ejey
MS.Row = 0
For contador2 = 0 To ejey - 2
MS.Col = contador2 + 1
If UBound(mtit) + 1 > contador2 Then
MS.Text = mtit(contador2)
End If
Next
For contador1 = 0 To ejex - 1
cadena = ta
For contador2 = 0 To ejey - 1
cadena = cadena + marr(contador1, contador2) + ta
Next
cadena = Mid(cadena, 1, Len(cadena))
MS.AddItem (cadena)
Next
MS.RemoveItem (1)
End Function
MarlboroMan