OVH Cloud OVH Cloud

subform visible et unvisible

19 réponses
Avatar
Thibault
Bonjour a tous!

J ai un subform dans mon formulaire. Je souhaiterai quil soit invisible a
louverture du formulaire (propriete> visible/no)

Je souhaiterai quil aparraisse lorsque lutilisateur clik dans une chekbox en
particulier.
Jai entre cette ligne de code toute simple:

Private Sub Check146_Click()
PLANcontratpiezashechassubform.Visible = True
End Sub

Elle souvre bien au clik, ce n est pas le probleme. Le probleme est que
lorsque je change de page de fromulaire ce sous formulaire reste ouvert....
Je souhaiterai quil soit ferme.

En fait lideal serai un code qui dirai
Si chekbox = yes , open subform
ifnot = subform unvisible.

MErci!!

10 réponses

1 2
Avatar
Didier Bicking
Essayes ça :

Private Sub Check146_Click()
if Check146 then
PLANcontratpiezashechassubform.Visible = True
Else
PLANcontratpiezashechassubform.Visible = False
end if
End Sub

En supposant que Check146 soit bien une case à cocher (oui/non)


--
Bon courage

Didier Bicking

http://perso.wanadoo.fr/dbicking


"Thibault" a écrit dans le message de
news:
Bonjour a tous!

J ai un subform dans mon formulaire. Je souhaiterai quil soit invisible a
louverture du formulaire (propriete> visible/no)

Je souhaiterai quil aparraisse lorsque lutilisateur clik dans une chekbox
en
particulier.
Jai entre cette ligne de code toute simple:

Private Sub Check146_Click()
PLANcontratpiezashechassubform.Visible = True
End Sub

Elle souvre bien au clik, ce n est pas le probleme. Le probleme est que
lorsque je change de page de fromulaire ce sous formulaire reste
ouvert....
Je souhaiterai quil soit ferme.

En fait lideal serai un code qui dirai
Si chekbox = yes , open subform
ifnot = subform unvisible.

MErci!!



Avatar
A COSTA
Bonjour
Je pense que tu dois mettre le command

If Check146.Value = True Then
PLANcontratpiezashechassubform.Visible = True
Else
PLANcontratpiezashechassubform.Visible = False
End If

dans la propriété "OnCurrent" de ton formulaire
Bonne journée
A Costa


Bonjour a tous!

J ai un subform dans mon formulaire. Je souhaiterai quil soit invisible a
louverture du formulaire (propriete> visible/no)

Je souhaiterai quil aparraisse lorsque lutilisateur clik dans une chekbox en
particulier.
Jai entre cette ligne de code toute simple:

Private Sub Check146_Click()
PLANcontratpiezashechassubform.Visible = True
End Sub

Elle souvre bien au clik, ce n est pas le probleme. Le probleme est que
lorsque je change de page de fromulaire ce sous formulaire reste ouvert....
Je souhaiterai quil soit ferme.

En fait lideal serai un code qui dirai
Si chekbox = yes , open subform
ifnot = subform unvisible.

MErci!!



Avatar
Eric
Bonjour,

Allez, je me lance:
Sur ouverture du formulaire, quelque soit la propriété Visible du sous
formulaire:

Private Sub Form_Current()
' on force Visible à non du sous-form et on force à Faux la case à
cocher
' pour chaque enregistrement du formulaire
Me.PLANcontratpiezashechassubform.Visible = False
Me.Cocher146 = False
End Sub

Puis sur clic de la case à cocher:
Private Sub Check146_Click()
Me.PLANcontratpiezashechassubform.Visible = Me.Check146
' ainsi : si click je te vois, si reclick je te vois plus
End Sub

PS: tu parlais de changement de page du formulaire, je pense que tu
voulais dire changement d'enregistrement et le formulaire n'est pas
fermé mais masqué.

Bonjour a tous!

J ai un subform dans mon formulaire. Je souhaiterai quil soit invisible a
louverture du formulaire (propriete> visible/no)

Je souhaiterai quil aparraisse lorsque lutilisateur clik dans une chekbox en
particulier.
Jai entre cette ligne de code toute simple:

Private Sub Check146_Click()
PLANcontratpiezashechassubform.Visible = True
End Sub

Elle souvre bien au clik, ce n est pas le probleme. Le probleme est que
lorsque je change de page de fromulaire ce sous formulaire reste ouvert....
Je souhaiterai quil soit ferme.

En fait lideal serai un code qui dirai
Si chekbox = yes , open subform
ifnot = subform unvisible.

MErci!!



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Thibault
Bonjour et merci a tous les deux!!

Je pense que les deux methodes fonctionnent, mais j ai opte pour la seconde.
Cela semble fonctioner parfaitement Eric, le sous formulaire s ouvre et se
ferme bien suivant l etat de la case a cocher...
Mais j ai toujours le meme probleme; lorsque que change d enregistrement
dans le formulaire, le sous formulaire appeler par le code, reste affiche et
ne se masque pas. Donc, par exemple, lorsque j ouvre un nouvel
enregistrement, et si dans l enregistrement precedent la case etait coche,
alors le sous formulaire reste ouvert et la case coche. PAr contre si dans l
enregistrement precedent la case n etait pas coche, alors le sous formulaire
n est pas ouvert et la case non coche.

Je pense qu il me faut une ligne de code qui "reinitialiserai" le formulaire
a chaque ouverture d enregistrement qui me decocherai la case et donc m
enleverai le sous formulaire.

merci encore!!


Bonjour,

Allez, je me lance:
Sur ouverture du formulaire, quelque soit la propriété Visible du sous
formulaire:

Private Sub Form_Current()
' on force Visible à non du sous-form et on force à Faux la case à
cocher
' pour chaque enregistrement du formulaire
Me.PLANcontratpiezashechassubform.Visible = False
Me.Cocher146 = False
End Sub

Puis sur clic de la case à cocher:
Private Sub Check146_Click()
Me.PLANcontratpiezashechassubform.Visible = Me.Check146
' ainsi : si click je te vois, si reclick je te vois plus
End Sub

PS: tu parlais de changement de page du formulaire, je pense que tu
voulais dire changement d'enregistrement et le formulaire n'est pas
fermé mais masqué.

Bonjour a tous!

J ai un subform dans mon formulaire. Je souhaiterai quil soit invisible a
louverture du formulaire (propriete> visible/no)

Je souhaiterai quil aparraisse lorsque lutilisateur clik dans une chekbox en
particulier.
Jai entre cette ligne de code toute simple:

Private Sub Check146_Click()
PLANcontratpiezashechassubform.Visible = True
End Sub

Elle souvre bien au clik, ce n est pas le probleme. Le probleme est que
lorsque je change de page de fromulaire ce sous formulaire reste ouvert....
Je souhaiterai quil soit ferme.

En fait lideal serai un code qui dirai
Si chekbox = yes , open subform
ifnot = subform unvisible.

MErci!!



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
Eric
re,

Tu es sûr d'avoir mis la procédure sur Activation ( en anglais Current)
du formulaire principal que je t'ai donnée ? Car ce code a pour objet de
masquer ton sous-form et de mettre ta case à cocher à Faux à chaque
changement d'enregistrement et à plus forte raison quand tu te
positionnes sur un nouveau. (Idem si le formulaire principal a la
Propriété Entrée de données à Oui)

Bonjour et merci a tous les deux!!

Je pense que les deux methodes fonctionnent, mais j ai opte pour la seconde.
Cela semble fonctioner parfaitement Eric, le sous formulaire s ouvre et se
ferme bien suivant l etat de la case a cocher...
Mais j ai toujours le meme probleme; lorsque que change d enregistrement
dans le formulaire, le sous formulaire appeler par le code, reste affiche et
ne se masque pas. Donc, par exemple, lorsque j ouvre un nouvel
enregistrement, et si dans l enregistrement precedent la case etait coche,
alors le sous formulaire reste ouvert et la case coche. PAr contre si dans l
enregistrement precedent la case n etait pas coche, alors le sous formulaire
n est pas ouvert et la case non coche.

Je pense qu il me faut une ligne de code qui "reinitialiserai" le formulaire
a chaque ouverture d enregistrement qui me decocherai la case et donc m
enleverai le sous formulaire.

merci encore!!



Bonjour,

Allez, je me lance:
Sur ouverture du formulaire, quelque soit la propriété Visible du sous
formulaire:

Private Sub Form_Current()
' on force Visible à non du sous-form et on force à Faux la case à
cocher
' pour chaque enregistrement du formulaire
Me.PLANcontratpiezashechassubform.Visible = False
Me.Cocher146 = False
End Sub

Puis sur clic de la case à cocher:
Private Sub Check146_Click()
Me.PLANcontratpiezashechassubform.Visible = Me.Check146
' ainsi : si click je te vois, si reclick je te vois plus
End Sub

PS: tu parlais de changement de page du formulaire, je pense que tu
voulais dire changement d'enregistrement et le formulaire n'est pas
fermé mais masqué.





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Avatar
Thibault
c le code que jai entre:

Private Sub PRODREPORTBolillos_Current()
' on force Visible à non du sous-form et on force à Faux la case à
cocher
' pour chaque enregistrement du formulaire
Me.PLANcontratpiezashechassubform.Visible = False
Me.Cocher146 = False
End Sub

Private Sub Check146_Click()
Me.PLANcontratpiezashechassubform.Visible = Me.Check146
' ainsi : si click je te vois, si reclick je te vois plus
End Sub

Ou PRODREPORTbolillos est le formulaire principal....
Alors .. je trouve que la ligne:
Me.Cocher146 = False

est un peu bizarre .. ce ne serai pas plutot check146?.. je viens d essayer
et cela ne functionne pas non plus.. :-(
Ou j ai fait l erreur?


re,

Tu es sûr d'avoir mis la procédure sur Activation ( en anglais Current)
du formulaire principal que je t'ai donnée ? Car ce code a pour objet de
masquer ton sous-form et de mettre ta case à cocher à Faux à chaque
changement d'enregistrement et à plus forte raison quand tu te
positionnes sur un nouveau. (Idem si le formulaire principal a la
Propriété Entrée de données à Oui)

Bonjour et merci a tous les deux!!

Je pense que les deux methodes fonctionnent, mais j ai opte pour la seconde.
Cela semble fonctioner parfaitement Eric, le sous formulaire s ouvre et se
ferme bien suivant l etat de la case a cocher...
Mais j ai toujours le meme probleme; lorsque que change d enregistrement
dans le formulaire, le sous formulaire appeler par le code, reste affiche et
ne se masque pas. Donc, par exemple, lorsque j ouvre un nouvel
enregistrement, et si dans l enregistrement precedent la case etait coche,
alors le sous formulaire reste ouvert et la case coche. PAr contre si dans l
enregistrement precedent la case n etait pas coche, alors le sous formulaire
n est pas ouvert et la case non coche.

Je pense qu il me faut une ligne de code qui "reinitialiserai" le formulaire
a chaque ouverture d enregistrement qui me decocherai la case et donc m
enleverai le sous formulaire.

merci encore!!



Bonjour,

Allez, je me lance:
Sur ouverture du formulaire, quelque soit la propriété Visible du sous
formulaire:

Private Sub Form_Current()
' on force Visible à non du sous-form et on force à Faux la case à
cocher
' pour chaque enregistrement du formulaire
Me.PLANcontratpiezashechassubform.Visible = False
Me.Cocher146 = False
End Sub

Puis sur clic de la case à cocher:
Private Sub Check146_Click()
Me.PLANcontratpiezashechassubform.Visible = Me.Check146
' ainsi : si click je te vois, si reclick je te vois plus
End Sub

PS: tu parlais de changement de page du formulaire, je pense que tu
voulais dire changement d'enregistrement et le formulaire n'est pas
fermé mais masqué.





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr





Avatar
Eric
re,

Bien sûr, il s'agit de Check146 au lieu de Cocher146, erreur de frappe.

Par contre ce qui ne va pas c'est ta ligne
Private Sub PRODREPORTBolillos_Current()
ça devrait être :
Private Sub Form_Current() , et ce quelque soit le nom du formulaire
où alors je perds mon latin ;-)

c le code que jai entre:

Private Sub PRODREPORTBolillos_Current()
' on force Visible à non du sous-form et on force à Faux la case à
cocher
' pour chaque enregistrement du formulaire
Me.PLANcontratpiezashechassubform.Visible = False
Me.Cocher146 = False
End Sub

Private Sub Check146_Click()
Me.PLANcontratpiezashechassubform.Visible = Me.Check146
' ainsi : si click je te vois, si reclick je te vois plus
End Sub

Ou PRODREPORTbolillos est le formulaire principal....
Alors .. je trouve que la ligne:
Me.Cocher146 = False

est un peu bizarre .. ce ne serai pas plutot check146?.. je viens d essayer
et cela ne functionne pas non plus.. :-(
Ou j ai fait l erreur?



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Thibault
re-re!

Encore merci Eric pour maider, et surtout pour etre aussi rapide..!!

Mais je suis vraiment desole de tapprendre que ton latin ne doit plus etre
aussi bon! ;-) !!
Parceque le debug mindique "sub or function not defined" si je laisse juste :
Private sub Form_current()... :-(

Avec cette meme ligne en surligne en jaune... DOnc lerreur vient bien de
cette ligne de code...
Mais en general private sub form_current() sapplique pour nimporte quel
formulaire, je veux dire, il saplique au "current" formulaire koi, celui sur
lequel on travaille.. alors je comprend pas trop...

Jespere que tu a encore de la reserve ... Mais si non, c est pas trop trop
trop grave je peux laisser comme ca ... cest juste que pour les futurs
utilisateurs ce serai mieux s ils pouvaient afficher ou enlever ce
sousformulaire a leur guise...

merci encore , tassure!


re,

Bien sûr, il s'agit de Check146 au lieu de Cocher146, erreur de frappe.

Par contre ce qui ne va pas c'est ta ligne
Private Sub PRODREPORTBolillos_Current()
ça devrait être :
Private Sub Form_Current() , et ce quelque soit le nom du formulaire
où alors je perds mon latin ;-)

c le code que jai entre:

Private Sub PRODREPORTBolillos_Current()
' on force Visible à non du sous-form et on force à Faux la case à
cocher
' pour chaque enregistrement du formulaire
Me.PLANcontratpiezashechassubform.Visible = False
Me.Cocher146 = False
End Sub

Private Sub Check146_Click()
Me.PLANcontratpiezashechassubform.Visible = Me.Check146
' ainsi : si click je te vois, si reclick je te vois plus
End Sub

Ou PRODREPORTbolillos est le formulaire principal....
Alors .. je trouve que la ligne:
Me.Cocher146 = False

est un peu bizarre .. ce ne serai pas plutot check146?.. je viens d essayer
et cela ne functionne pas non plus.. :-(
Ou j ai fait l erreur?



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
Eric
Bonsoir,

Je suis très surpris.
Ton formulaire principal en mode Design - Affiches la fenêtre des
Propriétés du formulaire, onglet Evènement. Au bout de la ligne Sur
Activation, cliques sur les 3 points (...) et choisis Générateur de code
puis Ok.
Tu te retrouves dans le module du formulaire avec déjà écrit:
Private Sub Form_Current()

End Sub

entre ces 2 lignes déjà écrites par le générateur, tu mets :

Me.PLANcontratpiezashechassubform.Visible = False
Me.chk146 = False

pour obtenir:

Private Sub Form_Current()
Me.PLANcontratpiezashechassubform.Visible = False
Me.check146 = False
End Sub

Je serai très surpris que ce soit différent avec une version d'access
supérieure à la version 2000.

Si problème, je peux te faire passer une bd avec un exemple.

re-re!

Encore merci Eric pour maider, et surtout pour etre aussi rapide..!!

Mais je suis vraiment desole de tapprendre que ton latin ne doit plus etre
aussi bon! ;-) !!
Parceque le debug mindique "sub or function not defined" si je laisse juste :
Private sub Form_current()... :-(

Avec cette meme ligne en surligne en jaune... DOnc lerreur vient bien de
cette ligne de code...
Mais en general private sub form_current() sapplique pour nimporte quel
formulaire, je veux dire, il saplique au "current" formulaire koi, celui sur
lequel on travaille.. alors je comprend pas trop...

Jespere que tu a encore de la reserve ... Mais si non, c est pas trop trop
trop grave je peux laisser comme ca ... cest juste que pour les futurs
utilisateurs ce serai mieux s ils pouvaient afficher ou enlever ce
sousformulaire a leur guise...

merci encore , tassure!



re,

Bien sûr, il s'agit de Check146 au lieu de Cocher146, erreur de frappe.

Par contre ce qui ne va pas c'est ta ligne
Private Sub PRODREPORTBolillos_Current()
ça devrait être :
Private Sub Form_Current() , et ce quelque soit le nom du formulaire
où alors je perds mon latin ;-)


c le code que jai entre:

Private Sub PRODREPORTBolillos_Current()
' on force Visible à non du sous-form et on force à Faux la case à
cocher
' pour chaque enregistrement du formulaire
Me.PLANcontratpiezashechassubform.Visible = False
Me.Cocher146 = False
End Sub

Private Sub Check146_Click()
Me.PLANcontratpiezashechassubform.Visible = Me.Check146
' ainsi : si click je te vois, si reclick je te vois plus
End Sub

Ou PRODREPORTbolillos est le formulaire principal....
Alors .. je trouve que la ligne:
Me.Cocher146 = False

est un peu bizarre .. ce ne serai pas plutot check146?.. je viens d essayer
et cela ne functionne pas non plus.. :-(
Ou j ai fait l erreur?



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
.../...
Lire Me.check146 = False pour Me.chk146 = False

Bonsoir,

Je suis très surpris.
Ton formulaire principal en mode Design - Affiches la fenêtre des
Propriétés du formulaire, onglet Evènement. Au bout de la ligne Sur
Activation, cliques sur les 3 points (...) et choisis Générateur de code
puis Ok.
Tu te retrouves dans le module du formulaire avec déjà écrit:
Private Sub Form_Current()

End Sub

entre ces 2 lignes déjà écrites par le générateur, tu mets :

Me.PLANcontratpiezashechassubform.Visible = False
Me.chk146 = False

pour obtenir:

Private Sub Form_Current()
Me.PLANcontratpiezashechassubform.Visible = False
Me.check146 = False
End Sub

Je serai très surpris que ce soit différent avec une version d'access
supérieure à la version 2000.

Si problème, je peux te faire passer une bd avec un exemple.



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

1 2