Bonjour à tous
J'ai fait un planning hebdomadaire qui attribue à chaque praticien une activité. il y a une vingtaine d'activité (la case est nommée creneau1_1 puis 1_2 pour le 2ième jour puis 2_1 pour la deuxième activté au premier jour etc... selon les exmeples trouvés sur le forum ici)
Quand on clique sur un creneau, il ouvre un formulaire continu qui affiche la liste des praticiens selon leur préférences d'activités.
Mais il y a des règles en fonction du nombre de creneaux déjà attribués, de l'activité de la veille ou du lendemain et des activités incompatibles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 'on sélectionne les praticiens strSql = "SELECT * FROM R_PreferenceUsers WHERE PreferenceListe LIKE '" & ActivityFilter & "';" 'on détermine la source du formulaire qui propose les praticiens Forms(LeBonFormulaire).Form.RecordSource = strSql
Je pense utiliser un recordset puis tester les une aprés les autres les règles.
Mais comment à la fin retomber sur la sélection du recordsource ainsi "filtré" ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Set Rst =CurrentDb.openrecordset(strSql, dbOpenForwardOnly) Do until Rst.EOF 'Vérifier qu'il ne travaille pas la veille dans une activite avec repos le lendemain Dim StrVeille As Integer StrVeille = Nz(DCount("[ID_Activite]", "T_Activites", "[DateDebutActivite]= " & FormatJourUS(DateDebutActivite - 1) & " AND User='" & Rst!User & "' AND (CodeActivite='p') "), 0) 'Autres vérifications à la suite '...strLendemain si l'activité que l'on lendemain '.....strIncompatible pour les activites incompatibles If StrVeille + StrLendemain + StrIncompatible > 0 then ' Alors le praticien ne doit pas apparaître dans la liste Rst.MoveNext Else Loop
J'espère avoir été suffisamment clair.
Merci d'avance pour vos conseils / Propositions.
Partager