requete sous delphi

requete sous delphi - Programmation

Marsh Posté le 05-04-2001 à 11:53:22    

Utilise la fonction InputBox (regarde dans l'aide).
Elle ouvre une boîte de dialogue et retourne la chaîne saisie.

Reply

Marsh Posté le 05-04-2001 à 11:53:22   

Reply

Marsh Posté le 05-04-2001 à 12:32:22    

Pourriez vous me donner un exemple s'il vous plait, la doc st un peu confuse

Reply

Marsh Posté le 05-04-2001 à 12:42:43    

Ton code devrait resembler à ça :
 
procedure TForm1.Button1Click(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);
end;
 
qryNbArticle : TQuery -> la requête avec comme paramètre
Ref, DateDebut et DateFin et comme nom de champ Nb pour le nb
d'articles.

Reply

Marsh Posté le 05-04-2001 à 12:43:41    

Les smiley, c'était pas voulu...

Reply

Marsh Posté le 05-04-2001 à 12:53:09    

Donc, cela me fait, si j'ai bien saisi,
demande de la référence
demande date début
demande date fin
 
cela ne m'affichera que le nombre total dans un showmessage d'articles sortis ou entrés pendant la période ou bien toutes les lignes correspondant à la référence ??
 
 
 
la requete doit donc ressembler à cela
 
select Ref, DateDebut et DateFin  
 
Comment faire pour qu'il aditionne tous les chiffres, je sais que cela se fait par un count, mais comment l'appliquer ???

Reply

Marsh Posté le 05-04-2001 à 13:35:51    

Houlà, on dirai que tu maitrises pas tout à fait le sql.
 
Ta requête, ça doit être qqchose du genre (pour faire la
somme des qtes, tu remplaces sum(entree_produit.qte) par
count(1) pour avoir le nombre de lignes...)
 
select
 sum(entree_produit.qte) nb
from
 entree_produit
where
 entree_produit.reference = :ref and
 entree_produit.date_entree >= :datedebut and
 entree_produit.date_entree <= :datefin
 
A toi de remplacer le nom de la table et des champs par
ce que tu as dans ta base.
 
Le : permet d'indiquer un paramètre. Delphi remplace le
paramètre par la valeur indiquée en faisant ParamByName('MACHIN')
avant d'ouvrir la requête.

Reply

Marsh Posté le 05-04-2001 à 13:36:41    

Fais toujour chier ces smiley !

Reply

Marsh Posté le 05-04-2001 à 13:47:42    

cela donne cela ???
 
Ma table s'appelle ENDT, mes champs s'appellent No_Entree, reference_Produit, Date_Entree, Quantite_Entree.
Donc cela donne
 
qryNbArticle : TQuery  
select  
count(1) nb  
from  
Quantite_Entree
where  
Quantite_Entree.reference = :ref and  
Quantite_Entree.date_entree >= datedebut and  
Quantite_Entree.date_entree <= datefin  
 
C'est bon, mais j'indique où le nom de la table ???

Reply

Marsh Posté le 05-04-2001 à 14:45:00    

Nan, c'est ça :
 
select  
  count(1) nb  
from  
  ENDT
where  
  reference = :ref and  
  date_entree >= :datedebut and  
  date_entree <= :datefin
 
-> dans nb, tu as le nombre de ligne.
 
Si tu veux la somme des entrées/sorties, tu fais
select  
  sum(Quantite_Entree) nb  
from  
  ENDT
where  
  reference = :ref and  
  date_entree >= :datedebut and  
  date_entree <= :datefin

Reply

Marsh Posté le 05-04-2001 à 14:54:41    

entre count et sum ???,
moi je veux par ex
le produit x a été sorti x fois entre le 26/02/2001 et le 29/02/2001.
vous voyez ????

Reply

Marsh Posté le 05-04-2001 à 14:54:41   

Reply

Marsh Posté le 05-04-2001 à 14:59:41    

Alors utilise le count(1).

Reply

Marsh Posté le 05-04-2001 à 18:20:33    

qryNbArticle
 
je le declare comme quoi ???

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed