Listbox

charly2812 Messages postés 37 Date d'inscription mercredi 1 mars 2006 Statut Membre Dernière intervention 22 mai 2008 - 20 mars 2008 à 16:16
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 21 mars 2008 à 09:05
Bonjour,
j'ai un petit problème!!
j'explique mon environement:
une table-1 avec un ID-1 et un libellé-1
une table-2 avec un ID-2, un libellé-2 et un ID-1 (celui de la table1)
j'ai un formulaire avec 2 modifiable (listbox).
modifiable-1 qui affiche le libellé-1
modifiable-2 qui affiche le libellé-2

j'aimerais que quand je clic et choisit qqchose dans modifiable-1 la liste des choix dans modifiable-2 soit restreint en fonction du choix du modifiable-1, cad afficher que les libellés-2 dont l'ID-1 (associé) est égal à l'ID-1 choisit dans le modifibale-1.

merci a tous.

9 réponses

Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
20 mars 2008 à 16:31
lors de la séleiton d'un item dans une liste, tu as un évènement qui se déclenche. Je ne me souviens plus de son nom mais ca doit être un truc du genre ItemSelected ou SelectionChanged.
Dans cet EVt, tu fais une requète sur ta table-2 en mettant dans la clause Where un truc du genre "WHERE ID-1 = " & modifiable-1.Text.
tu remplis ensuite la liste 2 avec le résultat de la requète en n'oubliant aps de vider la liste modifiable juste avant, bien sûr
0
charly2812 Messages postés 37 Date d'inscription mercredi 1 mars 2006 Statut Membre Dernière intervention 22 mai 2008 1
20 mars 2008 à 16:45
Merci de ta réponse rapide,

voila se que j'ai fait:
Sur le modifiable-1 j'ai mis un code vb quand on fait un clic dessus:

Private Sub Modifiable-1_Click()

requete = "Select Table-2.ID-2,Table-2.Libelle-2 from Table-2 where ID-1=" & Modifiable-1.text CurrentDb.Execute (requete)

End Sub

evidemment ca marche pas et je sais pas pourquoi.. je pense que ca vient du fait qu'il ne siat pas ce que veut dire Modifiable-1.text...mais je sais pas comment lui faire comprendre qu'il doitt trouver l'ID-1 puis faire la comparaison pour remplir le modifiable-2...
si qqun a une idée...
merci
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 mars 2008 à 16:47
sépare le nom de tes tables et champs :

requete = "Select `Table-2`.`ID-2`, `Table-2`.`Libelle-2` from `Table-2` where `ID-1`=" & Modifiable-1.text

(ce ne sont pas des quotes ' mais ce que produit AltGr+7 ` )
0
charly2812 Messages postés 37 Date d'inscription mercredi 1 mars 2006 Statut Membre Dernière intervention 22 mai 2008 1
20 mars 2008 à 17:01
Désolé mais ca ne marche pas...Que signifie ce caractère, au passage?
merci
0

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

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 mars 2008 à 17:20
permet de délimiter les noms..
utile quand on utilise des noms exotiques ou reservés.
la présence du signe moins - dans le nom de tes champs en fait des noms "exotiques" ...

je trouve également étrange ce -1 qui se promène derrière Modifiable

VB t'as laissé saisir ca dans le nom de ton controle !?
0
charly2812 Messages postés 37 Date d'inscription mercredi 1 mars 2006 Statut Membre Dernière intervention 22 mai 2008 1
20 mars 2008 à 17:23
non, non c'était pour simplifier car j'ai des noms un peu long...avec des underscore pour éviter le problème du -...
mais ca marche toujours pas, je pense que ca vient du fait que quand je fait un modifiable-1.text il retourne pas l'ID-1 mais autre chose et je ne sias pas quoi...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 mars 2008 à 17:27
tu veux l'ID MOINS 1 (soustraction) ?

je pensais que ton champ se nommais "ID-1"

d'ou ce soucis avec tes symboles, ca aide pas a la lecture ^^
0
charly2812 Messages postés 37 Date d'inscription mercredi 1 mars 2006 Statut Membre Dernière intervention 22 mai 2008 1
20 mars 2008 à 17:31
desolé...
voila exactement se que j'ai tapé.
une table Region avec ID-Region et Libelle_Region et ID_Pays
une table Pays avec ID_Pays et libelle_Pays
Un modifiable_Pays
Un modifiable_Region
Je veux que quand je change le pays il me selectionne les regions de ce pays...
je viens de me rendre compte qu'a aucun moment je lui dit de remplir le modifiable_Region....
comment faire???
mercid e ton aide...

Private Sub Modifiable_Pays_Click()

requete = "Select `Region`.`ID_Region`,`Region`.`Libelle_Region` from `Region` where `ID_Pays`=" & Modifiable_Pays.Text
CurrentDb.Execute (requete)

End Sub
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 mars 2008 à 09:05
ben là tu fais un SELECT, c'est cool
mais tu ne fait RIEN des resultats obtenus...

gaffe aussi a bien t'assurer que tu transets bien l'ID_PAYS en mettant Modifiable_Pays.Text

pour les reésultats, te faudrais récupérer un Recordset, en faisant quelque chose qui ressemble à :

Private Sub Modifiable_Pays_Click()
Dim oRs as recordset
Dim sSQL As String
sSQL = "Select `Region`.`ID_Region`,`Region`.`Libelle_Region` from `Region` where `ID_Pays`=" & Modifiable_Pays.Text
Modifiable_Region.Clear
Set oRS = CurrentDb.OpenRecordset(sSQL)
Do Until oRs.EOF
Modifiable_Region.AddItem oRs.Fields("Libelle_Region").Value
oRS.MoveNext
Loop
oRs.Close
End Sub
0
Rejoignez-nous