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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
|
Private Sub MyTreeView_Click()
On Error GoTo Err_MyTreeView_Click
Dim Remark As String
Dim Pere As String
''' Déclaration d'un noeud de TreeView utilisé pour insérer un noeud père ou fils.
Dim x As Node
Dim test
Dim k As Integer
''' Affectation des RecordSet
Set lenreg = DBS.OpenRecordset("T Thème", dbOpenDynaset, dbReadOnly)
Set lenregC = DBS.OpenRecordset("T Type", dbOpenDynaset, dbReadOnly)
Set lenregD = DBS.OpenRecordset("T Détails Type", dbOpenDynaset, dbReadOnly)
Set lenregE = DBS.OpenRecordset("T Détails1 type", dbOpenDynaset, dbReadOnly)
''' Contrôles infos présentes ou non
If lenreg.EOF Then ''' VRAI=pas d'infos ; FAUX=infos retournées
MsgBox "Pas d'infos retournées pour la table" + Chr(13) & Chr(10) & Chr(10) + _
"(" & "T Thème" & ")", vbExclamation, "Erreur de Données"
''' Fermeture des curseurs
lenreg.Close
Set lenreg = Nothing
lenregC.Close
Set lenregC = Nothing
lenregD.Close
Set lenregD = Nothing
lenregE.Close
Set lenregE = Nothing
''' Sortie
Exit Sub
Else
If lenregC.EOF Then ''' VRAI=pas d'infos ; FAUX=infos retournées
MsgBox "Pas d'infos retournées pour la table" + Chr(13) & Chr(10) & Chr(10) + _
"(" & "T Type" & ")", vbExclamation, "Erreur de Données"
''' Fermeture des curseurs
lenreg.Close
Set lenreg = Nothing
lenregC.Close
Set lenregC = Nothing
lenregD.Close
Set lenregD = Nothing
lenregE.Close
Set lenregE = Nothing
''' Sortie
Exit Sub
Else
If lenregD.EOF Then ''' VRAI=pas d'infos ; FAUX=infos retournées
MsgBox "Pas d'infos retournées pour la table" + Chr(13) & Chr(10) & Chr(10) + _
"(" & "T Détails Type" & ")", vbExclamation, "Erreur de Données"
''' Fermeture des curseurs
lenreg.Close
Set lenreg = Nothing
lenregC.Close
Set lenregC = Nothing
lenregD.Close
Set lenregD = Nothing
lenregE.Close
Set lenregE = Nothing
''' Sortie
Exit Sub
Else
If lenregE.EOF Then ''' VRAI=pas d'infos ; FAUX=infos retournées
MsgBox "Pas d'infos retournées pour la table" + Chr(13) & Chr(10) & Chr(10) + _
"(" & "T Détails1 type" & ")", vbExclamation, "Erreur de Données"
''' Fermeture des curseurs
lenreg.Close
Set lenreg = Nothing
lenregC.Close
Set lenregC = Nothing
lenregD.Close
Set lenregD = Nothing
lenregE.Close
Set lenregE = Nothing
''' Sortie
Exit Sub
End If
End If
End If
End If
''' Définition du TreeView
''' Vider tous les noeuds du TreeView
ocxTree.Nodes.Clear
Set x = ocxTree.Nodes.Add(, , MyKey1, "Thème", 1)
x.BackColor = vbRed ''' rouge pour le fond
x.ForeColor = 16711680 ''' bleu-foncé pour la couleur de police
x.Expanded = True ''' permet de déployer automatiquement l'arborescence
x.ExpandedImage = 2 ''' dans ImageList0, index de l'icône, après déploiement
''' Ajouts des Infos fils a la clé "c" en parcourant le curseur >lenreg<
''' Ajouts des Infos fils a la clé "c" en parcourant le curseur >lenreg<
Do Until lenreg.EOF
''' Si champ vide, alors on met Blanc, sinon on le prend
'''..... IIF(EvaluateExpression, DoIfTrue, DoIfFalse)
Remark = IIf((IsNull(lenreg.Fields(1)) Or lenreg.Fields(1) = ""), "", " (" & lenreg.Fields(1) & ")")
Pere = MyKey1
Set x = ocxTree.Nodes.Add(Pere, tvwChild, _
Pere & MyKey2 & lenreg.Fields(0), _
lenreg.Fields(0) & Remark, 3)
'If lenreg.Fields(0) = MyID_T Then
' x.ForeColor = vbRed ''' Ecrire en Rouge pour un Nouveau
'Else
' x.ForeColor = 16711680 ''' Ecrire en Bleu-Foncé
'End If
'x.Expanded = True ''' permet de déployer automatiquement l'arborescence
x.ExpandedImage = 4 ''' index dans ImageList0 de l'icône après ouverture
Pere = Pere & MyKey2 & lenreg.Fields(0)
Do Until lenregC.EOF
'''..... IIF(EvaluateExpression, DoIfTrue, DoIfFalse)
Remark = IIf((IsNull(lenregC.Fields(2)) Or lenregC.Fields(2) = ""), "", " (" & lenregC.Fields(2) & ")")
''' Si la clef est identique
If lenreg.Fields(0) = lenregC.Fields(0) Then
Set x = ocxTree.Nodes.Add(Pere, tvwChild, _
Pere & MyKey3 & lenreg.Fields(0) & MyKey2 & lenregC.Fields(1), _
lenregC.Fields(1) & Remark, 5)
'Pere & MyKey3 & lenreg.Fields(0) & MyKey2 & lenregC.Fields(1), _
'If lenregC.Fields(1) = MyID_T Then
' x.ForeColor = vbRed ''' Ecrire en Rouge pour un Nouveau
'Else
' x.ForeColor = vbBlack ''' Ecrire en Noir
'End If
End If
Pere = Pere & MyKey3 & lenreg.Fields(0) & MyKey2 & lenregC.Fields(1)
Do Until lenregD.EOF
'''..... IIF(EvaluateExpression, DoIfTrue, DoIfFalse)
Remark = IIf((IsNull(lenregD.Fields(2)) Or lenregD.Fields(2) = ""), "", " (" & lenregD.Fields(2) & ")")
''' Si la clef est identique
If lenregC.Fields(0) = lenregD.Fields(0) Then
Set x = ocxTree.Nodes.Add(Pere, tvwChild, _
Pere & MyKey4 & lenreg.Fields(0) & MyKey3 & lenregC.Fields(1) & MyKey2 & lenregD.Fields(1), _
lenregD.Fields(1) & Remark, 7)
' If lenregD.Fields(1) = MyID_T Then
' x.ForeColor = vbRed ''' Ecrire en Rouge pour un Nouveau
'Else
' x.ForeColor = vbBlack ''' Ecrire en Noir
'End If
End If
Pere = MyKey4 & lenreg.Fields(0) & MyKey3 & lenregC.Fields(1) & MyKey2 & lenregD.Fields(1)
Do Until lenregE.EOF
'''..... IIF(EvaluateExpression, DoIfTrue, DoIfFalse)
Remark = IIf((IsNull(lenregE.Fields(1)) Or lenregE.Fields(1) = ""), "", " (" & lenregE.Fields(1) & ")")
''' Si la clef est identique
If lenregD.Fields(1) = lenregE.Fields(1) Then
Set x = ocxTree.Nodes.Add(Pere, tvwChild, _
Pere & MyKey5 & lenreg.Fields(0) & MyKey4 & lenregC.Fields(1) & MyKey3 & lenregD.Fields(1) & MyKey2 & lenregE.Fields(1), _
lenregE.Fields(1) & Remark, 9)
'If lenregE.Fields(1) = MyID_T Then
' x.ForeColor = vbRed ''' Ecrire en Rouge pour un Nouveau
' Else
' x.ForeColor = vbBlack ''' Ecrire en Noir
' End If
End If
'passage au suivant
lenregE.MoveNext
Loop
'retour au premier
lenregE.MoveFirst
'passage au suivant
lenregD.MoveNext
Loop
'retour au premier
lenregD.MoveFirst
'passage au suivant
lenregC.MoveNext
Loop
'retour au premier
lenregC.MoveFirst
'passage au suivant
lenreg.MoveNext
Loop
''' Fermeture des curseurs
lenreg.Close
Set lenreg = Nothing
lenregC.Close
Set lenregC = Nothing
lenregD.Close
Set lenregD = Nothing
lenregE.Close
Set lenregE = Nothing
Exit_MyTreeView_Click:
Exit Sub
Err_MyTreeView_Click:
MsgBox Err.Description
Resume Exit_MyTreeView_Click
End Sub |
Partager