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
| Public Sub MajPlanning()
' La procedure de mise à jour des rendez-vous sur le planning en fonction de la date de debut :
' La procedure selectionne dans la table T_RendezVous les RDV compris entre la date de debut (DateDebut) et la date de debut + 7 jours (DateDebut+7),
' puis met à jour le planning avec ces rendez-vous.
' Pour chaque RDV l'horaire de debut et l'horaire de fin permettent de dimensionner le label correspondant au creneau horaire du debut.
Dim RsPL As DAO.Recordset
Dim Ligne As Integer, Col As Integer
Dim LeSql As String
Dim i As Integer, d As Integer
Dim Color As Long
' Selectionne les RDV compris entre DateDebut et DateDebut+7
LeSql = "SELECT R_RendezVous.* " & _
"FROM R_RendezVous " & _
"WHERE (NE= " & Nz(Forms!F_Planning!IdEmploye, 0) & ") and (R_RendezVous.HoraireDebut < " & FormatDateUS(DateDebut + 7) & ") And (R_RendezVous.HoraireFin >" & FormatDateUS(DateDebut) & ")"
Set RsPL = CurrentDb.OpenRecordset(LeSql, dbOpenForwardOnly)
Forms!F_Planning!Titre.Caption = "PLANNING OF THE WEEK " & UCase(Format(DateDebut, "dd mmmm yyyy")) & " - " & UCase(Format(DateDebut + 6, "dd mmmm yyyy"))
Forms!F_Planning!DateD.Value = DateDebut
' initialise le planning
InitPlanning
MajPostIt
MajNonDispo
With Forms!F_Planning!Planning
Do While Not (RsPL.EOF) ' on parcours les RDV
If Not IsNull(RsPL!Couleur) Then
Color = RsPL!Couleur ' definit la couleur du label.
Else
Color = vbWhite
End If
If DateDiff("d", RsPL!HoraireDebut, RsPL!HoraireFin) = 0 Then
Col = IndiceColonne(RsPL!HoraireDebut)
Ligne = PremierCreneau(RsPL!HoraireDebut)
d = DateDiff("n", RsPL!HoraireDebut, RsPL!HoraireFin) \ 15 ' on determine le nombre de creneaux horaires correspondants à la duree du rdv
.Form("creneau" & Ligne & "_" & Col).Height = 295 * d 'Hauteur du label = Hauteur de la ligne multipliee par le nombre de creneaux
If Not IsNull(RsPL!NC) Then
.Form("creneau" & Ligne & "_" & Col).Caption = CentrerTexte(RsPL!Client, d)
Else
.Form("creneau" & Ligne & "_" & Col).Caption = CentrerTexte(Nz(RsPL!Memo, ""), d)
End If
.Form("creneau" & Ligne & "_" & Col).BackColor = Color ' colorie le label
Else
' mise à jour du conge
MajConge RsPL!HoraireDebut, RsPL!HoraireFin, RsPL!Memo, Color
End If
RsPL.MoveNext
Loop
End With
' liberation
RsPL.Close
Set RsPL = Nothing
End Sub |
Partager