Listview

Signaler
Messages postés
9
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
19 juillet 2008
-
Messages postés
9
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
19 juillet 2008
-
Bonjour,
c'est la premiere fois que j'utilise une Listview et je me demandais comment faire pour lorsque je cherche ma form,
la premiere ligne de ma ListView soit selectionnée et récuperer la donnée qui se trouve dans la premiere colonne (elle correspond à l'Id de la table de ma Base de donnée.

Merci d'avance pour l'aide!! 

5 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut
"lorsque je cherche ma form" : Tu veux dire "charge" ?

Ajouter un item :
Il faut d'abord dimensionner un objet ListItem correspond à la ligne que tu vas ajouter :
   Dim xItem As ListItem
Puis le déclarer
   Set xItem = ListView1.ListItems.Add(, , "Colonne 1")
Et si tu as des SubItems (des colonnes supplémentaires à la colonne principale)
   xItem.SubItems(1) = "Colonne 2"

Quand tu veux positionner la sélection sur un des Items :
   ListView1.ListItems.Item(1).Selected = True
Eventuellement aussi ceci si la liste est longue et que tu ne vois pas l'item
   ListView1.ListItems.Item(1).EnsureVisible

La donnée de la colonne 1 de la ligne 5 est :
   ListViex1.ListItems.Item(5).Text
La donnée de la colonne 2 de la ligne 5 est :
   ListViex1.ListItems.Item(5).SubItem(1)

Avec les ListView, il faut bien comprendre que la première colonne est la colonne maîtresse.
Les colonnes suivantes sont des SubItems qui commencent à 1 alors qu'il s'agit de la 2ème colonne

Voir l'aide pour les détails + les sources du site

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
9
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
19 juillet 2008

Oui, désolé, j'ai pas relu mais c'est bien chargé que je voulais dire...

Merci pour ta réponse, je vais regarder à ça.
Messages postés
9
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
19 juillet 2008

re,
Je viens de tester mais ça ne fonctionne pas. Voilà mon code:

             Dim i       As Long
             Dim j       As Long
             Dim Itmx    As ListItem

             For i = 1 To rsADO.RecordCount 
                While Not rsADO.EOF

                    Set Itmx = ListViewContacts.ListItems.Add(, , CStr(rsADO.Fields(0).Value))

                       For j = 1 To rsADO.Fields.Count - 1
                           Itmx.SubItems(j) = IIf(LenB(rsADO.Fields(j).Value) > 0, rsADO.Fields(j).Value, vbNullString)
                       Next j
              
                rsADO.MoveNext
                Wend
             Next i
            
            ListViewContacts.ListItems.Item(1).Selected = True
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut
La prochaine fois, tu diras pourquoi ça ne marche pas, quelle erreur, quel résultat, quelle attente ...
En fait, tu fais deux fois la même boucle : une fois avec le For-Next et une autre avec le While-Wend + une erreur classique : tu oublies de passer à l'enregistrement suivant.
Si tu avais chargé une ou deux sources qui traitent des base de données, tu aurais vu ce code incontournable de scrutation des résultats d'un RecordSet :
   With monRS
      .MoveFirst
      Do While Not .EOF
         Debug.Print .Fields("monChamp").Value
         ' ici ton code d'insertion ListView
         .MoveNext
      Loop
   End With

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
9
Date d'inscription
lundi 19 mars 2007
Statut
Membre
Dernière intervention
19 juillet 2008

Ok, désolé mais ça me paraissait clair vu que ma question était simplement de savoir comment faire pour que
"la premiere ligne de ma ListView soit selectionnée et récuperer la donnée qui se trouve dans la premiere colonne"
 
Dans le code que j'ai mis, j'ai juste inserer la ligne conseillée pour selectionner la premiere ligne de ma ListView soit:
 
ListViewContacts.ListItems.Item(1).Selected = True

Et donc voila, ça ne fonctionne pas puisque elle n'est pas selectionnée au chargement. Je n'ai aucun message d'erreur, c'est juste qu'elle n'est pas selectionnée. Pour le reste de mon code, c'est ce que j'avais deja ecrit avant et je n'ai aucun soucis avec, il affiche bien mes infos. Je suis d'accord avec le fait que je fais 2 fois la meme boucle. J'ai corrigé ça, mais je ne vois pas pq tu dis que je ne passe pas à l'enregistrement suivant. Bien sur que si, d'ailleurs mon code fonctionne très bien.