Listview : Interndire un doublon

Résolu
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010 - 26 mai 2005 à 17:42
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010 - 27 mai 2005 à 16:26
Salut !
J'ai une listview qui contient 2 colones !
- Une Pseudo
- L'autre Description

Comment faire pour éviter de métre 2 foi le même pseudo et que si il existe déjà que l'on modifie juste la description

Merci

Clad

5 réponses

yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 7
26 mai 2005 à 21:48
Private Function Recherche(LV As ListView, S As String) As Boolean
Dim ControlDoublon as Object
For each ControlDoublon in LV.listitems
if lcase(controldoublon) = lcase(S) then
recherche = true
exit for
end if
next
end function

controle tous les items de la liste sans se soucier des majuscules en plus

Voila

:)
3
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010
26 mai 2005 à 17:46
Du genre :

If Text1 = List.ListItems '..... que métre aprés ? ' Then
Text12 = "oki trouvé"
Else
Text12 = "n'existe pas"
End If

Clad
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
26 mai 2005 à 20:30
si ta ListView est triée sur la bonne colonne, la recherche sera plus rapide, sinon il faudra tout balayer item par item.

La Fonction suivate suppose que la ListView est triée sur la première colonne.

en paramètre, le nom de la ListView et la chaîne de recherche.

réponse True si existe, False si n'existe pas.



Private Function Recherche(LV As ListView, s As String) As Boolean

Dim P As Long

Dim M As Long

Dim G As Long

P = 1

G = LV.ListItems.Count

While P < G

M = (P + G) \ 2

If LV.ListItems(M).Text < s Then P P + 1 Else G M

Wend

If LV.ListItems(P).Text s Then Recherche True

End Function


Daniel
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
26 mai 2005 à 22:34
à part le temps de recherche qui sera nettement plus Long !!!



en plus peux utiliser strcomp qui sera 30 fois plus rapide:



If strcomp (s, LV.ListItems(M).Text, s,vbTextCompare) = 1 Then ...


Daniel
0

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

Posez votre question
Clad49 Messages postés 265 Date d'inscription dimanche 3 août 2003 Statut Membre Dernière intervention 29 mars 2010
27 mai 2005 à 16:26
Merci pour votre aide ! J'ai testé vos deux façon et celle de yohan49 fonctionne correctement par contre Gobillot la tiénne me dit que l'index et hors limites ! Sur " If LV.ListItems(P).Text = s Then "

Clad
0
Rejoignez-nous