[Access] Faire dependre une liste d une autre
Résolu
V3n1
Messages postés
294
Date d'inscription
Statut
Membre
Dernière intervention
-
DesTunK Messages postés 361 Date d'inscription Statut Membre Dernière intervention -
DesTunK Messages postés 361 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un p'tit problème, en faite je ne vois pas où est mon erreur vu que j'ai déjà fait une manipulation comme ceci.. peut-être vous, pourrez m'aider avec un peu plus de recule.
Je vous explique, j'ai deux tables une PROJET, l'autre PLAN.
Je veux, que lorsque je choisis un projet dans une liste déroulante... il n'affiche que les plans de ce projet dans l'autre liste déroulante.
Voilà ce que j'ai fait.. j'ai affecter la table PROJET à la liste déroulante LstProjetJ'ai affecter la table PLAN à la liste déroulante LstPlanEt dans la liste déroulante LstProjet, en "Après MAJ" j'ai effectuer le programme suivant :
J'ai peut-être oublier de faire quelques quelques choses ? SVP aidez-moi
Merci d'avance
--"Si t'es à cheval sur la victoire, laisse moi t'mettre un coup d'sabot"
J'ai un p'tit problème, en faite je ne vois pas où est mon erreur vu que j'ai déjà fait une manipulation comme ceci.. peut-être vous, pourrez m'aider avec un peu plus de recule.
Je vous explique, j'ai deux tables une PROJET, l'autre PLAN.
Je veux, que lorsque je choisis un projet dans une liste déroulante... il n'affiche que les plans de ce projet dans l'autre liste déroulante.
Voilà ce que j'ai fait.. j'ai affecter la table PROJET à la liste déroulante LstProjetJ'ai affecter la table PLAN à la liste déroulante LstPlanEt dans la liste déroulante LstProjet, en "Après MAJ" j'ai effectuer le programme suivant :
Private Sub LstProjet_AfterUpdate() 'Déclaration des variables Dim IdPro As String Dim SQL As String ' Vérifie que l'on a cliqué sur un projet pour éviter le NULL If Not IsNumeric(Me!LstProjet) Then Exit Sub ' Relation IdPro = Me!LstProjet ' Requête SQL = "SELECT * FROM PLAN WHERE NumProj= " & IdPro & " ORDER BY NumPlan" 'Affecte la chaine SQL a la liste LstPlan.RowSource = SQL ' Dévérouille la liste LstPlan.Enabled = True ' Donne le focus LstPlan.SetFocus ' Déroule la liste des num LstPlan.Dropdown End Sub
J'ai peut-être oublier de faire quelques quelques choses ? SVP aidez-moi
Merci d'avance
--"Si t'es à cheval sur la victoire, laisse moi t'mettre un coup d'sabot"
A voir également:
- [Access] Faire dependre une liste d une autre
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Site dangereux liste - Guide
- Liste site streaming illégal - Accueil - Services en ligne
10 réponses
Serait-il possible que ce soit la faute de "Après MAJ", je pourrais mettre ce programme dans quel procédure à la place ?
salut !
Je pense qu'il faut que tu réactualises ta liste déroulante pour qu'elle prenne en compte les données que tu lui transmets.
'Affecte la chaine SQL a la liste
LstPlan.RowSource = SQL
'Actualise la liste
LstPlan.requery
Je pense que ça devrait faire l'affaire, en même temps je ne suis pas un très grand connaisseur en vba et ça fait un moment que je ne l'ai lus utilisé.
Je pense qu'il faut que tu réactualises ta liste déroulante pour qu'elle prenne en compte les données que tu lui transmets.
'Affecte la chaine SQL a la liste
LstPlan.RowSource = SQL
'Actualise la liste
LstPlan.requery
Je pense que ça devrait faire l'affaire, en même temps je ne suis pas un très grand connaisseur en vba et ça fait un moment que je ne l'ai lus utilisé.
Ca ne marche pas, j'ai pas l'impression que la deuxième liste prend en compte la première..
Si quelqu'un à d'autres propositions ?
Merci d'avance. J'vais retourner chercher :x
Si quelqu'un à d'autres propositions ?
Merci d'avance. J'vais retourner chercher :x
..j'avais exactement ce genre d'exercice en cours en fait, je me rappelle avoir utilisé le .requery pour réactualiser, je pense que tu devras l'utiliser à un moment ou un autre.. par contre je ne me souviens pas avoir utilisé de .Rowsource.
Si je me rappelle bien j'avais basé la liste sur une requête sql (dans données>sources je crois) et sur choix de la première liste cela me modifiait la requête, le .requery servait à l'appliquer à la seconde liste..
Désolé de ne pas pouvoir t'aider plus que ça, c'est tout ce dont je me souviens.
Si je me rappelle bien j'avais basé la liste sur une requête sql (dans données>sources je crois) et sur choix de la première liste cela me modifiait la requête, le .requery servait à l'appliquer à la seconde liste..
Désolé de ne pas pouvoir t'aider plus que ça, c'est tout ce dont je me souviens.
Non tu m'as aidé, parce que si j'arrive pas à trouver mon erreur, j'essayerais comme tu m'as dit avec des requètes.M'enfin j'ai déjà trouver ma première erreur..en faite mon champ n'était pas numérique donc j'ai supprimer "If NOT IsNUMERIC(Me!...)" ... Ca ne marche toujours pas mais je suis sûr que j'suis près du but lol --"Si t'es à cheval sur la victoire, laisse moi t'mettre un coup d'sabot"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En faite, j'vais t'expliquer ^^
Maintenant quand je choisit ma première liste, exemple numéro de projet "P6285".. Il m'ouvre la petite fenêtre de paramètre avec marqué comme paramètre mon num de projet donc ici "P6285". Si j'tape un bon numéro de projet, il arrivra dans la deuxième liste à trouver les numéros des plans correspondants.
Si ça peut t'aider, à m'aider lol
Maintenant quand je choisit ma première liste, exemple numéro de projet "P6285".. Il m'ouvre la petite fenêtre de paramètre avec marqué comme paramètre mon num de projet donc ici "P6285". Si j'tape un bon numéro de projet, il arrivra dans la deuxième liste à trouver les numéros des plans correspondants.
Si ça peut t'aider, à m'aider lol
Je ne comprend pas pourquoi, à la place de prendre la valeur de ma liste1 comme "une vraie valeur", il l'a prend pour un paramètre.Pourtant ma requète est juste :
Pour + d'infos : Mes 3 tables :
PROJET(NumProjet, NomProjet)
PLAN(NumPlan, Designation, DateCreation, #NumProj)
CARACTERISTIQUE(Indice, dateModif, Dessinateur, Modif, Fichiers, #NumPl)
La relation est la suivante :
Projet(NumProjet) <-------------->oo PLAN(#NumProj) et PLAN(NumPlan) 1<---------->oo CARACT.(#NumPl)
Infos Divers :
-Tous mes champs num sont de type "texte" vu que c'est du alphanumérique.
- Ma première liste = choisit le projet voulu (LstProjet)
- Ma deuxième liste = choisit le plan que l'on veut du projet choisit (LstPlan). Elle est desactivée, elle s'activite après la procédure.
Voilà ma procédure de la première liste ("Après MAJ") :
SVP aidez-moi à trouver mon erreur.
Merci d'avance.
"SELECT * FROM PLAN WHERE NumProj=" & IdPro & " ORDER BY NumPlan"
Pour + d'infos : Mes 3 tables :
PROJET(NumProjet, NomProjet)
PLAN(NumPlan, Designation, DateCreation, #NumProj)
CARACTERISTIQUE(Indice, dateModif, Dessinateur, Modif, Fichiers, #NumPl)
La relation est la suivante :
Projet(NumProjet) <-------------->oo PLAN(#NumProj) et PLAN(NumPlan) 1<---------->oo CARACT.(#NumPl)
Infos Divers :
-Tous mes champs num sont de type "texte" vu que c'est du alphanumérique.
- Ma première liste = choisit le projet voulu (LstProjet)
- Ma deuxième liste = choisit le plan que l'on veut du projet choisit (LstPlan). Elle est desactivée, elle s'activite après la procédure.
Voilà ma procédure de la première liste ("Après MAJ") :
'Déclaration des variables Dim IdPro As String Dim SQL As String ' Relation IdPro = Me!LstProjet ' Requête SQL = "SELECT * FROM PLAN WHERE NumProj=" & IdPro & " ORDER BY NumPlan" 'Affecte la chaine SQL a la liste LstPlan.RowSource = SQL ' Dévérouille la liste LstPlan.Enabled = True ' Donne le focus LstPlan.SetFocus ' Déroule la liste des num LstPlan.Dropdown End Sub
SVP aidez-moi à trouver mon erreur.
Merci d'avance.