[vb 6.0] Problème lié au tri d'une listview

cs_mik67 Messages postés 39 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 13 juillet 2007 - 14 janv. 2006 à 12:25
cs_mik67 Messages postés 39 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 13 juillet 2007 - 15 janv. 2006 à 15:35
Bonjour à tous,

Je liste des éléments contenus dans une bdd access dans une listview.
Je trie ses colonnes grâce à la très bonne source : http://www.vbfrance.com/code.aspx?ID=7629

Le problème qui se pose est le suivant :
Quand je clique sur un élément de ma listview, je récupère les données pour les afficher dans des textbox mais si j'effectue un tri quelconque le fait de cliquer sur un élément n'y change rien...Je m'explique :

Au load, j'ai ce résultat dans ma listview :

M. dupond alain 1,rue principale

M. alvarez diego 1, rue de la chasse
=====================================

Imaginons que je clique sur la colonne qui trie sur le nom de famille ....
il va me mettre 'alvarez' en premier
mais lorsque je clique sur mon element 'alavarez', les textbox contiennent les données de 'dupond'

Si quelqu'un pouvait m'éclairer ....en espérant avoir été assez clair

Merci

5 réponses

cs_mik67 Messages postés 39 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 13 juillet 2007
14 janv. 2006 à 12:29
J'oubliais une chose ...désolé

Je récupère mes valeurs dans mes textbox de la facon suivante
(j'ai ici des labels mais le principe reste le meme... )

' Déclaration d'une variable pour récupération de l'index
Dim LongIndex As Long

' Pour mise à jour des zones de texte
Dim IntegerIndex As Integer

'Mise à jour des zones de texte
While (IntegerIndex < 9)
Text1.Item(IntegerIndex).Text = ""
IntegerIndex = IntegerIndex + 1
Wend

'Positionnement sur le premier enrregistrement valide
resultatADO.MoveFirst

'Récupération de l'index
LongIndex = ItemValide.Index

'Positionnement sur l'enregistrement correspondant au choix de l'utilisateur
resultatADO.Move (LongIndex - 1)

'Mise à jour des zones de texte - Affichage des données
If Not IsNull(resultatADO!CivilClip) Then
Me.lblCivil.Caption = Trim((resultatADO!CivilClip))
End If

If Not IsNull(resultatADO!NomCliP) Then
Me.lblNom.Caption = (resultatADO!NomCliP)
End If
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
14 janv. 2006 à 12:49
Forcément : si tu trie tes informations, les informations stockées dans
le listview ne sont plus dans le même ordre que dans ton recordset,
donc ca ne peut pas marcher !



Fait plutôt un truc comme cà :



resultatADO.MoveFirst
resultatADO.Find("NomClip='" & listview.listitem(listview.selecteditem).listsubistem("NomClip").text & "'")

If Not IsNull(resultatADO!CivilClip) Then

Me.lblCivil.Caption = Trim((resultatADO!CivilClip))

End If

If Not IsNull(resultatADO!NomCliP) Then

Me.lblNom.Caption = (resultatADO!NomCliP)

End If

_____________________________________________________________________
0
cs_mik67 Messages postés 39 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 13 juillet 2007
14 janv. 2006 à 13:33
J'arrive à récupérer la civilité ('melle' par exemple) mais j'arrive pas à atteidre la colonne qui contient le nom....
Ca bloque au niveau du listSubItems(.......)
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
14 janv. 2006 à 14:55
Tout dépend comment est agencé ta listview : si la colonne nom est
la première, alors pas besoin de passer à ListSubItem :
ListView.ListItem(Index).Text contiendras le nom à chercher.

_____________________________________________________________________
0

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

Posez votre question
cs_mik67 Messages postés 39 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 13 juillet 2007
15 janv. 2006 à 15:35
Par rapport a mon code que j'ai posté quelles parties dois je enlever et lesquelles dois je laisser
Je suppose que le ".Find" remplace le ".Move" ?

A l'execution il me répond "clé non valide" ....
0
Rejoignez-nous