Bonjour à tous et à toutes,
Dans une base gérant des adhérents, j'ai 1 table T_Nouvelles_valeurs et 1 table T_Anciennes_valeurs où sont stockées respectivement les coordonnées (adresse, CP, ville,pays,téléphone,mobile,mail) des adhérents après et avant des modifications éventuelles.
J'ai en état qui me permet d'éditer les nouvelles coordonnées pour les diffuser à toute l'association ; il est basé sur la requête suivante
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT T_Nouvelles_valeurs.MiseAJour, T_Nouvelles_valeurs.N°Adherent, T_Nouvelles_valeurs.Titre, T_Nouvelles_valeurs.NomAdherent, T_Nouvelles_valeurs.PrenomAdherent, T_Nouvelles_valeurs.Adresse, IIf(Mid([T_Nouvelles_valeurs.CP],3,1)="-",Mid([T_Nouvelles_valeurs.CP],InStr([T_Nouvelles_valeurs.CP],"-")+1),[T_Nouvelles_valeurs.CP]) AS CP, T_Nouvelles_valeurs.Ville, T_Nouvelles_valeurs.Region, T_Nouvelles_valeurs.Pays, T_Nouvelles_valeurs.MasquerDonnees, T_Nouvelles_valeurs.Telephone, T_Nouvelles_valeurs.Fax, T_Nouvelles_valeurs.Mobile, T_Nouvelles_valeurs.EMail, T_Nouvelles_valeurs.DateNaissance, T_Nouvelles_valeurs.Adherent, T_Nouvelles_valeurs.TypeAdherent, T_Nouvelles_valeurs.DateAdhesion, T_Nouvelles_valeurs.Fonction, T_Nouvelles_valeurs.Origine, T_Nouvelles_valeurs.DateOrigine, T_Nouvelles_valeurs.Specialite, T_Nouvelles_valeurs.Profession, T_Nouvelles_valeurs.Divers, T_Nouvelles_valeurs.Retraite, T_Nouvelles_valeurs.DateDeces, T_Nouvelles_valeurs.DateRadiation, T_Nouvelles_valeurs.MotifRadiation, T_Nouvelles_valeurs.Chemin FROM T_Nouvelles_valeurs INNER JOIN [SELECT T_Nouvelles_valeurs.N°Adherent, Max(T_Nouvelles_valeurs.MiseAJour) AS MaxDeMiseAJour FROM T_Nouvelles_valeurs GROUP BY T_Nouvelles_valeurs.N°Adherent ]. AS Requete1 ON (T_Nouvelles_valeurs.MiseAJour = Requete1.MaxDeMiseAJour) AND (T_Nouvelles_valeurs.N°Adherent = Requete1.N°Adherent) WHERE (((T_Nouvelles_valeurs.MiseAJour)>=[A partir de quand ?]) AND ((T_Nouvelles_valeurs.MasquerDonnees)=False) AND ((T_Nouvelles_valeurs.Adherent)<>False)) ORDER BY T_Nouvelles_valeurs.MiseAJour DESC;
Par ailleurs,dans cet état, j'ai la procédure suivante au formatage
On me demande s'il est possible de mettre en rouge (par exemple) la ou les coordonnées modifiées.
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
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 Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer) Dim strChemin As String On Error Resume Next strChemin = Me.Dossier & "\" & Me.NomDeChemin If Dir(strChemin) = "" Or Me.MasquerDonnees = -1 Then Me.Imgapercu.Picture = "M:\Hervé\AHA\Photosbmp\Jpg\PhotoVide.Jpg" Else Me!Imgapercu.Picture = strChemin End If Dim Testdate As Integer, dateI As String, Siecle As Integer, AnneeAnnuaire As String, DateAnnuaire As Integer dateI = Year(DateAdhesion) Testdate = Right$(dateI, 2) AnneeAnnuaire = Year(Date) DateAnnuaire = Right$(AnneeAnnuaire, 2) If Testdate <= 35 Then Siecle = 1 Else Siecle = 0 '============================================= 'Rendre toutes les cases a cocher visible For x = 83 To 99 Cacnum = "AG" & Format(x, "#00") Me(Cacnum).Visible = True Next x For x = 0 To 35 Cacnum = "AG" & Format(x, "#00") Me(Cacnum).Visible = True Next x '============================================= 'Date superieure ou egale a 2000 If Siecle = 1 Then For x = 83 To 99 Cacnum = "AG" & Format(x, "#00") Me(Cacnum).Visible = False Next x For x = 0 To Testdate - 1 Cacnum = "AG" & Format(x, "#00") Me(Cacnum).Visible = False Next x 'For x = DateAnnuaire To 35 'Cacnum = "AG" & Format(x, "#00") 'Me(Cacnum).Visible = False 'Next x Else 'Date inferieure a 2000 For x = 83 To Testdate - 1 Cacnum = "AG" & Format(x, "#00") Me(Cacnum).Visible = False Next x 'For x = DateAnnuaire To 35 'Cacnum = "AG" & Format(x, "#00") 'Me(Cacnum).Visible = False 'Next x End If End Sub
Le problème consiste à se dire, par exemple pour l'adresse,
Si l'adresse dans l'état (donc venant de la T_Nouvelles_valeurs) est différente de l'adresse de la T_Anciennes_valeurs, alors le contrôle est affiché en rouge.
La question doit être posée pour chaque donnée (CP,ville,pays,téléphone,mobile,mail).
Mes essais par mise en forme conditionnelle ou vba se sont soldés par des échecs
Merci de votre aide.
A+
C15
Partager