Adoquery et Memo

Résolu
ericdu62x Messages postés 37 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 29 décembre 2008 - 24 nov. 2008 à 18:39
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 25 nov. 2008 à 22:25
bonjour, j'ai un petit soucis que je n'arrive pas a resoudre a savoir :

j'ai une base de donnée Access avec des composants ADO  => AdoQuery1  via laquelle j'effectue une requete
[SELECT * FROM ListingBal WHERE EnLigne = true]

les resultats doivent etre recuperé dans un Memo1
j'ai mis le code suivant: [rzMemo1.Lines.add(AdoQuery1.fields.FieldByName('TypeBalancelle').AsString);]

le probleme c'est que quand je recupere le resultat, je n'obtiens qu'une seule ligne d'un seul champ, et je n'arrive pas a integrer l'integralité de la requete

merci par avance

9 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
25 nov. 2008 à 22:25
ah bien sûr, on peut toujours pinailler sur l'open de la table qui pourrait ne pas s'ouvrir...
donc, le top serait de faire :

procedure TForm1.Button1Click(Sender: TObject);
begin
try
AdoQuery1.open;
except
showmessage('la table ne s''ouvre pas');
exit;
end;

while not AdoQuery1.EOF do
   begin
   rzMemo1.Lines.add((AdoQuery1.fields.FieldByName   ('TypeBalancelle').AsString)+'          '+  (AdoQuery1.fields.FieldByName('NumeroBalancelle').AsString));
   AdoQuery1.Next;
   end;
AdoQuery1.close;
end;

cantador
3
ericdu62x Messages postés 37 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 29 décembre 2008
24 nov. 2008 à 18:48
alors j'ai trouvé une partie de la reponse a savoir:

rzMemo1.Lines.add((AdoQuery1.fields.FieldByName('TypeBalancelle').AsString)+' ......'+(AdoQuery1.fields.FieldByName('NumeroBalancelle').AsString));    

mais je n'ai toujours qu'une seule ligne !!!!
comment faire pour avoir le tout de la requete ?
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
25 nov. 2008 à 15:24
bonjour,
il faut faire une BOUCLE sur la TABLE

cantador
0
ericdu62x Messages postés 37 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 29 décembre 2008
25 nov. 2008 à 16:17
J'ai tenté cela:

begin
AdoQuery1.open;
while not AdoQuery1.EOF do
begin
rzMemo1.Lines.add((AdoQuery1.fields.FieldByName('TypeBalancelle').AsString)+'          '+(AdoQuery1.fields.FieldByName('NumeroBalancelle').AsString));
AdoQuery1.Next;
AdoQuery1.close
end;
end;

mais cela ne donne strictement rien du tout, je dois certainement mal m'y prendre ?
0

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

Posez votre question
ericdu62x Messages postés 37 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 29 décembre 2008
25 nov. 2008 à 16:23
Visiblement avec une autre solution cela a l'air de fonctionner !

begin
RzMemo1.Clear;
AdoQuery1.Close;
Adoquery1.Open;
try
   while not Adoquery1.eof do
   begin
     rzMemo1.Lines.add((AdoQuery1.fields.FieldByName('TypeBalancelle').AsString)+' '+(AdoQuery1.fields.FieldByName('NumeroBalancelle').AsString));
     Adoquery1.next;
   end;
 finally
   AdoQuery1.Close;

Merci
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
25 nov. 2008 à 18:44
begin
AdoQuery1.open;
while not AdoQuery1.EOF do
begin
rzMemo1.Lines.add((AdoQuery1.fields.FieldByName('TypeBalancelle').AsString)+'          '+(AdoQuery1.fields.FieldByName('NumeroBalancelle').AsString));
AdoQuery1.Next;
AdoQuery1.close // l'erreur était là
end;
AdoQuery1.close; // On ferme une fois l'opération terminée..
end;

mais avec try finally c'est encore mieux !

cantador
0
ericdu62x Messages postés 37 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 29 décembre 2008
25 nov. 2008 à 18:53
Merci d'avoir corrigé mes erreurs, mais pense tu que la derniere solution que j'ai trouvé,est correcte ?
ou est ce que je modifie en try finally ?
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
25 nov. 2008 à 22:06
A vrai dire le close final ne sert pas à grand chose puisque tu démarres ta procédure par un close et le traitement se fera en lecture seule.

tu peux donc supprimer le try...finally

cantador
0
ericdu62x Messages postés 37 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 29 décembre 2008
25 nov. 2008 à 22:10
Merci, je pense que mon probleme est donc resolu grace a ton aide
0
Rejoignez-nous