Activer case option dans Access
Résolu/Fermé
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
-
Modifié par maxireussite le 12/03/2012 à 14:53
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 - 15 mars 2012 à 23:38
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 - 15 mars 2012 à 23:38
A voir également:
- Activer case option dans Access
- Comment activer windows 10 - Guide
- Activer chromecast - Guide
- Aller à la ligne dans une case excel - Guide
- Activer pavé tactile windows 10 - Guide
- Option booster free avis - Accueil - Guide opérateurs et forfaits
11 réponses
Bruce Willix
Messages postés
11968
Date d'inscription
mardi 24 mai 2011
Statut
Contributeur
Dernière intervention
12 juin 2018
2 590
12 mars 2012 à 14:58
12 mars 2012 à 14:58
La mise en forme conditionnelle, ça dit bien ce que ça veut dire: ça "met en forme" quand une "condition" est respectée.
"Mettre en forme", c'est changer l'aspect - toi tu veux changer la valeur de l'enregistrement, et c'est pas du tout la même chose.
A part ça, je ne comprend pas ton problème:
- soit le champ que tu veux évaluer est déjà du type "Vrai/Faux" et alors il suffit de placer sur ton formulaire un case à cocher/option liée au champ en question (dans la ligne "Source de données") et il n'y aura rien à faire
- soit le champ que tu veux évaluer n'est pas du type vrai/faux et dans ce cas, tu devras mettre comme source de données une requête basée sur un IIF pour indiquer à access que quand la valeur est A, alors le champ est VRAI et FAUX sinon.
"Mettre en forme", c'est changer l'aspect - toi tu veux changer la valeur de l'enregistrement, et c'est pas du tout la même chose.
A part ça, je ne comprend pas ton problème:
- soit le champ que tu veux évaluer est déjà du type "Vrai/Faux" et alors il suffit de placer sur ton formulaire un case à cocher/option liée au champ en question (dans la ligne "Source de données") et il n'y aura rien à faire
- soit le champ que tu veux évaluer n'est pas du type vrai/faux et dans ce cas, tu devras mettre comme source de données une requête basée sur un IIF pour indiquer à access que quand la valeur est A, alors le champ est VRAI et FAUX sinon.
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
12 mars 2012 à 16:03
12 mars 2012 à 16:03
Merci pour la réponse.
En fait, à l'ouverture du formulaire les cases à cocher sont désactivées selon la valeur d'une zone de liste. Quand la zone de liste change de valeur certaines cases à cocher seront activées d'autres désactivées.
C'est pour cela que je parlais de mise en forme conditionnelle. Là je ne m'intéresse pas encore à leur valeur.
En fait, à l'ouverture du formulaire les cases à cocher sont désactivées selon la valeur d'une zone de liste. Quand la zone de liste change de valeur certaines cases à cocher seront activées d'autres désactivées.
C'est pour cela que je parlais de mise en forme conditionnelle. Là je ne m'intéresse pas encore à leur valeur.
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
12 mars 2012 à 17:23
12 mars 2012 à 17:23
Bonjour,
exemple:
case a cocher active
Cocher5.Enabled = True
case a cocher inactive (grisee sur le formulaire)
Cocher5.Enabled = false
Bonne suite
exemple:
case a cocher active
Cocher5.Enabled = True
case a cocher inactive (grisee sur le formulaire)
Cocher5.Enabled = false
Bonne suite
blux
Messages postés
26532
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
18 décembre 2024
3 317
14 mars 2012 à 08:27
14 mars 2012 à 08:27
Salut,
dans l'évènement 'sur changement' de ta zone de liste, tu dois rajouter un truc comme ça :
If zone_de_liste.value = toto then
case1.enabled = true
end if
Par contre, il faudra gérer la valeur à l'ouverture du formulaire ainsi que les différents changements d'état. C'est-à-dire que si on saisit une autre valeur, peut-être que la case doit se retrouver disabled (enabled = false), mais c'est à toi de voir...
dans l'évènement 'sur changement' de ta zone de liste, tu dois rajouter un truc comme ça :
If zone_de_liste.value = toto then
case1.enabled = true
end if
Par contre, il faudra gérer la valeur à l'ouverture du formulaire ainsi que les différents changements d'état. C'est-à-dire que si on saisit une autre valeur, peut-être que la case doit se retrouver disabled (enabled = false), mais c'est à toi de voir...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
Modifié par maxireussite le 14/03/2012 à 12:44
Modifié par maxireussite le 14/03/2012 à 12:44
Bon, ben quand je mets cela dans l'événement "sur changement" de la zone de liste :
Private Sub TypeInterventions_Change()
If TypeInterventions.Value = 3D Then
SolPourtour.Enabled = True
End If
J'ai un message d'erreur : "erreur de compilation - erreur de syntaxe".
Effectivement quand la zone de liste change de valeur la case à cocher doit se désactiver pour empêcher ce choix.
Merci de vos lumières.
Private Sub TypeInterventions_Change()
If TypeInterventions.Value = 3D Then
SolPourtour.Enabled = True
End If
J'ai un message d'erreur : "erreur de compilation - erreur de syntaxe".
Effectivement quand la zone de liste change de valeur la case à cocher doit se désactiver pour empêcher ce choix.
Merci de vos lumières.
blux
Messages postés
26532
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
18 décembre 2024
3 317
Modifié par blux le 14/03/2012 à 13:04
Modifié par blux le 14/03/2012 à 13:04
Comme tu testes une chaine de caractères, tu dois la mettre entre guillemets
If TypeInterventions.Value = "3D" Then
If TypeInterventions.Value = "3D" Then
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
14 mars 2012 à 13:20
14 mars 2012 à 13:20
OK, mais j'ai un message d'erreur entre "End sub" et "End if"
il n'accepte aucun des deux. J'ai mis cela dans l'événement "sur changement" de la zone de liste :
Private Sub TypeInterventions_Change()
If TypeInterventions.Value = "3D" Then
SolPourtour.Enabled = True
End If
il n'accepte aucun des deux. J'ai mis cela dans l'événement "sur changement" de la zone de liste :
Private Sub TypeInterventions_Change()
If TypeInterventions.Value = "3D" Then
SolPourtour.Enabled = True
End If
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
Modifié par maxireussite le 14/03/2012 à 13:27
Modifié par maxireussite le 14/03/2012 à 13:27
Bon ok, en fait faut mettre "End sub" en final après "End If".
Donc ça fonctionne à l'ouverture du formulaire quand la valeur de la zone de liste passe à "3D" la case à cocher s'active.
Mais quand la zone de liste change de valeur, elle reste activée.
D'autre part à l'ouverture du formulaire quand la valeur de la zone de liste n'est pas "3D", la case reste quand même activée...
Comment faire ?
Donc ça fonctionne à l'ouverture du formulaire quand la valeur de la zone de liste passe à "3D" la case à cocher s'active.
Mais quand la zone de liste change de valeur, elle reste activée.
D'autre part à l'ouverture du formulaire quand la valeur de la zone de liste n'est pas "3D", la case reste quand même activée...
Comment faire ?
blux
Messages postés
26532
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
18 décembre 2024
3 317
14 mars 2012 à 13:28
14 mars 2012 à 13:28
Lire ce que j'ai écrit précédemment ;-)
Par contre, il faudra gérer la valeur à l'ouverture du formulaire ainsi que les différents changements d'état. C'est-à-dire que si on saisit une autre valeur, peut-être que la case doit se retrouver disabled (enabled = false), mais c'est à toi de voir...
Par contre, il faudra gérer la valeur à l'ouverture du formulaire ainsi que les différents changements d'état. C'est-à-dire que si on saisit une autre valeur, peut-être que la case doit se retrouver disabled (enabled = false), mais c'est à toi de voir...
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
14 mars 2012 à 13:31
14 mars 2012 à 13:31
Oui oui, j'ai bien lu, mais comment on fait cela ?
blux
Messages postés
26532
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
18 décembre 2024
3 317
Modifié par blux le 14/03/2012 à 14:43
Modifié par blux le 14/03/2012 à 14:43
Dans ton formulaire, tu peux mettre du code dans l'évènement 'sur ouverture' pour mettre une option par défaut : enabled ou non...
Dans le code 'sur changement', il te faut compléter l'existant, de cette manière par exemple :
Mais c'est variable en fonction de ce que tu souhaites faire...
Dans le code 'sur changement', il te faut compléter l'existant, de cette manière par exemple :
Private Sub TypeInterventions_Change() If TypeInterventions.Value = "3D" Then SolPourtour.Enabled = True else SolPourtour.Enabled = False End If End Sub
Mais c'est variable en fonction de ce que tu souhaites faire...
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
14 mars 2012 à 13:51
14 mars 2012 à 13:51
Je vais voir cela.
Merci beaucoup.
Merci beaucoup.
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
15 mars 2012 à 23:33
15 mars 2012 à 23:33
Bon J'ai réussi à moitié, Quand je choisi une valeur dans ma zone de liste certaines case s'activent et d'autres se désactivent, c'est bien ce que je souhaite, grâce à la formule ci-dessous.
Mais quand j'ouvre le formulaire avec une valeur dans la zone de liste les cases qui ne devraient pas être activées le sont...
J'ai essayé d'imposer la désactivation en mettant "non" à "Activé" dans propriété mais cela ne marche pas, le contrôle fait passer la propriété des cases à "Oui" à la prochaine ouverture.
Mais dès que j'active ma zone de liste, tout est Ok.
Private Sub Form_BeforeUpdate(Cancel As Integer)
Private Sub TypeInterventions_Change()
If TypeInterventions.Value = "3D" Then
Desinsectisation.Enabled = True
Désinfection.Enabled = True
Dératisation.Enabled = True
Applicat.Enabled = True
Contrat.Enabled = True
Complément.Enabled = True
Else
Desinsectisation.Enabled = False
Désinfection.Enabled = False
Dératisation.Enabled = False
Applicat.Enabled = False
Contrat.Enabled = False
Complément.Enabled = False
End If
If TypeInterventions.Value = "Anti-termites" Then
InjectionSols.Enabled = True
CeinturageMur.Enabled = True
MurRefClois.Enabled = True
AccotementBois.Enabled = True
Huisseries.Enabled = True
SolPourtour.Enabled = True
PulvérisaSurface.Enabled = True
BarrièreSoubass.Enabled = True
Jardin.Enabled = True
Else
InjectionSols.Enabled = False
CeinturageMur.Enabled = False
MurRefClois.Enabled = False
AccotementBois.Enabled = False
Huisseries.Enabled = False
SolPourtour.Enabled = False
PulvérisaSurface.Enabled = False
BarrièreSoubass.Enabled = False
Jardin.Enabled = False
End If
If TypeInterventions.Value = "Barrière Physico-chimique" Then
MurSoutenement.Enabled = True
GaineTehnique.Enabled = True
JointSingulier.Enabled = True
JointDilatation.Enabled = True
Peripherie.Enabled = True
Else
MurSoutenement.Enabled = False
GaineTehnique.Enabled = False
JointSingulier.Enabled = False
JointDilatation.Enabled = False
Peripherie.Enabled = False
End If
End Sub
Mais quand j'ouvre le formulaire avec une valeur dans la zone de liste les cases qui ne devraient pas être activées le sont...
J'ai essayé d'imposer la désactivation en mettant "non" à "Activé" dans propriété mais cela ne marche pas, le contrôle fait passer la propriété des cases à "Oui" à la prochaine ouverture.
Mais dès que j'active ma zone de liste, tout est Ok.
Private Sub Form_BeforeUpdate(Cancel As Integer)
Private Sub TypeInterventions_Change()
If TypeInterventions.Value = "3D" Then
Desinsectisation.Enabled = True
Désinfection.Enabled = True
Dératisation.Enabled = True
Applicat.Enabled = True
Contrat.Enabled = True
Complément.Enabled = True
Else
Desinsectisation.Enabled = False
Désinfection.Enabled = False
Dératisation.Enabled = False
Applicat.Enabled = False
Contrat.Enabled = False
Complément.Enabled = False
End If
If TypeInterventions.Value = "Anti-termites" Then
InjectionSols.Enabled = True
CeinturageMur.Enabled = True
MurRefClois.Enabled = True
AccotementBois.Enabled = True
Huisseries.Enabled = True
SolPourtour.Enabled = True
PulvérisaSurface.Enabled = True
BarrièreSoubass.Enabled = True
Jardin.Enabled = True
Else
InjectionSols.Enabled = False
CeinturageMur.Enabled = False
MurRefClois.Enabled = False
AccotementBois.Enabled = False
Huisseries.Enabled = False
SolPourtour.Enabled = False
PulvérisaSurface.Enabled = False
BarrièreSoubass.Enabled = False
Jardin.Enabled = False
End If
If TypeInterventions.Value = "Barrière Physico-chimique" Then
MurSoutenement.Enabled = True
GaineTehnique.Enabled = True
JointSingulier.Enabled = True
JointDilatation.Enabled = True
Peripherie.Enabled = True
Else
MurSoutenement.Enabled = False
GaineTehnique.Enabled = False
JointSingulier.Enabled = False
JointDilatation.Enabled = False
Peripherie.Enabled = False
End If
End Sub
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
15 mars 2012 à 23:38
15 mars 2012 à 23:38
Ben en fait il suffisait de mettre exactement la même formule dans l'événement "sur ouverture" du formulaire... et tout fonctionne au poil.
Merci à tous.
Merci à tous.