coyote56
Messages postés22Date d'inscriptionmardi 29 mai 2007StatutMembreDernière intervention19 mai 2009
-
11 juil. 2007 à 00:42
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 2007
-
11 juil. 2007 à 16:57
Bonjour, voila, j'aimerai afficher une liste à partir d'un liste, donc j'explique plus clairement :
J'ai une liste où il s'agit d'une liste de niveau (ex : 1, 2, 3 etc...) et lorsque l'on clique sur par exemple, le niveau 1, j'aimerai que à coté, s'affiche dans l'autre liste, la liste des coordonnées des personnes qui ont ce niveau là.
Voici la feuille :
et Voici le code :
Dans liste 1 (niveau) :
Private Sub niveaulist_Click()
Set tableniveau = bd.OpenRecordset("niveau")
tableniveau.MoveFirst
TableClient.Move (niveaulist.ListIndex)
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 11 juil. 2007 à 01:13
Bonsoir,
c' est normal puisque tu ne fais pas de MoveNext
Mais pour celà et avant tout il faut
>Récupérer le niveau sélectionné
Dim xNiv As String
xNiv=niveaulist.Text
>faire une requête qui ne renvoie que les personnes qui ont ce niveau
Mais pas dans ta table niveau mais ta table clients
Dim TableClient As RecordSet
Set TableClient= bd.OpenRecordset("SELECT * FROM Clients WHERE NIV='" & xNiv & "'")
>après tu pourras faire une boucle
listclient.Clear
With TableClient
.MoveFirst
Do While Not .Eof
listclient.AddItem TableClient.Fields("Num") & TableClient.Fields("Nom") & TableClient.Fields ("Prénom") & TableClient.Fields("Adresse") & TableClient.Fields("CP") & TableClient.Fields("Ville") & TableClient.Fields("Tel port") & TableClient.Fields("Tel fixe") & TableClient.Fields("email") & TableClient.Fields("organisme")
.MoveNext
Loop
End With
Tout ça bien sûr dans Private Sub niveaulist_Click()
<hr />
Pour faire le portrait d' un poisson:
Peindre d' abord un fond.Versez-y ensuite beaucoup beaucoup d' eau.
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 11 juil. 2007 à 09:58
Heu.. je te conseillerai de changer ta super grande liste avec des colonnes faites par des labels par un ListView utilisé en mode détail qui est fait exactement pour cà.
Cela fonctionne qu'a moitié car lorsque l'on clique sur un niveau, cela n'affiche que le client (par ordre du numéro)
par exemple, je clique sur niveau 1, rien ne s'affiche, il faut que je clique sur le niveau 3 pour afficher le client numéro 1, le client numéro 2 ensuite qui est niveau 2 etc...
Mais ça affiche le bon client.
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 11 juil. 2007 à 16:57
salut,
tu persistes et tu signes !
> A quoi sert tableniveau dans ce que tu veux faire ?
> Avec Do While TableClient.Fields("niveau") = niveaulist.Text
A moins que ta table soit triée sur "niveau", et que le premier soit le bon,
le traitement s' arrêtera dès que tu te pointes sur un client qui n' a pas ce niveau
alors qu' il y' en a d' autres plus loin dans la table.
tu devras t' en sortir avec ceci:
With TableClient
.MoveFirst
Do While Not .Eof
If .Fields("niveau") = niveaulist.Text Then
listclient.AddItem .Fields("Num") & .Fields("Nom") & .Fields("Prénom") & .Fields("Adresse") & .Fields("CP") & .Fields("Ville") & .Fields("Tel port") & .Fields("Tel fixe") & .Fields("email") & .Fields("organisme")
End If
.MoveNext
Loop
End With
Tu devras aussi suivre le conseil de DS,
car avec une listbox, côté affichage ça sera pas terrible !
<hr />
Pour faire le portrait d' un poisson:
Peindre d' abord un fond.Versez-y ensuite beaucoup beaucoup d' eau.