RichTextBox à partir d'un RecordSet ADO

cs_tulesais Messages postés 175 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 avril 2013 - 16 nov. 2006 à 11:45
cs_jym Messages postés 115 Date d'inscription lundi 31 décembre 2001 Statut Membre Dernière intervention 15 avril 2014 - 17 nov. 2006 à 20:02
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

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
16 nov. 2006 à 13:08
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
0
cs_tulesais Messages postés 175 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 avril 2013 2
16 nov. 2006 à 13:37
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 !!!
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
16 nov. 2006 à 17:11
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
0
cs_tulesais Messages postés 175 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 avril 2013 2
17 nov. 2006 à 07:27
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...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_jym Messages postés 115 Date d'inscription lundi 31 décembre 2001 Statut Membre Dernière intervention 15 avril 2014
17 nov. 2006 à 20:02
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
0
Rejoignez-nous