[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   -
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"
A voir également:

10 réponses

V3n1 Messages postés 294 Date d'inscription   Statut Membre Dernière intervention   56
 
Serait-il possible que ce soit la faute de "Après MAJ", je pourrais mettre ce programme dans quel procédure à la place ?

0
Azraka
 
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   Statut Membre Dernière intervention   56
 
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
Azraka
 
..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   Statut Membre Dernière intervention   56
 
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   Statut Membre Dernière intervention   56
 
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
Azraka
 
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   Statut Membre Dernière intervention   56
 
Pourtant, c'est bien les mêmes noms, j'ai bien fait la relation..
0
Azraka
 
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   Statut Membre Dernière intervention   56
 
Le pire, c'est que j'ai repris un code où deux listes fonctionnait ensemble :(
0
V3n1 Messages postés 294 Date d'inscription   Statut Membre Dernière intervention   56
 
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   Statut Membre Dernière intervention   56
 
Ca y'est ça marche...désolé du dérangement!
0
DesTunK Messages postés 361 Date d'inscription   Statut Membre Dernière intervention   157
 
Tu as écrit où toutes ces lignes de codes ?
J'ai besoin de ta réponse. Merci
0