OVH Cloud OVH Cloud

Ouverture de subform

4 réponses
Avatar
Thibault
Bonjours a tous!

Cette fois , je souhaite , (tj en VBA si possible) , faire apparaitre ou non
des sous formulaires suivant les donnees contenu dans une textbox.
Pour ceux qui ont suivi (en fait je pense a J-Pierre (dailleur la fete etait
bonne? vu beaucoup de concert?)) , Cette textbox est automatiquement
renseigner pas le biais d une combobox.

Donc , l utilisateur clic ksur un nom dans la combobox, prenom et tipe
demploye saffiche automatiquement dans les text box . Et je souhaiterai
maintenant que selon l information renseigner dans "tipe demploye" , ouvrir
le sous formulaire corespondant .

Alors jai pense a un code qui resenblerai a ca..et bien sur ca ne fonctionne
pas, en fait c est plus pour vous donner une idee de ce que je souhaite. (je
debute a peine en codage VBA...) et je vais continuer a travailler dessu ,
mais si quelqun a une idee rapidement ! je suis preneur!!

Private Sub Tipodeempleado_Click()
If Tipodeempleado = "Contratista" Then
Set PlANREPORTcontrasubform = Visible
Set PLANREPORTeventualessubform = Invisible
Set PLANREPORTpermasubform = Invisible
ElseIf Tipodeempleado = "Permanente" Then
Set PlANREPORTcontrasubform = Invisible
Set PLANREPORTeventualessubform = Invisible
Set PLANREPORTpermasubform = Visible
ElseIf Tipodeempleado = "Eventuales" Then
Set PlANREPORTcontrasubform = Invisible
Set PLANREPORTeventualessubform = Visible
Set PLANREPORTpermasubform = Invisible
End Sub


MERCI a tous!

4 réponses

Avatar
Gilles MOUGNOZ
Bonjours a tous!
Cette fois , je souhaite , (tj en VBA si possible) , faire apparaitre ou
non
des sous formulaires suivant les donnees contenu dans une textbox.
Pour ceux qui ont suivi (en fait je pense a J-Pierre (dailleur la fete
etait
bonne? vu beaucoup de concert?)) , Cette textbox est automatiquement
renseigner pas le biais d une combobox.
Donc , l utilisateur clic ksur un nom dans la combobox, prenom et tipe
demploye saffiche automatiquement dans les text box . Et je souhaiterai
maintenant que selon l information renseigner dans "tipe demploye" ,
ouvrir
le sous formulaire corespondant .
Alors jai pense a un code qui resenblerai a ca..et bien sur ca ne
fonctionne
pas, en fait c est plus pour vous donner une idee de ce que je souhaite.
(je
debute a peine en codage VBA...) et je vais continuer a travailler dessu
,
mais si quelqun a une idee rapidement ! je suis preneur!!
Private Sub Tipodeempleado_Click()
If Tipodeempleado = "Contratista" Then
Set PlANREPORTcontrasubform = Visible
Set PLANREPORTeventualessubform = Invisible
Set PLANREPORTpermasubform = Invisible
ElseIf Tipodeempleado = "Permanente" Then
Set PlANREPORTcontrasubform = Invisible
Set PLANREPORTeventualessubform = Invisible
Set PLANREPORTpermasubform = Visible
ElseIf Tipodeempleado = "Eventuales" Then
Set PlANREPORTcontrasubform = Invisible
Set PLANREPORTeventualessubform = Visible
Set PLANREPORTpermasubform = Invisible
End Sub
MERCI a tous!


Bonjour, Thibault

Essaie ceci:
Private Sub Tipodeempleado_Click()
Select Case Tipodeempleado
Case "Contratista" :
PlANREPORTcontrasubform.Visible =True
PLANREPORTeventualessubform.Visible = False
PLANREPORTpermasubform.Visible = False
Case "Permanente" :
PlANREPORTcontrasubform.Visible úlse
PLANREPORTeventualessubform.Visible = False
PLANREPORTpermasubform.Visible = True
Case "Eventuales" :
PlANREPORTcontrasubform.Visible úlse
PLANREPORTeventualessubform.Visible = True
PLANREPORTpermasubform.Visible = False
Case Else:
' Aucune des 3 propositions connues : on masque tout
PlANREPORTcontrasubform.Visible úlse
PLANREPORTeventualessubform.Visible = False
PLANREPORTpermasubform.Visible = False
End Select
End Sub

Bonne continuation

Avatar
Thibault
Merci gilles pour repondre aussi vite!

Ca fonctionne avec ce code!
Mais jaimerai corriger quelquechose: En fait , ce qui se passe , c est que
la procedure se mets en marche que losrque l on click dans la textbox
tipodeempleado. Du coup, a louverture du formulaire les trois sousformulaire
sont a lecran ... de meme,apres la mise a disposition de linformation par la
combobox, le bon formulaire ne saffiche que lorsque l on click dans la
txtbox. (Normal puisque le control de la procedure est sur
tipodeempleado_click() )

Mais je ne sais pas quoi utiliser dautre...
COmment faire pour que la procedure se mette enmarche des louverture du
formulaire , et soit reactive a l information donnee par la combobox?
Encore merci.




Bonjours a tous!
Cette fois , je souhaite , (tj en VBA si possible) , faire apparaitre ou
non
des sous formulaires suivant les donnees contenu dans une textbox.
Pour ceux qui ont suivi (en fait je pense a J-Pierre (dailleur la fete
etait
bonne? vu beaucoup de concert?)) , Cette textbox est automatiquement
renseigner pas le biais d une combobox.
Donc , l utilisateur clic ksur un nom dans la combobox, prenom et tipe
demploye saffiche automatiquement dans les text box . Et je souhaiterai
maintenant que selon l information renseigner dans "tipe demploye" ,
ouvrir
le sous formulaire corespondant .
Alors jai pense a un code qui resenblerai a ca..et bien sur ca ne
fonctionne
pas, en fait c est plus pour vous donner une idee de ce que je souhaite.
(je
debute a peine en codage VBA...) et je vais continuer a travailler dessu
,
mais si quelqun a une idee rapidement ! je suis preneur!!
Private Sub Tipodeempleado_Click()
If Tipodeempleado = "Contratista" Then
Set PlANREPORTcontrasubform = Visible
Set PLANREPORTeventualessubform = Invisible
Set PLANREPORTpermasubform = Invisible
ElseIf Tipodeempleado = "Permanente" Then
Set PlANREPORTcontrasubform = Invisible
Set PLANREPORTeventualessubform = Invisible
Set PLANREPORTpermasubform = Visible
ElseIf Tipodeempleado = "Eventuales" Then
Set PlANREPORTcontrasubform = Invisible
Set PLANREPORTeventualessubform = Visible
Set PLANREPORTpermasubform = Invisible
End Sub
MERCI a tous!


Bonjour, Thibault

Essaie ceci:
Private Sub Tipodeempleado_Click()
Select Case Tipodeempleado
Case "Contratista" :
PlANREPORTcontrasubform.Visible =True
PLANREPORTeventualessubform.Visible = False
PLANREPORTpermasubform.Visible = False
Case "Permanente" :
PlANREPORTcontrasubform.Visible úlse
PLANREPORTeventualessubform.Visible = False
PLANREPORTpermasubform.Visible = True
Case "Eventuales" :
PlANREPORTcontrasubform.Visible úlse
PLANREPORTeventualessubform.Visible = True
PLANREPORTpermasubform.Visible = False
Case Else:
' Aucune des 3 propositions connues : on masque tout
PlANREPORTcontrasubform.Visible úlse
PLANREPORTeventualessubform.Visible = False
PLANREPORTpermasubform.Visible = False
End Select
End Sub

Bonne continuation






Avatar
Thibault
OK .. c bon laisse tomber, j ai trouver tout seul!
je tatonne encore pas mal sur VBA, mais en fait il suffisai de mettre le
code a la suite du code de ma combo box.. ainsi des que linformation arrive
dans la txtbox, le sousfromulaire aproprie s affiche.
Ya juste quelquechose qui me gene un petit peu , c est que a louverture
dune nouvelle page du formulaire , le sousformulaire utilise precedement
reste affiche.
Mais bon c pas trop trop grave puisque de toute facon les utilisateurs
rempliront la combobox en premier lieu .

MERCI ENCORE!
PS... mais si tu as une idee pour me virer ce sousformulaire a louverture
dune nouvelle page ...


Bonjours a tous!
Cette fois , je souhaite , (tj en VBA si possible) , faire apparaitre ou
non
des sous formulaires suivant les donnees contenu dans une textbox.
Pour ceux qui ont suivi (en fait je pense a J-Pierre (dailleur la fete
etait
bonne? vu beaucoup de concert?)) , Cette textbox est automatiquement
renseigner pas le biais d une combobox.
Donc , l utilisateur clic ksur un nom dans la combobox, prenom et tipe
demploye saffiche automatiquement dans les text box . Et je souhaiterai
maintenant que selon l information renseigner dans "tipe demploye" ,
ouvrir
le sous formulaire corespondant .
Alors jai pense a un code qui resenblerai a ca..et bien sur ca ne
fonctionne
pas, en fait c est plus pour vous donner une idee de ce que je souhaite.
(je
debute a peine en codage VBA...) et je vais continuer a travailler dessu
,
mais si quelqun a une idee rapidement ! je suis preneur!!
Private Sub Tipodeempleado_Click()
If Tipodeempleado = "Contratista" Then
Set PlANREPORTcontrasubform = Visible
Set PLANREPORTeventualessubform = Invisible
Set PLANREPORTpermasubform = Invisible
ElseIf Tipodeempleado = "Permanente" Then
Set PlANREPORTcontrasubform = Invisible
Set PLANREPORTeventualessubform = Invisible
Set PLANREPORTpermasubform = Visible
ElseIf Tipodeempleado = "Eventuales" Then
Set PlANREPORTcontrasubform = Invisible
Set PLANREPORTeventualessubform = Visible
Set PLANREPORTpermasubform = Invisible
End Sub
MERCI a tous!


Bonjour, Thibault

Essaie ceci:
Private Sub Tipodeempleado_Click()
Select Case Tipodeempleado
Case "Contratista" :
PlANREPORTcontrasubform.Visible =True
PLANREPORTeventualessubform.Visible = False
PLANREPORTpermasubform.Visible = False
Case "Permanente" :
PlANREPORTcontrasubform.Visible úlse
PLANREPORTeventualessubform.Visible = False
PLANREPORTpermasubform.Visible = True
Case "Eventuales" :
PlANREPORTcontrasubform.Visible úlse
PLANREPORTeventualessubform.Visible = True
PLANREPORTpermasubform.Visible = False
Case Else:
' Aucune des 3 propositions connues : on masque tout
PlANREPORTcontrasubform.Visible úlse
PLANREPORTeventualessubform.Visible = False
PLANREPORTpermasubform.Visible = False
End Select
End Sub

Bonne continuation






Avatar
Gilles MOUGNOZ
OK .. c bon laisse tomber, j ai trouver tout seul!
je tatonne encore pas mal sur VBA, mais en fait il suffisai de mettre le
code a la suite du code de ma combo box.. ainsi des que linformation
arrive
dans la txtbox, le sousfromulaire aproprie s affiche.
Ya juste quelquechose qui me gene un petit peu , c est que a louverture
dune nouvelle page du formulaire , le sousformulaire utilise precedement
reste affiche.
Mais bon c pas trop trop grave puisque de toute facon les utilisateurs
rempliront la combobox en premier lieu .
MERCI ENCORE!
PS... mais si tu as une idee pour me virer ce sousformulaire a louverture
dune nouvelle page ...


Bonjour, Thibault

Si la même procédure doit être appliquée sur différents événements, il
vaudrait mieux la placer dans une procédure séparée.
Crée la proc suivante dans le code de ton formulaire:

Sub AffichageSousForms()
Select Case Tipodeempleado
... ici, tu recopies le reste du code
End Select
End Sub

Maintenant, tu peux appeler cette proc sur les différents événements
désirés.
Concernant ta zone de texte, je pense que tu devrais placer l'appel sur
l'événement "Après Mise à jour" plutôt que sur Clic. Cela devrait donner
ceci:

Private Sub Tipodeempleado_AfterUpdate()
AffichageSousForms
End Sub

Pour ce qui est de l'ouverture d'une nouvelle page, je suppose que tu veux
parler de la navigation entre les différents enregistrements de ta requête.
Dans ce cas, je te suggère d'utiliser l'événement "Sur Activation" qui se
produit chaque fois que l'on change d'enregistrement courant. Cet événement
se produit également à l'ouverture du formulaire et le code devrait donner
ceci:

Private Sub Form_Current()

AffichageSousForms
End Sub

Comme tu peux le voir, rien de très compliqué dans le code, il suffit de
connaitre les bons événements et à quels occasions ils se déclenchent.
Voici quelques sites qui devraient t'aider à trouver les réponses à tes
questions:
http://www.mpfa.info/articles.php?lng=fr&pg pour une liste des sites des
principaux contributeurs du forum;
http://www.self-access.com/access/ pour débuter sur les concepts;
http://officesystem.access.free.fr/ (aussi connu sous l'appellation de "site
de Raymond" ;-)
http://access.developpez.com/faq/ si tu ne trouves pas de réponse dans la
partie consacrée à Access, tu peux t'orienter sur celle consacrée à Visual
Basic.
En dernier recours ou si tu es pris par le temps, le forum est toujours là
:-)

Bonne continuation