Probleme de listview

ranouf Messages postés 237 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 31 août 2009 - 13 sept. 2003 à 16:02
ranouf Messages postés 237 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 31 août 2009 - 14 sept. 2003 à 00:41
Pb incompréhensible, sur mon form g une listview qui s'appelle "ListViewResultat", a savoir g une base de donnée qui gere des ordinateur (Id_Ordi, Poste, Marque, Ref) mon but est de les afficher dans la list view et de pouvoir ensuite séléctonnier la 1e colonne (a savoir le poste) cependant quand je fais :
ListItemResultat.SubItems(1) = rs.Fields("Poste")
il me mets la liste des poste dans la deuxieme colonne, je me dis donc g qu'a la cacher mais je ne peux selectionner des éléments seulement dans la premiere colonne ou rien ne s'affiche ...
si vous avez la solution ça m'aiderai bien.

Option Explicit

Private Sub Form_Load()
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
' CONNECTION A LA BASE DE DONNES
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

'Pour le chemin de la base
Dim db As Database

'Pour les tables à lire dans la base
Dim rs As Recordset

'Pour les chaines sql
Dim sql As String

' Pour affichage du résultat
Dim ListItemResultat As ListItem

'Connection à la base
Set db = OpenDatabase("D:\Documents Perso\Dossier Bissy\Actions\VB - Parc Informatique\DB97.mdb")

sql = "SELECT Ordinateur.Id_Ordi, Ordinateur.Poste, Ordinateur.Marque, Ordinateur.Ref"
sql = sql & " FROM Ordinateur;"

Set rs = db.OpenRecordset(sql, dbOpenSnapshot)

' Mise à jour de la ListView
ListViewResultat.ListItems.Clear
ListViewResultat.ColumnHeaders.Add 1, , "Poste", (ListViewResultat.Width * (2 / 6)), lvwColumnLeft
ListViewResultat.ColumnHeaders.Add 2, , "Marque", (ListViewResultat.Width * (1 / 6)), lvwColumnLeft
ListViewResultat.ColumnHeaders.Add 3, , "Ref", (ListViewResultat.Width * (2 / 6)), lvwColumnLeft
ListViewResultat.ColumnHeaders.Add 4, , "Id", (ListViewResultat.Width * (0 / 6)), lvwColumnLeft

ListViewResultat.View = lvwReport

While Not rs.EOF 'BOUCLE Tant Que"

Set ListItemResultat = ListViewResultat.ListItems.Add()
ListItemResultat.SubItems(1) = rs.Fields("Poste")
ListItemResultat.SubItems(2) = rs.Fields("Marque")
ListItemResultat.SubItems(3) = rs.Fields("Ref")

rs.MoveNext 'ensuite on passe à l'enregistrement suivant qui se trouve dans notre Recordset

Wend ' Fin de la boucle Tant que
' On sortira de cette boucle lorsque tous les enregistrement de notre Recordset aurront été lu.

ListViewResultat.ListItems(1).Selected = True

rs.Close ' Prenez l'habitude de fermer votre Recordset pour libérer de l'espace mémoire

End Sub

2 réponses

patcui Messages postés 53 Date d'inscription mardi 25 décembre 2001 Statut Membre Dernière intervention 20 août 2008
13 sept. 2003 à 16:32
Salut,

Il faut que tu fasse :

Set ListItemResultat = ListViewResultat.ListItems.Add(,,rs.fields("Poste"))
ListItemResultat.SubItems(1) = rs.Fields("Marque")
ListItemResultat.SubItems(2) = rs.Fields("Ref")

Si je me trompre pas sur la première ligne. Si cela ne fonctionne pas, vérifiela position de l'élement "rs.Fields("Poste").

A+,

Patrice
[mailto:cuisina@univ-lyon1.fr cuisina@univ-lyon1.fr]
www.cuisinaud.com
0
ranouf Messages postés 237 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 31 août 2009
14 sept. 2003 à 00:41
exact tu as trouvé la solution merci !!! apres tant de tps g enfin trouvé maintenant il me reste a comprendre comment en sélectionnant je peux afficher les resultats dans un text box :)
merci encore
0
Rejoignez-nous