Bonjour!
Modèle:
Je cherche à modéliser un service de bénévolat professoral - sur mon temps libre et hors du cadre scolaire précisons
Deux tables de base : mentor et élève.
Deux tables "CIM" :
- mentorer, qui comprend les dates de début et fin du mentorat
- matcher, qui liste les propositions de mentorat faites par les professeurs aux élèves, avec la date, et un statut de match (1 pour proposition faite, en attente avant acceptation ; 2 pour candidature de l'élève mais ceci n'est pas dans notre morceau de modèle)
Les propositions de mentorat se font par l'état "EEleve"
La liste ("Liste") déroulante en en-tête simule une identification du professeur.
La création de contrôles par VBA étant du haut allemand pour moi, j'ai opté pour la superposition de contrôles, affichés ou non par VBA.
A coté de chaque élève en détail se trouve donc :
Un bouton d'ajout/proposition ("Commande")
Deux étiquettes : "Prop" et "Ment"
Problème :
Le contrôle de l'affichage se compose de deux parties :
- Vérifier l'existence d'un mentorat existant, auquel cas le bouton Ajouter de l'état serait remplaçé par l'étiquette "Mentorat en cours"
- Vérifier l'absence de propositions précédentes, sinon afficher " Proposition effectuée"
Le bouton de commande ajouter fonctionne aujourd'hui, c'est sur le contrôle de l'affichage conditionnel que je bute.
Merci de trouver ci-dessous le code existant :
J'ai bien sûr pensé à la procédure événementielle sur formatage du détail de l'état.
Premièrement je n'arrive pas à la faire fonctionner. Est-il possible d'obtenir une correction?
Ci-dessous le code comprenant les deux contrôles d'affichage.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 '*****Procédure au formatage du détail de l'état - Code test****** Private Sub Détail_format(Cancel As Integer, formatCount As Integer) '3 est une valeur arbitraire test! If Me.CodeEleve.Value = 3 Then Me.Commande.Visible = False End If End Sub
Je réalise que lors du formatage de l'état la liste d'en tête n'est pas renseignée, d'où ma deuxième question :
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 '****************Code orphelin à insérer, pour le contrôle de l'affichage des boutons _ ' "Ajouter"(Commande5), et des étiquettes "Mentorat en cours"(Ment) et _ ' "Proposition effectuée"(Prop) ' Paramétrage de l'affichage par DAO d'après les tables 1/"Mentorer" et 2/"Matcher"****************** 'Déclarations Dim a As Database Dim b As Object Dim strCritere As String Dim msg, mentor, eleve Set a = CurrentDb mentor = Me.CodeMentor.Value eleve = Me.CodeEleve.Value '**** 1/ Vérification qu'un mentorat n'est pas déjà en cours**** Set b = a.OpenRecordset("mentorer", dbOpenDynaset) strCritere = "Codeeleve LIKE " & Chr(34) & eleve & "*" & Chr(34) _ & " and codementor LIKE " & Chr(34) & mentor & "*" & Chr(34) & " and datefment null" b.FindFirst strCritere If b.NoMatch Then Me.Ment = False Else Me.Commande.Visible = False End If b.Close ' 2/ Vérification que la proposition n'est pas déjà postée Set b = a.OpenRecordset("Matcher", dbOpenDynaset) strCritere = "Codeeleve LIKE " & Chr(34) & eleve & "*" & Chr(34) _ & " and codementor LIKE " & Chr(34) & mentor & "*" & Chr(34) & " and codematch like " & Chr(34) & "1*" & Chr(34) b.FindFirst strCritere If b.NoMatch Then Me.Prop.Visible = False Else Me.Commande.Visible = False End If b.Close: Set b = Nothing '************Fin de code orphelin***************
Peut-on relancer le formatage de l'état par VBA?
Je ne suis pas sûr d'être sur la bonne piste avec le formatage de l'état et recevrai vos remarques avec plaisir!
Cordialement.
Connaissances :
J'ai une connaissance vulgaire du language VBA, surtout une très grande NON-maîtrise des méthodes, propriétés et collections
Partager