Listview : supprimer une ligne : comment kca marche donc ? (plutot urgent ^^ )

Résolu
VisualBoinet
Messages postés
64
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
14 juin 2007
- 23 mars 2005 à 23:05
VisualBoinet
Messages postés
64
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
14 juin 2007
- 24 mars 2005 à 15:05
Bijour tlm,
( Premier message : ca fai plaisir!! )
Ben voila g un pti pblem : g fai une listview 4 colonnes kje rempli avec
des champs importé dune base de données et tt ca marche nikel.
Le probleme c kya kelke ligne k jvoudrai supprimer ( pkoi : euh un peu
dur a expliker mai jpe essayer mem si on a pa besoin d comprendre ca
pr mdire koi lol : imaginon k jveuille afficher des dates de
parution dune mise a jour ou dun journal : lui il maffiche tous ceux kya ds
ma base de donnée et moi jvoudrai kil me mette k la date la plus proche
d cel d today pour chacun dmes journal ou mise a jour = > pas tres clair tt ca lol)
donc g voulu fr un tri a bulle et supprimerla ligne ki me vas pas avec
listview.remove(index) : l blem c k ca marche pas fort tt ca
Thx pr vo reponses pr ceux ki savent ou ki compatissent lol!!!
^^ Bone day a vous ^^

jvs met marequete et mon tri a bulle ci dessous :p mais mon code marche c
certain puiskil ma bien donné toutes les dates de parution k g verifié; mon tri a bul nest pa parfai c sur et l remove ne march pa c certain

ProchainNumPar.View = lvwReport
Call ProchainNumPar.ColumnHeaders.Add(, , "Titre", 1000)
Call ProchainNumPar.ColumnHeaders.Add(, , "Libelle", 1000)
Call ProchainNumPar.ColumnHeaders.Add(, , "Numero", 1000)
Call ProchainNumPar.ColumnHeaders.Add(, , "Date", 1000)
intIndex = 0
strReq = "SELECT S1.societe, S1.titre, S1.numpar AS titrenumpar, "
strReq = strReq & " S1.datepar AS titredatepar, S2.designsoc AS "
strReq = strReq & " designesociete,S3.designtitr AS designetitre "
strReq = strReq & " FROM MONPROJET.titrepar AS S1 "
strReq = strReq & " LEFT OUTER JOIN MONPROJET " strReq strReq & " .table_societe AS S2 ON S2.CSOC S1.CSOC "
strReq = strReq & " LEFT OUTER JOIN " & gstrtabSchema(0) strReq strReq & " .table_titre AS S3 ON S3.societe S1.societe "
strReq = strReq & " AND S3.titre=S1.titre"
strReq = strReq & " WHERE S1.datpar > CURRENT DATE "
'current date : date d'ojourdui
strReq = strReq & " ORDER BY S1.title"

Set recRetour = Session.BD.ExecuteSelect(strReq)
If recRetour.RecordCount > 0 Then
Do While Not recRetour.EOF
Set objAdd = lstProchainNumParution.ListItems.Add(, "A" & intIndex, Format(recRetour.Fields("designesociete")))
objAdd.SubItems(1) = Format(recRetour.Fields("designetitre"))
objAdd.SubItems(2) = Format(recRetour.Fields("titrenumpar"))
objAdd.SubItems(3) = Format(recRetour.Fields("titredatepar"))
Set objAdd = Nothing
intIndex = intIndex + 1
recRetour.MoveNext
Loop

For i = 1 To (ProchainNumPar.ListItems.Count - 1)
If ProchainNumPar.ListItems.Item(i).SubItems(2) = ProchainNumPar.ListItems.Item(i + 1).SubItems(2) Then
ProchainNumPar.ListItems.Remove (i)
i = 1
End If
Next i

2 réponses

Gobillot
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
33
23 mars 2005 à 23:40
Dim i As Integer
Dim s1 As String
Dim s2 As String

For i = ProchainNumPar.ListItems.Count To 1 Step -1
s1 = ProchainNumPar.ListItems.Item(i).SubItems(2)
If s1 = s2 Then ProchainNumPar.ListItems.Remove (i)
s2 = s1
Next

Daniel
3
VisualBoinet
Messages postés
64
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
14 juin 2007

24 mars 2005 à 15:05
Merci pour la reponse :)
G trouver en fait mon blem venai principalement du fait que je me soit planter au niveau de mes indice. g mis un subitem(2) alors kil me fallait un subitem(1)
Du cou g virer mon tri a bulle et ait fait le tri avant de mettre tt ds la list view ce ki me donne ceci :

Set recRetour = Session.BD.ExecuteSelect(strReq)
vcsociete = Format(recRetour.Fields("CSOC"))
vctitre = Format(recRetour.Fields("CTITR"))
vtitnpar = Format(recRetour.Fields("TITNUMPAR"))
vctitldes = Format(recRetour.Fields("CTITDESIGN"))
vtitdpar = Format(recRetour.Fields("TITDATPAR"))
If recRetour.RecordCount > 0 Then
Do While Not recRetour.EOF
If (vcsociete & vctitre = Format(recRetour.Fields("CSOC")) & Format(recRetour.Fields("CTITR"))) Then
If vtitnpar > Format(recRetour.Fields("TITNUMPAR")) Then
vtitnpar = Format(recRetour.Fields("TITNUMPAR"))
End If

recRetour.MoveNext
Else
Set objAdd = lstProchainNumParution.ListItems.Add(, "A" & intIndex, vctitre)
objAdd.SubItems(1) = vctitldes
objAdd.SubItems(2) = vtitnpar
objAdd.SubItems(3) = vtitdpar
Set objAdd = Nothing
intIndex = intIndex + 1

vcsociete = Format(recRetour.Fields("CSOC"))
vctitre = Format(recRetour.Fields("CTITR"))
vtitnpar = Format(recRetour.Fields("TITNUMPAR"))
vctitldes = Format(recRetour.Fields("CTITDESIGN"))
vtitdpar = Format(recRetour.Fields("TITDATPAR"))

recRetour.MoveNext
End If
Loop
End If
Set objAdd = lstProchainNumParution.ListItems.Add(, "A" & intIndex, vctitre)
objAdd.SubItems(1) = vctitldes
objAdd.SubItems(2) = vtitnpar
objAdd.SubItems(3) = vtitdpar
Set objAdd = Nothing
intIndex = intIndex + 1
recRetour.ferme
Set recRetour = Nothing

Voila donc c'est ptet un peu plus lon o nivo du code mai ca pren moin d ressource en fait
Marci bcp pr ta reponse :p

Par contre l tri k jvien d fr est possible parceke ma rekete tri par titre les journo or il faudrait ka la fin jobtienne un tri par date.

Donc si torai une idée pour trier par dates sans clic ca marrangerai pk sur le forum g trouver d tri kavec click or moi jvoudrai que ca se fasse des que la listview est créée.
Merci d'avance :)
0