Problème lors de lecture d'une Base de Données

Résolu
yoghourt Messages postés 3 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 6 octobre 2004 - 4 oct. 2004 à 09:23
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 - 6 oct. 2004 à 10:15
Bonjour.

J'ai un petit soucis lors d'une lecture de Base de Données.
J'ai une appli de gestion de client, avec une table Paradox. En voulant faire une fiche de publipostage, l'application me positionne sur l'avant dernier élément de ma table, et ce malgré l'utilisation de "First". Toute suggestion est la bienvenue ;-)
(PS : la valeur de RecordCount est bonne)

Voici la boucle où le code ne marche pas :

With MainForm.Clients do
begin
Close;
Filtered:=False;
Filter:='';
Filter:='NOM='#39+ComboBox1.Text+'*'#39;
Filtered:=True;
QRMailingPrintempsForm:=TQRMailingPrintempsForm.Create(Application);
Open;
For i:=0 to RecordCount-1 do
begin
QRMailingPrintempsForm.QRMailingPrintemps.Print;
Next;
end;
QRMailingPrintempsForm.Destroy;
end;

4 réponses

yoghourt Messages postés 3 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 6 octobre 2004
6 oct. 2004 à 10:11
Finalement, j'ai utilisé une autre méthode :

J'ai placé un objet Query sur ma fiche.
Je fait une requête SQL à la place du filtre que je faisais directement sur la table.
Puis j'utilise la propriété RecNo, qui me place sur l'élément de mon choix.
Globalement, ça donne ça :

MailingQuery.ParamByName('lettre').AsString:=ComboBox1.Text+'%';
MailingQuery.Active:=True;
MailingQuery.First;
i:=1;
WHile i<=MailingQuery.RecordCount do
begin
MailingQuery.RecNo:=i;
QRMailingPrintempsForm.QRMailingPrintemps.Print;
i:=i+1;
end;

Le code de ma requête SQL :
SELECT *
FROM CLIENTS
WHERE NOM LIKE :lettre
ORDER BY NOM ASC

Par contre, je ne sais toujours pas pourquoi la méthode Next n'a pas marché dans ce cas là, mais bon, ça marche ;-)
3
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
5 oct. 2004 à 10:17
Pkoi n'essaye tu pas plutot une boucle comme celle ci :

var
MaVar : Boolean;

begin
...

MaVar := Table.First;

While MaVar do
begin
//Ici tu executes tes requetes
MaVar := Table.FindNext;
end;

Cela ne focntionnerai t'il pas mieux?

Bonne prog,
JMP.
0
yoghourt Messages postés 3 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 6 octobre 2004
5 oct. 2004 à 12:23
Je vais tester ça, merci du coup de main, je te tiens au courant
A plus tard
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
6 oct. 2004 à 10:15
Ok ben heureux que tu es pu toruver une solution a ton problème. Pense à cliquer sur réponse acceptée afin de cloturer ta demande.

Bonne prog,
JMP.
0
Rejoignez-nous