PB ACTUALISATION LISTVIEW [Résolu]

Signaler
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
-
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
-
Bonjour,

Je rencontre un petit problème d'actualisation d'une LV.

Je rempli celle-ci depuis un Recordset. Le premier remplissage se passe bien.

Mais lorsque j'ajoute un enregistrement à ma base de données, l'actualisation ne se fait pas.

Je passe par les étapes suivantes :

LV.Items.Clear

LV.Items.Add     'Pour chaque enregistrement (le nouveau y compris j'ai vérifié en mode pas à pas)

LV.Refresh

Pour que ma LV s'actualise je dois fermer ma fenetre et la réouvrir.

Une idée ?

Merci d'avance

Bonne prog
++

8 réponses

Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
1
Probème résolu.

Je ne sais toujours pas d'où cela pouvait venir, mais en organisant le code différemment cela fonctionne. 

Merci quand même pour avoir essayé.

Bonne prog
++
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Salut,
et ton recordset dans tout ça ?
Est-t-il réactualisé ?

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
1
Salut,

Oui bien sûr, a chaque fois que je veux actualiser ma LV j'ouvre un nouveau recordset. J'ai vérifié en mode pas à pas et il contient bien mon nouveau enregistrment.

Bonne prog
++
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
dans ce cas il faudrait qu' on jette un coup d' oeil sur le code
de la procedure de remplissage...

A+

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
1
En fait je n'avais pas précisé mais mon RecordSet est d'abord chargé dans un tableau nommé oLevel (une structure perso). J'ai vérifié mon nouvel enregistrement y figure bien.



Voici le code :




With
LV




   .Items.Clear()






   For
i

As



Integer
= 0

To
oLevel.GetUpperBound(0)


      With
.Items.Add(oLevel(i).Name)         .SubItems.Add(oLevel(i).Index)








      End



With






   Next
i   .Refresh()


End



WithPour la source complète : cliquer ici

Le code se trouve dans la fenêtre 'frmList' procédure 'FillLV'

Pour y acceder lors de l'execution :
   - Première fenetre : choisir la base exemple
   - Deuxieme fenetre : Identifiant= 'ADMIN' et pas de mot de passe
   - Au menu général, cliquer sur le premier bouton et la frmList s'affiche

   - Un clic sur le bouton + d'une des listes pour ajouter un element (les 4 premières seulement) et c'est la que cela pose problème.

Merci encore de te pencher sur mon problème.

Bonne prog
++
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
à première vue ça serait une question d' index.
GetUpperBound(0) renvoie la taille du tableau,
ce qui est, d' après ce que j' ai compris, l' équivalent du
recordcount. Or dans la boucle tu pars de 0.Et donc tu dois t' arrêter à GetUpperBound(0) -1.2tonnant qu' il n' y ait pas d' erreue à ce niveau.
Mais la question n' est pas là.
D' après ce que je sais des listview, les indices partent de 1.
Essaies donc:
Fori
As
Integer= 1
TooLevel.GetUpperBound(0)

De toute façon, ce n' est qu' une piste.Car en définitive,je n' ai aucune idée du commenr ça se passe en VB.NET.Je suis en VB6.
Et donc pas possible pour moi de voir la source.
Désolé donc si c' est pas ça.

Bonne continuation.

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Autre piste:
Conserves ton code sans imbrication de With
With LV


   .Items.Clear()


   For i As Integer = 0 To oLevel.GetUpperBound(0)


      .Items.Add(oLevel(i).Name)
      .Items(i).SubItems.Add(oLevel(i).Index)


   Next i
   .Refresh()


End With





<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
1
Salut,

GetUpperBound est l'équivalent de Ubound(MonTableau) en VB6
Je dois également bien partir de 0 pour la variable i car c'est le premier index de mon tableau. Il est donc normal qu'il n'y ai pas d'erreur ici.

Sinon en .NET pas de problème avec l'imbrication des With, il gère cela très bien.

Non je pense que le problème est ailleurs mais je vois pas.

Merci quand même.

Bonne prog
++