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
| Private Sub Form_Open(Cancel As Integer)
' *****************************************************************************
' Remarque préliminaire
'----------------------------
'
' Le nom des controles est composé d'une partie fixe "txt" puis de deux caractères numériques
' pour référencer les mois et enfin deux caractères numériques pour référencer les jours
' Ainsi dans notre formulaire nous aurons 32 controles sur une ligne et cela sur 12 lignes
' Les controles seront nommés comme suit :
' Sur la ligne 1 : txt0000, txt0001, txt0002, ..., txt0010
' Sur la ligne 2 : txt0100, txt0101, txt0102, ..., txt0110
' et ainsi de suite jusqu'à la dernière ligne.
'Tous ces controles sont indépendants etseront alimentés par la procédure ci-dessous
'
'******************************************************************************
' Déclaration des variables
Dim l_intCompteurLigne As Integer, l_intCompteurControl As Integer
Dim l_lngRouge As Long, l_lngBleu As Long, l_lngVert As Long, l_lngMarron As Long, l_lngJaune As Long, l_lngBlanc As Long, l_lngNoir As Long
Dim l_strSql As String, l_strRadicalLigne As String, l_strRadicalColonne As String
Dim l_rsJournal As DAO.Recordset
' Initialisation des variables de couleur
l_lngRouge = RGB(255, 0, 0)
l_lngBleu = RGB(0, 0, 255)
l_lngVert = RGB(0, 128, 0)
l_lngMarron = RGB(128, 0, 0)
l_lngJaune = RGB(255, 255, 0)
l_lngBlanc = RGB(255, 255, 255)
l_lngNoir = RGB(0, 0, 0)
' récupération des données à afficher
Set l_rsJournal = CurrentDb.OpenRecordset("RAC_Journal")
' Lecture du jeu d'enregistrements
With l_rsJournal
' Boucle tant que le pointeur n'est pas en fin de jeu
Do While Not .EOF
' Boucle sur les mois (normalement tu devrais aller jusqu'à 11 puisque l'index commence à 0)
For l_intCompteurLigne = 0 To 1
' Début de la génération du Nom du controle - "txt" plus le numéro de ligne sur 2 caractères
If l_intCompteurLigne < 10 Then
l_strRadicalLigne = "txt0" & l_intCompteurLigne
Else
l_strRadicalLigne = "txt" & l_intCompteurLigne
End If
' Boucle sur les Jours du mois (Tu devrais donc aller jusqu'à 30 puisque l'index commence à 0)
For l_intCompteurControl = 0 To 10
' Génération du nom complet du controle concerné
If l_intCompteurControl = 0 Then
' récupération de la valeur du premier cghamp du jeu d'enregistrement (le nom du mois)
Me.Controls(l_strRadicalLigne & "00") = .Fields(0)
Else
' permet de gérer la seconde partie du nom du controle sur 2 caractères
If l_intCompteurControl < 10 Then
l_strRadicalColonne = "0" & l_intCompteurControl
Else
l_strRadicalColonne = l_intCompteurControl
End If
Select Case .Fields(l_intCompteurControl)
' Affectation de la couleur de fond et de la couleur d'écriture
Case Is = 1
Me.Controls(l_strRadicalLigne & l_strRadicalColonne).BackColor = l_lngBleu
Me.Controls(l_strRadicalLigne & l_strRadicalColonne).ForeColor = l_lngBlanc
Case Is = 2
Me.Controls(l_strRadicalLigne & l_strRadicalColonne).BackColor = l_lngVert
Me.Controls(l_strRadicalLigne & l_strRadicalColonne).ForeColor = l_lngNoir
Case Is = 3
Me.Controls(l_strRadicalLigne & l_strRadicalColonne).BackColor = l_lngJaune
Me.Controls(l_strRadicalLigne & l_strRadicalColonne).ForeColor = l_lngNoir
Case Is = 4
Me.Controls(l_strRadicalLigne & l_strRadicalColonne).BackColor = l_lngMarron
Me.Controls(l_strRadicalLigne & l_strRadicalColonne).ForeColor = l_lngBlanc
Case Else
Me.Controls(l_strRadicalLigne & l_strRadicalColonne).BackColor = l_lngRouge
Me.Controls(l_strRadicalLigne & l_strRadicalColonne).ForeColor = l_lngNoir
End Select
' Inscription de la valeur dans le controle
Me.Controls(l_strRadicalLigne & l_strRadicalColonne) = .Fields(l_intCompteurControl)
End If
Next
' passe à l'enregistrement suivant
.MoveNext
Next
Loop
End With
End Sub |
Partager