[Access] Faire dependre une liste d une autre

Résolu/Fermé
V3n1 Messages postés 294 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 12 décembre 2010 - 6 juin 2008 à 09:04
DesTunK Messages postés 361 Date d'inscription dimanche 27 janvier 2013 Statut Membre Dernière intervention 24 février 2016 - 14 févr. 2013 à 15:47
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 :

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"

10 réponses

V3n1 Messages postés 294 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 12 décembre 2010 56
6 juin 2008 à 09:10
Serait-il possible que ce soit la faute de "Après MAJ", je pourrais mettre ce programme dans quel procédure à la place ?

0
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é.
0
V3n1 Messages postés 294 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 12 décembre 2010 56
6 juin 2008 à 09:18
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
0
..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.
0
V3n1 Messages postés 294 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 12 décembre 2010 56
6 juin 2008 à 09:27
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"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
V3n1 Messages postés 294 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 12 décembre 2010 56
6 juin 2008 à 09:30
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

0
Si j'ai bien compris ce que tu expliques ça veut juste dire que c'est ta requête qui n'est pas bonne..
0
V3n1 Messages postés 294 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 12 décembre 2010 56
6 juin 2008 à 09:34
Pourtant, c'est bien les mêmes noms, j'ai bien fait la relation..
0
Désolé je ne sais pas alors.. Là j'ai du boulot mais je prendrais surement quelques minutes dans la journée pour essayer de faire 2 liste comme ça, si tu n'as toujours pas trouvé à ce moment là je te passerai mon code si j'ai réussi.
0
V3n1 Messages postés 294 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 12 décembre 2010 56
6 juin 2008 à 09:45
Le pire, c'est que j'ai repris un code où deux listes fonctionnait ensemble :(
0
V3n1 Messages postés 294 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 12 décembre 2010 56
6 juin 2008 à 10:41
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 :
"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.
0
V3n1 Messages postés 294 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 12 décembre 2010 56
6 juin 2008 à 11:15
Ca y'est ça marche...désolé du dérangement!
0
DesTunK Messages postés 361 Date d'inscription dimanche 27 janvier 2013 Statut Membre Dernière intervention 24 février 2016 157
14 févr. 2013 à 15:47
Tu as écrit où toutes ces lignes de codes ?
J'ai besoin de ta réponse. Merci
0