cherche le bon événement

Le
benoit
bonjour,
dabord merci à ceux qui on répondu a ma précédente quesstion . pur ceux
qui on de nouvelle reponse je suis toujours à la recherche d'une solution.

ma prochaine question porte sur différente liste de choix dépendente l'une
de l'autre. le problème est que j'ai un champs type d'expert, un champs
métier et un champs spécialisation ma liste de métier dépend du type
d'expert que j'ai choisie et pour la plusparts des types d'expert je n'ai
pas de liste de métier. et il y a une relation de même type entre metier et
spécialisation

j'ai créer un code qui me permet de modifier ma liste de choix selon ce que
je choisis , que voici

' vérifie si le type d'expert corespond a ouvrier spécialiser (id=4) ou
fournisseur (id=5) de matériaux pour permette l'affichage du champ metier si
ce la est vrai sinon il le masque
If (PeExpert.Value = 4) Or (PeExpert.Value = 5) Then
peMetier.Visible = True
Else
peMetier.Visible = False
peMetier.Value = ""
peSpecialisation.Visible = False
peSpecialisation.Value = ""
End If

DoCmd.RunCommand acCmdSaveRecord 'enregistre le record
'permet d'afficher la liste des métier selon le type d'expert choisi
peMetier.RowSource = "Select MeId, MeDesc, ExId from Metier where ExId =
" & PeExpert.Value & ";"
'applique la requete
peMetier.Requery


pour cela pas de problème ça fonctionne.
le problème est l'orsque que je vais dans mon formulaire de saisie et que je
parcour les différentes données je veux que si il y a valeur dans le champs
métier il met le champ a visible et si il est = "" je veux qu'il soit
visible = false et la même chose pour le champs spécialisation.

donc j'ai écrit ceci,
If (peMetier.Value <> "") Then
peMetier.Visible = True
If (peSpecialisation.Value <> "") Then
peSpecialisation.Visible = True
Else
peSpecialisation.Visible = False
End If
Else
peMetier.Visible = False
peSpecialisation.Visible = False
End If

mais le problème c'est que je ne sais pas dans quel événement le mettre pour
que l'orsque je change de data dans mon formulaire ou quand j'ouvre mon
formulaire dans la page saisie car mon formulaire est fair en trois section
de page a onglets et la saisie est sur le troisième onglet. ( c'est
peut-être un détail inutile mais je préfère l'indiquer)

merci de bien vouloir me répondre
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
3stone
Le #16487001
Salut,

"benoit"
[...]
| mais le problème c'est que je ne sais pas dans quel événement le mettre pour
| que l'orsque je change de data dans mon formulaire ou quand j'ouvre mon
| formulaire dans la page saisie car mon formulaire est fair en trois section
| de page a onglets et la saisie est sur le troisième onglet. ( c'est
| peut-être un détail inutile mais je préfère l'indiquer)


Lorsque l'on change d'enregistrement et lorsque l'on ouvre un formulaire
à lieu l'événement "Sur activation" (form_current)


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
benoit
Le #16488231
Bonjour,
merci ce la fonctionne mais pas entièrement donc je vais vous donnez mon
code et si vous voyer pourquois il ne m'affiche pas toujour la valeur de ma
données ou pourquois je ne possède pas les bon choix dans ma liste de choix

voici le code de mes procédure

Private Sub Form_Current() 'permet d'afficher les champs métier et
spécialisation seulement si ils ont une valeurs

ReExpert.Value = ""
Remetier.Value = ""
ReSpecialisation.Value = ""

If (peMetier.Value <> "") Then 'vérifie si il possède une valeur si oui
visible = true
peMetier.Visible = True
If (peSpecialisation.Value <> "") Then 'vérifie si spécialisation
contient une valeurs si oui visible si non invisible
peSpecialisation.Visible = True
Else
peSpecialisation.Visible = False
End If
Else 'si il n'a pas de valeur dans pemetier mettre metier et
spécialisation invisible
peMetier.Visible = False
peSpecialisation.Visible = False
End If

End Sub
____________________________________________

Private Sub PeExpert_AfterUpdate()
' vérifie si le type d'expert corespond a ouvrier spécialiser (id=4) ou
fournisseur (id=5) de matériaux pour permette l'affichage du champ metier si
ce la est vrai sinon il le masque
If (PeExpert.Value = 4) Or (PeExpert.Value = 5) Then
peMetier.Visible = True
Else
peMetier.Visible = False
peMetier.Value = ""
peSpecialisation.Visible = False
peSpecialisation.Value = ""
End If

DoCmd.RunCommand acCmdSaveRecord 'enregistre le record
'permet d'afficher la liste des métier selon le type d'expert choisi
peMetier.RowSource = "Select MeId, MeDesc, ExId from Metier where ExId =
" & PeExpert.Value & ";"
'applique la requete
peMetier.Requery



End Sub
_______________________________________________________________________________

Private Sub peMetier_AfterUpdate()
If (peMetier.Value <> 7) Then 'vérifie si le métier est différent de
entrepreneur généraux (id = 7)car celui ci n'a pas de spécialisation donc il
ne permet pas l'affichage du champ spécialisation
peSpecialisation.Visible = True
Else
peSpecialisation.Visible = False
peSpecialisation.Value = ""
End If

DoCmd.RunCommand acCmdSaveRecord ' enregistre le record
'permet d'afficher seulement la liste des spécialisation du métier
choisis
peSpecialisation.RowSource = "Select [SpId], [SpDesc], [MeId] from
Specialisation where MeId = " & peMetier.Value
'applique la requete
peSpecialisation.Requery

End Sub
_________________________________________________________

donc voici mon code pour permette d'afficher les valeur dans mes liste de
choix pour expert , metier et spécialisation. il n'a pas de procédure qui
affecte vraiment les choix d'expert parce que la liste reste toujours la
même.

merci de votre aide cela est grandement aprécier cela ma permis de
progrésser beaucoup
"3stone"
Salut,

"benoit"
[...]
| mais le problème c'est que je ne sais pas dans quel événement le mettre
pour
| que l'orsque je change de data dans mon formulaire ou quand j'ouvre mon
| formulaire dans la page saisie car mon formulaire est fair en trois
section
| de page a onglets et la saisie est sur le troisième onglet. ( c'est
| peut-être un détail inutile mais je préfère l'indiquer)


Lorsque l'on change d'enregistrement et lorsque l'on ouvre un formulaire
à lieu l'événement "Sur activation" (form_current)


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)



Publicité
Poster une réponse
Anonyme