bouv
Messages postés1410Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 2019
-
20 août 2008 à 17:38
bouv
Messages postés1410Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 2019
-
21 août 2008 à 10:07
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.
bouv
Messages postés1410Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 20 août 2008 à 18:48
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.
bouv
Messages postés1410Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 20 août 2008 à 22:01
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)
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.
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 20 août 2008 à 22:53
à 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.
bouv
Messages postés1410Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 21 août 2008 à 08:29
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.