RichTextBox à partir d'un RecordSet ADO

Signaler
Messages postés
177
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
11 avril 2013
-
Messages postés
115
Date d'inscription
lundi 31 décembre 2001
Statut
Membre
Dernière intervention
15 avril 2014
-
Bonjour,

je souhaiterais inserer dans un RichTextBox le résultat d'une requête (recordset ado).

Malheureusement la mise en mémoire du recordset dure excessivement longtemps.

Auriez vous une autre solution à me proposer ???

merci d'avance pour votre aide,

' Ouverture du RecordSet (impec)
    Ado_RST.Open "SELECT * FROM Compte_Rendu",  Ado_Con

' Mise en mémoire du recordset (trop long sur 30 000 Enregistrements)
   str = space(0)
   ado_rst.movefirst
   do until ado_rst.eof
      if str=space(0) then
         str=ado_rst![champ]
      else
         str=str & vbcrlf & ado_rst![champ]
      endif
      ado_rst.movenext
   loop
   RichTextBox.text=str

   ou (reviens quasiment au même)

   ado_rst.movefirst
   do until ado_rst.eof
      if RichTextBox.text=space(0) then
         RichTextBox.text=ado_rst![champ]
      else
         RichTextBox.text=RichTextBox.text & vbcrlf & ado_rst![champ]
      endif
      ado_rst.movenext
   loop

5 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
salut,

Str est un mot clé, disons donc la variable sStr

le test if prend un peu de temps (sur 30000), on le vire.
à mon avis tu vas pas gagnre grand chose pour autant.....

    Dim sStr As String
    
' Ouverture du
RecordSet (impec)
    ado_rst.Open "SELECT * FROM Compte_Rendu", Ado_Con

' Mise en mémoire du
recordset (trop long sur 30 000 Enregistrements)
   sStr =  vbNullString
   ado_rst.movefirst
   Do Until ado_rst.EOF
       sStr = sStr & ado_rst![champ] & vbCrLf
       ado_rst.movenext
   Loop
   RichTextBox.Text = LeftB$(sStr, LenB(sStr) - 4)

<small>Coloration
syntaxique automatique [AFCK] </small>
       
++
<hr size ="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Messages postés
177
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
11 avril 2013
1
effectivement, le traitement est tout aussi long :-(

merci quand même pcpt !!!

pour faire au plus vite, je remplace le RichTextBox par une DataList.
(solution proposée par mon codéveloppeur)
tant pis pour la mise en forme du texte !

si vous avez d'autres propositions avec le richtextbox ou tout autre objet permettant la mise en forme du texte...je suis preneur :-)

merci d'avance pour votre aide !!!
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
le temps d'execution est celui de ta base, pas de la sortie
à moins qu'il y ait un autre bout de code lié, genre.... un affichage à chaque ligne.
dans quel cas il suffit de rendre l'objet invisible durant le traitement (pour empêcher le refresh)

<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Messages postés
177
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
11 avril 2013
1
pas du tout !!!

le temps de traitement de la requete prend quelques secondes ! le problème est le remplissage du contrôle vb !

1 seconde pour remplir un datalist (rowsource et listfield)
plusieurs minutes pour remplir un richtextbox (à l'aide d'une boucle sur le recordset)

le gros problème est que le datalist ne me permet pas, à ma connaissance, de mettre en forme le texte (gras, couleur...)

A plus...
Messages postés
115
Date d'inscription
lundi 31 décembre 2001
Statut
Membre
Dernière intervention
15 avril 2014

bjr,
réponse bête, mais problème auquel j'ai été confronté (sur les listes), la quantité de données est elle acceptable par un rchtbox??

uen liste est limitée à 32000 lignes, une liste déroulante à 100 lignes etc... il y a des limitations aux objets et si c'est trop grand... ça coince.

si ça aide??

jym