Masquer un champ inactif [Résolu]

Signaler
Messages postés
23
Date d'inscription
jeudi 30 juillet 2020
Statut
Membre
Dernière intervention
14 août 2020
-
Messages postés
23
Date d'inscription
jeudi 30 juillet 2020
Statut
Membre
Dernière intervention
14 août 2020
-
Bonjour,
Je cherche à conditionner l'affichage d'un champ par rapport au résultat d'un autre. Exemple si le resultat du champ2 est oui je veux qu'apparaisse le champ3 par exemple, a contrario si la réponse et non je voudrez que rien n'apparaisse. Exemple ci dessous.

Champ1 : Electricien
Champ2 : Oui
Champ3 : 21/07/2018
Champ4 : Résultats


Champ1 : Electricien
Champ2 : Non

Champ4 : Résultats

Merci de vos réponses

13 réponses

Messages postés
363
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
1 septembre 2020
28
Bonjour,

tu peux soit passer par la mise en forme conditionnelle dans ton formulaire, soit passer par du vba.
if me.champ2=true then
me.champ3.visible=true
else
me.champ3.visible=false
end if

A+
Messages postés
23
Date d'inscription
jeudi 30 juillet 2020
Statut
Membre
Dernière intervention
14 août 2020

Merci de ta réponse, mais cette formule VBA je l'insère ou ? Pour un état c'est la meme chose ?
Messages postés
363
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
1 septembre 2020
28
Pour un état tu peux aussi utiliser la mise en forme conditionnelle, pas besoin de coder.

Si tu veux vraiment coder, place ce code sur l'évènement Open de l'état

A+
Messages postés
23
Date d'inscription
jeudi 30 juillet 2020
Statut
Membre
Dernière intervention
14 août 2020

J'ai essayé vite fais ce matin mais rien de concluant concernant la mise en forme conditionnelle. Je te ferai des copier coller de ce que cela me donne en début de semaine.
Messages postés
363
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
1 septembre 2020
28
Re,
Pour la mise en forme conditionnelle dans l'état, c'est bien de la mise en forme, ce n'est pas un non affichage au sens propre, il faut que tu mettes la couleur d'écriture en blanc (à condition bien sûr que le fond de ton état soit blanc). Je ne crois pas que tu pourras en faire de même pour l'étiquette et le contour.
Pour cela il faudra passer par du vba, en adaptant ce code au nom de tes champs de l'état (ce n'est pas sur l’événement open de l'état mais sur formatage de la section détail de l'état) :
Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
If champ2 = False Then 'on considérant que champ2 fasse référence à un champ oui/non
champ3.Visible = False
Else
champ3.Visible = True
End If
End Sub


A+
Messages postés
23
Date d'inscription
jeudi 30 juillet 2020
Statut
Membre
Dernière intervention
14 août 2020

J'ai effectivement mis le texte en blanc en demandant de le faire apparaitre en noir si le [PD 3 ANS] est Oui
=("Médaille Porte-Drapeau 3 Ans : " & [PD 3 ANS] & " → " & [Date PD 3])
malheureusement il m'affiche en noir meme si la réponse est Non, il reste en blanc (invisible seuleument si il n'y a pas de réponse.
Je vais essayer ton code VBA en esperant ou trouver ou le mettre.
En tout cas merci du mal que tu te donne pour moi
Messages postés
363
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
1 septembre 2020
28
Re,
[pd 3 ans] est un champ d'une table ?
Tu as mis la forme conditionnelle de quelle manière ?

Pour le code vba, un clic droit dans la section détail de l'état, créer le code évèvement, générateur de code, choisis donc "détail" dans la liste de gauche et ensuite "format" dans celle de droite...

A+
Messages postés
23
Date d'inscription
jeudi 30 juillet 2020
Statut
Membre
Dernière intervention
14 août 2020

oui absolument tout comme "Date PD 3 ANS"
Messages postés
363
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
1 septembre 2020
28
Sur le controle texte que tu veux mettre en blanc, tu vas dans format / mise en forme conditionnelle, nouvelle regle, expression (pas valeur du champ), là tu utiles les "...", choisis ton controle [pd 3ans] et rajoutes = faux

A+
Messages postés
23
Date d'inscription
jeudi 30 juillet 2020
Statut
Membre
Dernière intervention
14 août 2020

Comme ceci ? "[PD 3 ANS]=Faux" parce que cela ne fonctionne pas
Messages postés
363
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
1 septembre 2020
28
Sans les " "

Et [pd 3 ans] est également le nom du controle dans l'état ?

A+
Messages postés
23
Date d'inscription
jeudi 30 juillet 2020
Statut
Membre
Dernière intervention
14 août 2020

Bon rien à faire, je ne vais pas t'embeter plus longtemps, je ferai sans cette fonction.
Merci encore au temps que tu ma accordé.
Bien Cordialement.
DG
Messages postés
363
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
1 septembre 2020
28
pfffff

voici une base exemple, avec une table avec 4 champs, dont 1 oui/non ([pd 3 ans]).

L'état affiche le champ3 en blanc si le champ [pd 3 ans] est faux...

Aussi, il y a le code vb que j'ai mis en commentaires, tu as le choix entre les 2 options...

https://www.cjoint.com/c/JHcuwduSfaU

A+
Messages postés
23
Date d'inscription
jeudi 30 juillet 2020
Statut
Membre
Dernière intervention
14 août 2020

Bon il y a du progrès , cela s'affiche mais au lieu de oui j'ai un -1 comme ceci "Médaille Porte-Drapeau 3 ans : -1 →21/03/2018" il faudrai que je transforme le -1 en OUI ,à défaut le faire disparaitre et juste mettre la date, mais si je fait sauter le champ bien entendu cela va détruire la mise en forme
Messages postés
363
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
1 septembre 2020
28 >
Messages postés
23
Date d'inscription
jeudi 30 juillet 2020
Statut
Membre
Dernière intervention
14 août 2020

Bizarre
quel est le format du champ oui/non dans la table ?
Si tu utilises "expression" dans la mise en forme conditionnelle de ta zone qui affiche le texte, tu peux bien entendu ne pas mettre ce champ oui/non dans ce texte, du moment qu'il est présent quelque part dans l'état...
As-tu essayé de faire avec une requête et un vraifaux(champ;"texte si vrai"; "texte si faux") comme indiqué hier ?

A+
Messages postés
363
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
1 septembre 2020
28
Encore + simple,

tu bases ton état sur une requête, requête dans laquelle tu mets les champs que tu voudras voir apparaitre, et tu crées un champs :
phrase:vraifaux([pd 3ans];"Médaille Porte-Drapeau 3 Ans : " & [PD 3 ANS] & " → " & [Date PD 3]";" ")
A+
Messages postés
23
Date d'inscription
jeudi 30 juillet 2020
Statut
Membre
Dernière intervention
14 août 2020

c ton bon cela fonctionne comme je le voulais merci encore