IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Contenu d'une liste déroulante change en fonction d'un choix d'une autre liste déroulante [AC-2010]


Sujet :

IHM

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mai 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mai 2012
    Messages : 49
    Par défaut Contenu d'une liste déroulante change en fonction d'un choix d'une autre liste déroulante
    Bonjour,

    J'ai un formulaire Détails de l'employé avec :

    Un onglet "Emploi" ayant notamment les listes déroulantes suivantes :
    - Le statut de la personne (Cadre ou non Cadre)
    - La position
    - Le coefficient

    Je voulait que lorsque l'on sélectionne le statut de la personne, le contenu de position se met à jour en fonction (s'il est cadre, qu'il n'affiche que les positions liées aux cadres).
    Idem pour le coefficient qui se met à jour en fonction de la position et du statut.

    J'ai donc inséré le code suivant dans contenu position :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [Salariés - Position].Position FROM [Salariés - Position] WHERE ((([Salariés - Position].Statut)=[Formulaires]![Détails de l'employé]![Statut]));
    Le code suivant dans contenu coefficient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [Salariés - Position].Coefficient FROM [Salariés - Position] WHERE ((([Salariés - Position].Statut)=[Formulaires]![Détails de l'employé]![Statut]) AND (([Salariés - Position].Position)=[Formulaires]![Détails de l'employé]![Position]));

    Enfin, pour qu'il puisse ce mettre à jour, j'ai inséré en VBA "Après MAJ" le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Position_AfterUpdate()
    Me.Coefficient = Null
    Me.Coefficient.Requery
    Me.Coefficient = Me.Position.ItemData(0)
    End Sub
     
    Private Sub Statut_AfterUpdate()
    Me.Position = Null
    Me.Position.Requery
    Me.Position = Me.Statut.ItemData(0)
    End Sub

    Jusque là tout va bien, mon formulaire marche du tonnerre.

    Sauf que ce formulaire, je l'ai joint à un formulaire de navigation (onglets horizontaux à 2 niveaux). Et là, c'est le drame.
    Quand je change le statut, et que je vais sur Position, une fenêtre s'ouvre :
    "Entrer une valeur de paramètre Formulaires!Détails de l'employé!Statut"

    Ça marche très bien quand je ne passe pas par le formulaire navigation.... comment faire svp ?

    Merci d'avance pour votre aide !

  2. #2
    Membre éclairé Avatar de Pittouti
    Homme Profil pro
    Consultant SAP
    Inscrit en
    Avril 2012
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant SAP
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2012
    Messages : 246
    Par défaut
    Regarde la base jointe si ton besoin ressemble à ça.

    Pour te dire je n'ai utilisé aucun code VBA
    Fichiers attachés Fichiers attachés

  3. #3
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mai 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mai 2012
    Messages : 49
    Par défaut
    Merci pour ta réponse. Effectivement la macro n'était pas nécessaire pour la maj, merci pour le refresh

    J'ai repris ton fichier pour faire la même chose que j'ai fait sur ma bdd, et comme sur la mienne, ça donne le même soucis. Tu prends le formulaire seul, ça marche. Tu prends le formulaire de navigation, ça ne marche plus.... Au secours


    Voir fichier ici :
    Fichiers attachés Fichiers attachés

  4. #4
    Membre éclairé Avatar de Pittouti
    Homme Profil pro
    Consultant SAP
    Inscrit en
    Avril 2012
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant SAP
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2012
    Messages : 246
    Par défaut
    est ce que tu pourras me renvoyer ton formulaire de navigation ?

  5. #5
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mai 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mai 2012
    Messages : 49
    Par défaut
    Je peux te l'envoyer, mais c'est exactement la même chose que la modif que j'ai faite et jointe dans mon message précédent. C'est le même principe et la même erreur, avec les mêmes propriétés.

    Il n'y a que le texte qui change...

  6. #6
    Membre éclairé Avatar de Pittouti
    Homme Profil pro
    Consultant SAP
    Inscrit en
    Avril 2012
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant SAP
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2012
    Messages : 246
    Par défaut
    OK,

    je regarde alors, parceque je ne savais pas que tu l'as déjà modifié.

    un loupéeeeeee

  7. #7
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 64
    Par défaut
    Salut !

    Dans mon projet j'ai une combobox "nom" et une combobox "prenom". Lorsque je sélectionne un nom, les prénoms associés se retrouvent dans la combobox prenom

    C'est un peu le même principe que pour le tient, je te joint le code :

    (A savoir que c'est une fonction qui s'exécute dans un module de classe, mais tu peux très bien faire la même chose à l'intérieur d'un form)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    Public Function combo_prenom(ByVal nom As String)
     
    Dim query_prenom As String
    Dim rs As Recordset
    Dim iCount, iRecCount As Integer
     
    query_prenom = "SELECT *** FROM *** WHERE *** = '" & nom & "';"
     
    Set rs = CurrentDb.OpenRecordset(query_prenom)
     
    'On compte le nombre d'enregistrement associés au nom sélectionné
     
    rs.MoveLast
     
    iRecCount = rs.RecordCount
     
    rs.MoveFirst
     
    'On stocke chacun de ces enregistrements associés dans la combobox prenom
     
    For iCount = 1 To iRecCount
     
    [Form_Gestion de compte].combo_prenom.AddItem rs("***")
    [Form_Gestion des équipes].combo_prenom.AddItem rs("***")
     
    rs.MoveNext
     
    Next
     
    End Function

  8. #8
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 64
    Par défaut
    Donc en gros pour ton projet à toi ce serait plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Dim query_position As String
    Dim rs As Recordset
    Dim iCount, iRecCount As Integer
    
    statut = TaComboBoxStatut.Value
    
    query_position = SELECT Position FROM [Salariés - Position] WHERE Statut = '" & statut & "';"
    
    Set rs = CurrentDb.OpenRecordset(query_position)
    
    rs.MoveLast
     
    iRecCount = rs.RecordCount
     
    rs.MoveFirst
    
    For iCount = 1 To iRecCount
     
    TaComboBoxPosition.AddItem rs("Position")
    
    rs.MoveNext
     
    Next
    Et avant que cette action soit effectuée n'oublies pas de rajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TaComboBoxPosition.RowSource = ""
    Ce qui permet de vider la combobox position, sinon a chaque fois que tu changeras de statut ça continuera a stocker les positions des anciens statuts sélectionnés

    Normalement tu as juste à remplacer "TaComboBoxPosition" par le nom de ta combobox position et le tour est joué, du moins pour les deux premières combobox. Essaies cela et dis moi ce qu'il en est !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/06/2010, 08h07
  2. Réponses: 3
    Dernier message: 09/06/2010, 10h37
  3. Réponses: 5
    Dernier message: 31/03/2010, 13h20
  4. Réponses: 0
    Dernier message: 09/09/2008, 21h53
  5. Rafraichir un formulaire en fonction d'un choix dans une liste déroulante
    Par talondachil dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/01/2008, 23h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo