rendre bouton invisible sur condition à l'ouverture d'un form ?
5 réponses
gauso
Bonjour,
Je m'agace depuis une heure avec un truc qui me paraissait =E0 premi=E8re
vue une chose facile et simple =E0 r=E9aliser (!!) :
Voil=E0, je voudrais - pour ne pas alourdir ma base - utiliser un m=EAme
formulaire (formA) pour 2 actions diff=E9rentes (je vous passe le
d=E9tail).
Je voudrais donc "forcer" explicitement l'apparition/disparition de
certains boutons de mon formA en fonction de l'endroit (formulaires
formB ou formC) d'o=F9 on l'ouvre.
J'ai cr=E9=E9 un champ "rep=E8re" dans mon formA =E0 qui je donne telle ou
telle valeur via les boutons qui l'ouvre (depuis formB ou formC).
Et j'essaye d'utiliser cette valeur comme condition de l'apparition
(propri=E9t=E9 visible ou invisible) de mes boutons : mais =E7a marche
pas :o[[[ !!
J'ai essay=E9 =E0 peu pr=E8s tous les =E9v=E8nements : sur ouverture, sur
activ=E9, sur chargement, sur activation... RIEN A FAIRE ! Tout se passe
comme si quand j'ouvre le formulaire la valeur de mon champ rep=E8re
n'=E9tait pas encore enregistr=E9e, non prise en compte en tous les cas :
les boutons qui s'affichent ne sont pas les bons !
Ci-dessous le principe de mon code :
If Me![ReperOrig] =3D 1 Then
Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif]!
[BtnIndexTyp2].Visible =3D False
Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif]!
[BtnRechTyp2].Visible =3D True
Else
Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif]!
[BtnIndexTyp2].Visible =3D True
Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif]!
[BtnRechTyp2].Visible =3D False
End If
Oui je sais il s'agit de sous-formulaire, mais j'ai essay=E9 avec un
bouton au niveau du formulaire et =E7a ne marche pas non plus !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
gauso
Bon, finalement je m'en suis sorti en donnant une instruction de recordsource à l'ouverture de mon formulaire -( j'ai mis le code à l'évènement sur activation...:) toujours pas compris pourquoi, mais ç a marche maintenant !? Si d'aucuns comprenaient la logique de ceci, qu'ils n'hésitent cependant pas à m'éclairer (?), Bonne journée, Sonia.
Bon, finalement je m'en suis sorti en donnant une instruction de
recordsource à l'ouverture de mon formulaire -( j'ai mis le code à
l'évènement sur activation...:) toujours pas compris pourquoi, mais ç a
marche maintenant !?
Si d'aucuns comprenaient la logique de ceci, qu'ils n'hésitent
cependant pas à m'éclairer (?),
Bonne journée,
Sonia.
Bon, finalement je m'en suis sorti en donnant une instruction de recordsource à l'ouverture de mon formulaire -( j'ai mis le code à l'évènement sur activation...:) toujours pas compris pourquoi, mais ç a marche maintenant !? Si d'aucuns comprenaient la logique de ceci, qu'ils n'hésitent cependant pas à m'éclairer (?), Bonne journée, Sonia.
3stone
Salut,
gauso wrote:
Bonjour, Je m'agace depuis une heure avec un truc qui me paraissait à première vue une chose facile et simple à réaliser (!!) : Voilà, je voudrais - pour ne pas alourdir ma base - utiliser un même formulaire (formA) pour 2 actions différentes (je vous passe le détail).
oui... mais encore ? ;-)
Je voudrais donc "forcer" explicitement l'apparition/disparition de certains boutons de mon formA en fonction de l'endroit (formulaires formB ou formC) d'où on l'ouvre. J'ai créé un champ "repère" dans mon formA à qui je donne telle ou telle valeur via les boutons qui l'ouvre (depuis formB ou formC). Et j'essaye d'utiliser cette valeur comme condition de l'apparition (propriété visible ou invisible) de mes boutons : mais ça marche pas :o[[[ !! J'ai essayé à peu près tous les évènements : sur ouverture, sur activé, sur chargement, sur activation... RIEN A FAIRE ! Tout se passe comme si quand j'ouvre le formulaire la valeur de mon champ repère n'était pas encore enregistrée, non prise en compte en tous les cas : les boutons qui s'affichent ne sont pas les bons !
Ci-dessous le principe de mon code : If Me![ReperOrig] = 1 Then Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif]! [BtnIndexTyp2].Visible = False Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif]! [BtnRechTyp2].Visible = True Else Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif]! [BtnIndexTyp2].Visible = True Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif]! [BtnRechTyp2].Visible = False End If
Oui je sais il s'agit de sous-formulaire, mais j'ai essayé avec un bouton au niveau du formulaire et ça ne marche pas non plus !
Si je lis bien, "frmInvIndexTypoSFSpecif" est le sous-formulaire... et dans ce cas, tu l'écris mal...
Bonjour,
Je m'agace depuis une heure avec un truc qui me paraissait à première
vue une chose facile et simple à réaliser (!!) :
Voilà, je voudrais - pour ne pas alourdir ma base - utiliser un même
formulaire (formA) pour 2 actions différentes
(je vous passe le détail).
oui... mais encore ? ;-)
Je voudrais donc "forcer" explicitement l'apparition/disparition de
certains boutons de mon formA en fonction de l'endroit (formulaires
formB ou formC) d'où on l'ouvre.
J'ai créé un champ "repère" dans mon formA à qui je donne telle ou
telle valeur via les boutons qui l'ouvre (depuis formB ou formC).
Et j'essaye d'utiliser cette valeur comme condition de l'apparition
(propriété visible ou invisible) de mes boutons : mais ça marche
pas :o[[[ !!
J'ai essayé à peu près tous les évènements : sur ouverture, sur
activé, sur chargement, sur activation... RIEN A FAIRE ! Tout se passe
comme si quand j'ouvre le formulaire la valeur de mon champ repère
n'était pas encore enregistrée, non prise en compte en tous les cas :
les boutons qui s'affichent ne sont pas les bons !
Ci-dessous le principe de mon code :
If Me![ReperOrig] = 1 Then
Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif]!
[BtnIndexTyp2].Visible = False
Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif]!
[BtnRechTyp2].Visible = True
Else
Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif]!
[BtnIndexTyp2].Visible = True
Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif]!
[BtnRechTyp2].Visible = False
End If
Oui je sais il s'agit de sous-formulaire, mais j'ai essayé avec un
bouton au niveau du formulaire et ça ne marche pas non plus !
Si je lis bien, "frmInvIndexTypoSFSpecif" est le sous-formulaire...
et dans ce cas, tu l'écris mal...
Bonjour, Je m'agace depuis une heure avec un truc qui me paraissait à première vue une chose facile et simple à réaliser (!!) : Voilà, je voudrais - pour ne pas alourdir ma base - utiliser un même formulaire (formA) pour 2 actions différentes (je vous passe le détail).
oui... mais encore ? ;-)
Je voudrais donc "forcer" explicitement l'apparition/disparition de certains boutons de mon formA en fonction de l'endroit (formulaires formB ou formC) d'où on l'ouvre. J'ai créé un champ "repère" dans mon formA à qui je donne telle ou telle valeur via les boutons qui l'ouvre (depuis formB ou formC). Et j'essaye d'utiliser cette valeur comme condition de l'apparition (propriété visible ou invisible) de mes boutons : mais ça marche pas :o[[[ !! J'ai essayé à peu près tous les évènements : sur ouverture, sur activé, sur chargement, sur activation... RIEN A FAIRE ! Tout se passe comme si quand j'ouvre le formulaire la valeur de mon champ repère n'était pas encore enregistrée, non prise en compte en tous les cas : les boutons qui s'affichent ne sont pas les bons !
Ci-dessous le principe de mon code : If Me![ReperOrig] = 1 Then Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif]! [BtnIndexTyp2].Visible = False Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif]! [BtnRechTyp2].Visible = True Else Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif]! [BtnIndexTyp2].Visible = True Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif]! [BtnRechTyp2].Visible = False End If
Oui je sais il s'agit de sous-formulaire, mais j'ai essayé avec un bouton au niveau du formulaire et ça ne marche pas non plus !
Si je lis bien, "frmInvIndexTypoSFSpecif" est le sous-formulaire... et dans ce cas, tu l'écris mal...
Si je lis bien, "frmInvIndexTypoSFSpecif" est le sous-formulaire... et dans ce cas, tu l' cris mal...
Forms![FmrInvIndexTypol].FORM![FmrInvIndexTypoSFSpecif]![BtnIndexTyp2].Vi sible = False devrait aller mieux... pour autant que le reste...
Oups !! Ben en effet : à force de faire des copier/coller sans vérifier (!!!)
Mais alors comment se fait-il que - malgré cette écriture lacunaire, le système ne moufte pas, et même il a fini par comprendre ce que je voulais, puisque les choses fonctionnent maintenant ?
Par ailleurs, contrairement à ce que tu proposes, je désigne habituellement les sous-formulaires de cette façon (modèle trouvé je ne sais plus où) : 'Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif].form! [BtnIndexTyp2].Visible = False
... ??
Mais je viens de vérifier : le fait d'ajouter la précision (form), ne change rien à l'affaire décidément (de toute façon j'avais testé avec un bouton au niveau du formulaire et non dans les sous-form) : dès que j'enlève la mention recordsource dans le bouton ouvrant le formulaire, l'interprétation du code se fait mal (il ne fait pas rien pour autant, mais le repère n'est pour lui pas à 1, donc il affiche les "mauvais" boutons) : Voilà ce que j'ai mis sur le bouton qui ouvre mon formA :
Dim stDocName As String Dim stLinkCriteria As String stDocName = "FmrInvINDEXTYPOL" DoCmd.OpenForm stDocName, , , stLinkCriteria Forms![FmrInvIndexTypol]![ReperOrig] = 1 Forms![FmrInvIndexTypol].RecordSource = "Typologie1"
A plus, Sonia.
Bonsoir 3 et merci de ta fidélité :o),
Si je lis bien, "frmInvIndexTypoSFSpecif" est le sous-formulaire...
et dans ce cas, tu l' cris mal...
Forms![FmrInvIndexTypol].FORM![FmrInvIndexTypoSFSpecif]![BtnIndexTyp2].Vi sible = False
devrait aller mieux... pour autant que le reste...
Oups !! Ben en effet : à force de faire des copier/coller sans
vérifier (!!!)
Mais alors comment se fait-il que - malgré cette écriture lacunaire,
le système ne moufte pas, et même il a fini par comprendre ce que je
voulais, puisque les choses fonctionnent maintenant ?
Par ailleurs, contrairement à ce que tu proposes, je désigne
habituellement les sous-formulaires de cette façon (modèle trouvé je
ne sais plus où) :
'Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif].form!
[BtnIndexTyp2].Visible = False
... ??
Mais je viens de vérifier : le fait d'ajouter la précision (form), ne
change rien à l'affaire décidément (de toute façon j'avais testé avec
un bouton au niveau du formulaire et non dans les sous-form) : dès que
j'enlève la mention recordsource dans le bouton ouvrant le formulaire,
l'interprétation du code se fait mal (il ne fait pas rien pour autant,
mais le repère n'est pour lui pas à 1, donc il affiche les "mauvais"
boutons) :
Voilà ce que j'ai mis sur le bouton qui ouvre mon formA :
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "FmrInvINDEXTYPOL"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Forms![FmrInvIndexTypol]![ReperOrig] = 1
Forms![FmrInvIndexTypol].RecordSource = "Typologie1"
Si je lis bien, "frmInvIndexTypoSFSpecif" est le sous-formulaire... et dans ce cas, tu l' cris mal...
Forms![FmrInvIndexTypol].FORM![FmrInvIndexTypoSFSpecif]![BtnIndexTyp2].Vi sible = False devrait aller mieux... pour autant que le reste...
Oups !! Ben en effet : à force de faire des copier/coller sans vérifier (!!!)
Mais alors comment se fait-il que - malgré cette écriture lacunaire, le système ne moufte pas, et même il a fini par comprendre ce que je voulais, puisque les choses fonctionnent maintenant ?
Par ailleurs, contrairement à ce que tu proposes, je désigne habituellement les sous-formulaires de cette façon (modèle trouvé je ne sais plus où) : 'Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif].form! [BtnIndexTyp2].Visible = False
... ??
Mais je viens de vérifier : le fait d'ajouter la précision (form), ne change rien à l'affaire décidément (de toute façon j'avais testé avec un bouton au niveau du formulaire et non dans les sous-form) : dès que j'enlève la mention recordsource dans le bouton ouvrant le formulaire, l'interprétation du code se fait mal (il ne fait pas rien pour autant, mais le repère n'est pour lui pas à 1, donc il affiche les "mauvais" boutons) : Voilà ce que j'ai mis sur le bouton qui ouvre mon formA :
Dim stDocName As String Dim stLinkCriteria As String stDocName = "FmrInvINDEXTYPOL" DoCmd.OpenForm stDocName, , , stLinkCriteria Forms![FmrInvIndexTypol]![ReperOrig] = 1 Forms![FmrInvIndexTypol].RecordSource = "Typologie1"
A plus, Sonia.
3stone
Salut,
gauso wrote: [...]
Par ailleurs, contrairement à ce que tu proposes, je désigne habituellement les sous-formulaires de cette façon (modèle trouvé je ne sais plus où) : 'Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif].form! [BtnIndexTyp2].Visible = False
Oui bien sûr...
Forms!NomForm!CtrlSousForm.FORM!controle-du-sform
Mais je viens de vérifier : le fait d'ajouter la précision (form), ne change rien à l'affaire décidément (de toute façon j'avais testé avec un bouton au niveau du formulaire et non dans les sous-form) : dès que j'enlève la mention recordsource dans le bouton ouvrant le formulaire, l'interprétation du code se fait mal (il ne fait pas rien pour autant, mais le repère n'est pour lui pas à 1, donc il affiche les "mauvais" boutons) : Voilà ce que j'ai mis sur le bouton qui ouvre mon formA :
Dim stDocName As String Dim stLinkCriteria As String stDocName = "FmrInvINDEXTYPOL" DoCmd.OpenForm stDocName, , , stLinkCriteria Forms![FmrInvIndexTypol]![ReperOrig] = 1 Forms![FmrInvIndexTypol].RecordSource = "Typologie1"
Par contre, je préfère ne pas manipuler un formulaire de l'extérieur. Je préfère utiliser un argument transmis au formulaire à ouvrir.
Par ailleurs, contrairement à ce que tu proposes, je désigne
habituellement les sous-formulaires de cette façon (modèle trouvé je
ne sais plus où) :
'Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif].form!
[BtnIndexTyp2].Visible = False
Oui bien sûr...
Forms!NomForm!CtrlSousForm.FORM!controle-du-sform
Mais je viens de vérifier : le fait d'ajouter la précision (form), ne
change rien à l'affaire décidément (de toute façon j'avais testé avec
un bouton au niveau du formulaire et non dans les sous-form) : dès que
j'enlève la mention recordsource dans le bouton ouvrant le formulaire,
l'interprétation du code se fait mal (il ne fait pas rien pour autant,
mais le repère n'est pour lui pas à 1, donc il affiche les "mauvais"
boutons) :
Voilà ce que j'ai mis sur le bouton qui ouvre mon formA :
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "FmrInvINDEXTYPOL"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Forms![FmrInvIndexTypol]![ReperOrig] = 1
Forms![FmrInvIndexTypol].RecordSource = "Typologie1"
Par contre, je préfère ne pas manipuler un formulaire de l'extérieur.
Je préfère utiliser un argument transmis au formulaire à ouvrir.
Par ailleurs, contrairement à ce que tu proposes, je désigne habituellement les sous-formulaires de cette façon (modèle trouvé je ne sais plus où) : 'Forms![FmrInvIndexTypol]![FmrInvIndexTypoSFSpecif].form! [BtnIndexTyp2].Visible = False
Oui bien sûr...
Forms!NomForm!CtrlSousForm.FORM!controle-du-sform
Mais je viens de vérifier : le fait d'ajouter la précision (form), ne change rien à l'affaire décidément (de toute façon j'avais testé avec un bouton au niveau du formulaire et non dans les sous-form) : dès que j'enlève la mention recordsource dans le bouton ouvrant le formulaire, l'interprétation du code se fait mal (il ne fait pas rien pour autant, mais le repère n'est pour lui pas à 1, donc il affiche les "mauvais" boutons) : Voilà ce que j'ai mis sur le bouton qui ouvre mon formA :
Dim stDocName As String Dim stLinkCriteria As String stDocName = "FmrInvINDEXTYPOL" DoCmd.OpenForm stDocName, , , stLinkCriteria Forms![FmrInvIndexTypol]![ReperOrig] = 1 Forms![FmrInvIndexTypol].RecordSource = "Typologie1"
Par contre, je préfère ne pas manipuler un formulaire de l'extérieur. Je préfère utiliser un argument transmis au formulaire à ouvrir.
Bonjour, Excuse : je n'avais pas vu ta réponse... J'ai suivi ton conseil et j'ai changé l'instruction de "re-chargement" du recordsource de place : mis à l'ouverture de mon formulaire : ça marche aussi en effet... Mais concernant l'affectation de valeur de mon "reperOrig" bien obligée de le commander depuis mon FormA puisque cette affectation se fait justement en fonction de l'endroit d'où j'ouvre le formulaire (!), Avec tout ça, toujours pas compris pourquoi je suis obligée de rappeler à mon formulaire la source de ses données pour qu'il comprenne que le repère est à 1 et qu'il applique les instructions de visibilité/invisibilité des boutons... mais bon : ça marche, c'est le principal ;o) Bon week-end et merci encore, Sonia.
Bonjour,
Excuse : je n'avais pas vu ta réponse...
J'ai suivi ton conseil et j'ai changé l'instruction de "re-chargement"
du recordsource de place : mis à l'ouverture de mon formulaire : ça
marche aussi en effet...
Mais concernant l'affectation de valeur de mon "reperOrig" bien
obligée de le commander depuis mon FormA puisque cette affectation se
fait justement en fonction de l'endroit d'où j'ouvre le formulaire
(!),
Avec tout ça, toujours pas compris pourquoi je suis obligée de
rappeler à mon formulaire la source de ses données pour qu'il
comprenne que le repère est à 1 et qu'il applique les instructions de
visibilité/invisibilité des boutons... mais bon : ça marche, c'est le
principal ;o)
Bon week-end et merci encore,
Sonia.
Bonjour, Excuse : je n'avais pas vu ta réponse... J'ai suivi ton conseil et j'ai changé l'instruction de "re-chargement" du recordsource de place : mis à l'ouverture de mon formulaire : ça marche aussi en effet... Mais concernant l'affectation de valeur de mon "reperOrig" bien obligée de le commander depuis mon FormA puisque cette affectation se fait justement en fonction de l'endroit d'où j'ouvre le formulaire (!), Avec tout ça, toujours pas compris pourquoi je suis obligée de rappeler à mon formulaire la source de ses données pour qu'il comprenne que le repère est à 1 et qu'il applique les instructions de visibilité/invisibilité des boutons... mais bon : ça marche, c'est le principal ;o) Bon week-end et merci encore, Sonia.