Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3395 connectés 

 


Dernière réponse
Sujet : code à verifier
bono Encore moi, avec le meme prob, là je suis bloqué,
 
procedure TForm8.Button3Click(Sender: TObject);
var
sReference, sDateDebut, sDateFin : string;
begin
sReference:= InputBox('Saisie', 'Référence ?', '');
sDateDebut:= InputBox('Saisie', 'Date Début ?', '');
sDateFin:= InputBox('Saisie', 'Date Fin ?', '');
 
qryNbArticle.ParamByName('Ref' ).AsString := sReference;
qryNbArticle.ParamByName('DateDebut' ).AsDateTime:= StrToDateTime(sDateDebut);
qryNbArticle.ParamByName('DateFin' ).AsDateTime := StrToDateTime(sDateFin);
 
qryNbArticle.Open;
 
{if qryNbArticle.FindFirst then
ShowMessage(qryNbArticle.FieldByName('Nb').AsString);}
if not qrynbArticle.isEmpty then
ShowMessage(IntToStr(qryNbArticle.RecordCount));
End;
 
 
Voici la requete :
 
Select Sum(Quantité_Entree) from ENDT
where (reference=:ref)
and(date_entree>=:datedebut)
and(date_entree<=:datefin)
 
 
Voici l'erreur :
 
erreur sql, trop peu de parametre
4 attendu
 
 
 
Merci pour l'aide.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
bono Encore moi, avec le meme prob, là je suis bloqué,
 
procedure TForm8.Button3Click(Sender: TObject);
var
sReference, sDateDebut, sDateFin : string;
begin
sReference:= InputBox('Saisie', 'Référence ?', '');
sDateDebut:= InputBox('Saisie', 'Date Début ?', '');
sDateFin:= InputBox('Saisie', 'Date Fin ?', '');
 
qryNbArticle.ParamByName('Ref' ).AsString := sReference;
qryNbArticle.ParamByName('DateDebut' ).AsDateTime:= StrToDateTime(sDateDebut);
qryNbArticle.ParamByName('DateFin' ).AsDateTime := StrToDateTime(sDateFin);
 
qryNbArticle.Open;
 
{if qryNbArticle.FindFirst then
ShowMessage(qryNbArticle.FieldByName('Nb').AsString);}
if not qrynbArticle.isEmpty then
ShowMessage(IntToStr(qryNbArticle.RecordCount));
End;
 
 
Voici la requete :
 
Select Sum(Quantité_Entree) from ENDT
where (reference=:ref)
and(date_entree>=:datedebut)
and(date_entree<=:datefin)
 
 
Voici l'erreur :
 
erreur sql, trop peu de parametre
4 attendu
 
 
 
Merci pour l'aide.
JWhy Bono> le plus simple c'est que tu testes ta requete dans Access ou autres (je ne sais pas quelle BD tu utilises) et une fois que ca marche, tu la copies/colles dans la propriete du TQuery
JWhy si j'ai bien compris, "Nb" est un alias pour count(*) ou Sum(), c'est pour y acceder via le ParamByName() dans Delphi...
AlphaT

bono a écrit a écrit :

j'ai mis la ligne
sum(quantité_Entree)Nb
 
Et maintenant j'ai l'erruer
erreur de syntaxe (opérateur absent) dans l'expression 'sum(Quantité_Entree) Nb'
 
Est ce mieux comme erreur




 
Nb est-il un nom de champ? Si oui, il doit y avoir une virgule après sum (qte_entree) pour les séparer. Si non, tu le barres.

 

[edit]--Message édité par AlphaT--[/edit]

bono allez please, un dernier effort ???
bono j'ai mis la valeur true à la propriete requestlive du query, maintenant je une erreur comme quoi la table est en lecture seule.
 
Help
bono j'ai mis la ligne
sum(quantité_Entree)Nb
 
Et maintenant j'ai l'erruer
erreur de syntaxe (opérateur absent) dans l'expression 'sum(Quantité_Entree) Nb'
 
Est ce mieux comme erreur
bono Maintenant, c'est erreur de syntaxe dans count(*) nb
Je n'y arriverais donc jamais, enfin je vous remercie pour votre aide.
JWhy dans la propriete SQL de ta Query, rajoute : devant datedebut  
et datefin
bono sReference:= InputBox('Saisie', 'Référence ?', '');
sDateDebut:= InputBox('Saisie', 'Date Début ?', '');
sDateFin:= InputBox('Saisie', 'Date Fin ?', '');
 
qryNbArticle.ParamByName('Ref' ).AsString := sReference;
qryNbArticle.ParamByName('DateDebut' ).AsDateTime:= StrToDateTime(sDateDebut);
qryNbArticle.ParamByName('DateFin' ).AsDateTime := StrToDateTime(sDateFin);
Est ce que référence dans la partie du haut= ref dans la partie dud bas ??
bono erreur
 
message qrynbarticle: parametre DateDebut non trouvée
JWhy je connais pas ta table mais verifie si ta requete est bonne
 
dans un premier temps, essaye d'utiliser ca pour voir si ca marche:

Citation :


select count(*) nb    
from ENDT    
where reference = :ref  
and date_entree >= datedebut  
and date_entree <= datefin      


 
ps: tu as bien une table ENDT avec des colonnes REFERENCE et  DATE_ENTREE ???

 

[edit]--Message édité par JWhy--[/edit]

bono erreur sql generale
 
ereur de sy,ntaxe dans l'expression count(Quantité_entree) nb
JWhy il te dit quoi comme erreur ?
bono Il me pose bien les 3 questions
L'evenement onclick n'etait pas activé,
Mais (eh oui)
Il plante pour la reponse
JWhy verifie que l'evenement est bien associe a la procedure (selectionne ton composant, touche f11, onglet events, evenement onClick... )
et mets un point d'arret sur la premiere ligne de ton code:

  • sReference:= InputBox('Saisie', 'Référence ?', '' );

AlphaT

Citation :


je ne peux pas l'afficher avec un showmessage ???  


 
NON! :D
 

Citation :


Plus d'erruers à la compil,merci, mais en cliquant sur le bouton il ne me lance pas la procédure  
pourquoi ???


 
Regarde mon code plus haut, tu comprendras!!

 

[edit]--Message édité par AlphaT--[/edit]

bono je ne peux pas l'afficher avec un showmessage ???
 
procedure TForm8.Button3Click(Sender: TObject);
var
sReference, sDateDebut, sDateFin : string;
begin
sReference:= InputBox('Saisie', 'Référence ?', '');
sDateDebut:= InputBox('Saisie', 'Date Début ?', '');
sDateFin:= InputBox('Saisie', 'Date Fin ?', '');
 
qryNbArticle.ParamByName('Ref' ).AsString := sReference;
qryNbArticle.ParamByName('DateDebut' ).AsDateTime:= StrToDateTime(sDateDebut);
qryNbArticle.ParamByName('DateFin' ).AsDateTime := StrToDateTime(sDateFin);
 
qryNbArticle.Open;
 
if qryNbArticle.FindFirst then
ShowMessage(qryNbArticle.FieldByName('Nb').AsString);
 
Plus d'erruers à la compil,merci, mais en cliquant sur le bouton il ne me lance pas la procédure
pourquoi ???
JWhy mais c'est sur que dans un TDBGrid ca sera plus beau ;)
JWhy

bono a écrit a écrit :

Merci c'est mieux,
Il reste 1 erreur sur cette ligne
ShowMessage(qryNbArticle.FieldByName('Nb'.AsString));
 
Il me dit que type record, object ou class requis




 
ShowMessage(qryNbArticle.FieldByName('Nb' ).AsString);
 
pb de placement de la parenthese fermante...

AlphaT

bono a écrit a écrit :

Merci c'est mieux,
Il reste 1 erreur sur cette ligne
ShowMessage(qryNbArticle.FieldByName('Nb'.AsString));
 
Il me dit que type record, object ou class requis




 
Le résultat de la réquête, tu ne l'affiche pas comme ça mais dans un composant TDBGrid que tu place également sur ta fiche. Sa propriété DataSource doit être le nom du composant TDatasource relié au composant TQuery.

 

[edit]--Message édité par AlphaT--[/edit]

AlphaT > Jwhy  ;)
 
Voici un code fait pour un composant Tquery (N.B ton code peut ressembler un peu à ça, il s'agit d'un exemple!)
 
Procedure TForm1.button1Click(Sender: TObject);
var  
sReference, sDateDebut, sDateFin : string;  
begin
 /* Saisie des dates */
 sDateDebut:= InputBox('Saisie', 'Date Début ?', '';  
 sDateFin:= InputBox('Saisie', 'Date Fin ?', '';  
 
 if qNbArticle.State <> dsInactive    //vérification si ouvert
   then qNbArticle.Close;     //fermeture
 else begin  
   qNbArticle.ParamByName('Ref' ).AsString := sReference;  
   qNbArticle.ParambyName('DateDebut' ) := strToDate(sDatedebut)
   qNbArticle.ParambyName('Datefin' ) := strToDate(sDateFin)
 end;
 qNbArticle.Open;   //ouverture
end;

 

[edit]--Message édité par AlphaT--[/edit]

bono Merci c'est mieux,
Il reste 1 erreur sur cette ligne
ShowMessage(qryNbArticle.FieldByName('Nb'.AsString));
 
Il me dit que type record, object ou class requis
JWhy oh puree... :ouch:  
 
par defaut... quand tu poses un TComposant, delphi te le renomme Composant1... donc par exemple tu poses une TQuery ==> ca va donner Query1... a toi de le renommer (propriete Name du composant) en qqchose de plus parlant... par exemple qryNbArticle...
 
ps: depeche toi de trouver un bouquin/cours sur Delphi !!!
bono qryNbArticle
cela pose des prob, est ce bon ??
 
ce n'est pas plutot un truc du genre
 
Query1NbarticleParamByName(('Ref'.AsString) := sReference; ????
AlphaT oui dans un TQuery sinon tu seras obligé d'ajouter du code supplémentaire pour l'ajouter manuellement.
bono Bon voila le prob, pour l'instant je n'ai pas mis de query sur la form
 
J'ai un bouton3 qui doit lancer les 3 inputBox
Avec les 3 réponses le prog doit calculer le nombre d'entrées pendant cette période.
Ok ?
 
qryNbArticle n'est pas déclaré, où dois je le déclarer ??
 
Le morceau en SQL, je le met où ???
Apparamment pas de le script de la form, mais plutot dans un query ???
 
Merci pour votre aide
JWhy toutafait...
 
tu peux faire ca pour les date/time:
qryNbArticle.ParamByName('Ref' ).AsString := sReference;  
qryNbArticle.ParamByName('DateDebut' ).AsDateTime:= StrToDateTime(sDateDebut);  
qryNbArticle.ParamByName('DateFin' ).AsDateTime := StrToDateTime(sDateFin);
 
devrait etre mieux...
AlphaT D'après moi, le end; à la fin de la commande sql est inutile.
 
De plus les paramètres datedebut et datefin on doit leur indiquer qu'ils sont de type TDatetime sinon Delphi n'aimera pas. Pour ça, c'est la propriété Params.

 

[edit]--Message édité par AlphaT--[/edit]

JWhy et au fait la requete exacte c'est:
 
select  
count(1) nb  
from  
ENDT  
where  
reference = :ref and  
date_entree >= : datedebut and  
date_entree <= : datefin  
end;  
 
il manquait les : devant datedebut et datefin (et enleve l'espace que j'ai du ajoute entre le : et d

 

[edit]--Message édité par JWhy--[/edit]

JWhy carrement... on a l'impression que t'as recupere les bouts de codes des reponses du topic precedent et que tu les as colles a la barbare dans l'editeur delphi !
 
donc deja faut que tu poses un TQuery dans ta form/datamodule et apres tu mets le code SQL dans la propriete SQL du TQuery (cf post de AlphaT) et apres tu devrais etre bon...
bono Moi c'est en cliquant sur le bouton qu'il doit me poser 3 questions et en fonction des reponses il effectue la requete.
Donc pour vous le code est faut ????
AlphaT La requête SQL doit être tapée dans l'inspecteur d'objet, plus précisément la propriété SQL du composant TQuery. On peut aussi initialiser cette propriété en éxécution (dans son code) mais c'est plus compliqué.
JWhy [Erreur] Unit8.pas(92): Identificateur non déclaré : 'qryNbArticle'  
il ne trouve pas ton object Query, pose z'en un  sur ta form ou sur ton datamodule
 
juste une question  

Citation :

select  
count(1) nb  
from  
ENDT  
where  
reference = :ref and  
date_entree >= datedebut and  
date_entree <= datefin  
end;  


CE KOI CA ????
tu mets ta requete directos a plat dans le code ???? t'as de l'espoir ! ;)
 
serieux, regarde l'aide de delphi sur les access aux bases de donnees ...
 
bonne chance  
 :hello:

bono s'il vous plait, de l'aide
bono procedure TForm8.Button3Click(Sender: TObject);  
var  
sReference, sDateDebut, sDateFin : string;  
begin  
sReference:= InputBox('Saisie', 'Référence ?', '');  
sDateDebut:= InputBox('Saisie', 'Date Début ?', '');  
sDateFin:= InputBox('Saisie', 'Date Fin ?', '');  
 
qryNbArticle.ParamByName(('Ref').AsString) := sReference;  
qryNbArticle.ParamByName(('DateDebut').AsString) := sReference;  
qryNbArticle.ParamByName(('DateFin').AsString) := sReference;  
 
qryNbArticle.Open;  
 
if qryNbArticle.FindFirst then  
ShowMessage(qryNbArticle.FieldByName('Nb'.AsString));  
 
 
select  
count(1) nb  
from  
ENDT  
where  
reference = :ref and  
date_entree >= datedebut and  
date_entree <= datefin  
end;  
 
end.  
 
 
 
 
voici la liste des erreurs  
 
[Erreur] Unit8.pas(92): Identificateur non déclaré : 'qryNbArticle'  
[Erreur] Unit8.pas(92): Opérateur ou point-virgule manquant  
[Erreur] Unit8.pas(92): Type Record, Object ou Class requis  
[Erreur] Unit8.pas(98): ';' attendu(e) mais 'IF' trouvé(e)  
[Erreur] Unit8.pas(110): '.' attendu(e) mais ';' trouvé(e)  
[Erreur fatale] roca.dpr(13): Ne peut compiler l'unité utilisée 'Unit8.pas'  
 
Comprend pas

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)