Création de "zone de texte" en boucle

thedavix Messages postés 466 Statut Membre -  
thedavix Messages postés 466 Statut Membre -
Salut tout le monde, j'espère que vous avez passé un bon week end, comme moi :-)

Dites moi comment fait on dans Access pour un formulaire de créer des "zones texte" en boucle?

C'est a dire, j'ai un formulaire de recherche qui fait plusieur truc assez complex pi après j'abouti à une requette SQL qui marche très bien, et quand je fait le print des résultat bah évidemment je n'ai que le dernier qui s'affiche car je fais un truc du style:
----
Set rst2 = dbs.OpenRecordset(SQLTxt2)
rst2.MoveFirst
Do While Not rst2.EOF

Me.MARLibelle = rst2!MARLibelle
Me.MNIMarquageEtui = rst2!MNIMarquageEtui

rst2.MoveNext
Loop
----
Car evidemment ca réécrit sur le champ a chaque passage...

Si qqun sait comment on fait pour résoudre ce problème qu'il me fasse signe.

Bonne fin de dimanche

" Le vrai savant n'est pas celui qui apprend, 
mais celui qui comprend... " =;o)
A voir également:

4 réponses

blux Messages postés 27997 Date d'inscription   Statut Modérateur Dernière intervention   3 367
 
Salut,

on peut concaténer les résultats :

Me.MARLibelle = Me.MARLibelle + vbcrlf + rst2!MARLibelle
Me.MNIMarquageEtui = Me.MNIMarquageEtui+ vbcrlf + rst2!MNIMarquageEtui

Comme ça, une nouvelle ligne apparait à chaque movenext.

Je ne sais pas si c'est ce que tu cherches...

A+ Blux            "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
thedavix
 
en fait oui c'est a peut pret ca mais j'aimerai qu'a la place qu'il me mette tout le résultats dans le meme champs et donc qu'il concatène, qu'il crée un nouveau "masque de formulaire"
bah tout simplement comme en php quand on fait une requette et après qu'on la print dans un fichier php.
bah il y a plusieurs résultat qu'y s'affichent par page.

David
0
blux Messages postés 27997 Date d'inscription   Statut Modérateur Dernière intervention   3 367
 
J'ai pas tout compris dans ce que tu appelles un "masque de formulaire", c'est une zone dans ton formulaire ou c'est carrément une autre fenêtre. Car dans ce cas, tu crées la requête, tu l'ajoutes à la liste des requêtes et tu la lances en mode form :

DoCmd.OpenForm "req", , , , acFormReadOnly

A+ Blux "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
thedavix Messages postés 466 Statut Membre 35
 
Non c'est une zone dans mon formulaire..
Bah écoute c'est tout simple....
J'aimerai que pour chaque enregistrement que ma requette de recherche va trouver une nouvelle ligne apparait... (comme si c'était un formulaire en mode continu si tu veux)
Le problème c'est que ma requette je ne peux pas la mettre en source du formulaire comme tu le dit car, elle change (elle est dans une boucle avec un parametre qui change et je garnis les zones manuellement)


" Le vrai savant n'est pas celui qui apprend, 
mais celui qui comprend... " =;o)
0
blux Messages postés 27997 Date d'inscription   Statut Modérateur Dernière intervention   3 367
 
et bien, tu crées un sous-formulaire dans ton formulaire principal et tu lui affectes la requête comme source de données. Comme ça, quand la requête change, tu raffraichis la vue...

Ca irait ?

Maintenant, si tes résultats sont la concaténation de plusieurs requêtes lancées les unes après les autres (dans la boucle), il faut les modifier pour stocker le résulat dans une table temporaire, et ce sera cette table que tu afficheras...

A+ Blux "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
thedavix Messages postés 466 Statut Membre 35 > blux Messages postés 27997 Date d'inscription   Statut Modérateur Dernière intervention  
 
ha ouai on peut stocker les résultats dans une table temporaire?
Ca c'est coooooool... je suis sur que ca va résoudre mon prob.
mais ont fait comment?
T'arrive a m'expliquer si ca t'embete pas trop?


" Le vrai savant n'est pas celui qui apprend, 
mais celui qui comprend... " =;o)
0
blux Messages postés 27997 Date d'inscription   Statut Modérateur Dernière intervention   3 367
 
On suppose que des données sont cohérentes (i.e : elles ont toutes la même structure)

- tu crées une table "toto" avec tous les champs que va renvoyer ta requête. Elle sera définitive (la table) , mais je l'appelle temporaire, car les données que l'on va y stocker seront effacées à chaque fois.

- avant ta boucle, tu effaces le contenu de ta table (requête avec delete * from toto, et docmd.runsql)

- dans ta boucle, tu généres ta requête avec tes paramètres, mais au lieu de faire select tu fais insert into toto select... ce qui te permet de remplir ta table "toto" au fur et à mesure

- dans ton formulaire, tu mets un sous-formulaire (en mode continu) avec la table "toto" en source de données, il devrait se synchroniser avec l'exécution des requêtes successives...

et ça devrait marcher, non ?

ou alors j'ai (encore) pas compris :-)

A+ Blux "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
thedavix Messages postés 466 Statut Membre 35
 
Non c'est parfait j'étais justement en train de faire ca..
mais je pensais qu'il existait un moyen de mettre en mémoire une table.. comme tu l'appelais temporaire ;-p
Et je me disais justement que ca pourrait surcharger la mémoire un petit peu beaucoup si on faisait une grosse recherche..
enfin..
finalement on s'est bien compris..
C'est exacement ce que je pensais faire.. mais tu m'as quand meme mit sur la vois..
:-)

Merci pour tout

@ +

" Le vrai savant n'est pas celui qui apprend, 
mais celui qui comprend... " =;o)
0