1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
Public Sub RemplirFlex(msflex As Object, rs As Adodb.Recordset, Query As String)
'Permet de remplir une flexgrid en fonction du recordset et d'une requête.
DoEvents
Dim i As Integer
Dim j As Integer
Dim r As Integer
Dim c As Integer
On Error GoTo GestionErreur
'-- Remplir le flex s'il y a une requete
If Query <> vbNullString Then
'Tester si le recordset rattaché au flexgrid est ouvert. Dans ce cas, il est fermé, puis réouvert.
'Sinon, on l'ouvre directement.
If rs.State = adStateOpen Then
rs.Close
rs.CursorLocation = adUseServer
Else
rs.CursorLocation = adUseServer
End If
rs.Open Query, CurrentProject.Connection, adOpenKeyset, adLockPessimistic
msflex.Clear
msflex.Redraw = False
msflex.Visible = False
msflex.FixedRows = 1
msflex.FixedCols = 0
msflex.RowHeight(0) = 300
msflex.RowHeightMin = 650
msflex.WordWrap = True
If Not rs.EOF Then
rs.MoveLast
rs.MoveFirst
msflex.Rows = rs.RecordCount + 1
msflex.Cols = rs.Fields.Count
For i = 0 To rs.Fields.Count - 1
msflex.TextMatrix(0, i) = rs.Fields(i).Name
Next
i = 1
Do While Not rs.EOF
For j = 0 To rs.Fields.Count - 1
If Not IsNull(rs.Fields(j).Value) Then
msflex.TextMatrix(i, j) = rs.Fields(j).Value
End If
Next
i = i + 1
rs.MoveNext
Loop
End If
msflex.Redraw = True
msflex.Visible = True
msflex.Refresh
Else
msflex.Clear
End If
Exit Sub
GestionErreur:
MsgBox Err.desc, vbInformation, AppName & " " & AppVersion
End Sub |
Partager