valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 2022
-
23 sept. 2004 à 00:06
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 2022
-
23 sept. 2004 à 21:38
Bonjour,
J'ai intégré ce code dans une feuille mais pour 300 enregistrements
c'est trés long pour le chargement.
quelqu'un peu me donner un autre possibilité pour obtenir le même résultat
merci
je rempli une zone de liste et un clic sur un item doit mettre à jour la feuille
Call LockWindowUpdate(False) 'réactive le raffraichissement
Sinon, si tout ceci ne te permet pas de rendre ton code plus efficace, indexe ton champ, ou utilise un DataBoundList au lieu d'un listbox classique : charger des données avec un DataBoundList est immédiat (sur une base avec 40 000 enregistrements, il faut que quelques ms pour charger les données dans la liste...)
_______________________________________
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 20223 23 sept. 2004 à 18:36
Merci j'ai fait les essais je gagne un peu.
J'ai bien changer ma zone de liste par un controle DataBoundlist ça fonctionne à merveille le seul prob. c'est que je ne peu pas intercepter le clic sur un Item
ce controle gère ça trés bien en interne si l'on a deux Tables liées.
dans mon cas j'ai paramétré le Databoundlist comme suis
Propriété:
.RowSource = dbTable ' Mon objet Recordset
.ListField = "Titre" '
.BoundColumn = Titre ' ça c'est mis tout seul
avec ça le data se rempli bien mais pas de modification sur ma feuille en cas de clic sur un Item. Et je ne trouve pas dans les propriétés, une qui puisse me servir pour repositionner le recordset
maintenant si je met ceci dans les autres propriétées
.DataSource = dbTable
.DataField = "Titre"
alors là ça me fait tout et n'importe quoi
j'avous que pour moi les controles data c'est pas mon truc
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013131 23 sept. 2004 à 18:44
Tu peux récupèrer le texte de l'item sélectionné par la propriété BoundText, et à ce moment là, tu recherche dans ton recordset l'enregistrement correspondant, puis tu déplace ton recordset sur cet enregistrement pour mettre à jour tes contrôles liés.
_______________________________________
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 20223 23 sept. 2004 à 21:38
pfffffffffffffffff ça me saoule
bon j'ai rentré ce code
Private Sub DBList1_Click()
Dim strCriteria As StringstrCriteria "Titre '" & DBList1.BoundText & "'"
Data1.Recordset.FindFirst strCriteria
End Sub
ça marche une fois deux fois des fois 3 et puis plantage
Message d'erreur
erreur: 3077
erreur de syntaxe (opérateur absent) dans l'expression
bon j'ai compri si le titre comporte un ' c'est le plantage assuré
maintenant pour voir comment contourner le prob. c'est une autre histoire
bon je recherche la soluce ........