Salut a tous, voila je fait une petite application avec delphi7, j'au une base de données access dans laquelle j'ai une table Voiture avec un champ Dachat de type date et heure(date abrégée); je voudrais recuperer la somme de Pachat des enregistrements dont Dachat est entre deux dates (récuperées dans spSkinDateEdit1 et 2)
j'utilise pour ma requete le code suivant:
ADOQuery1.SQL.Add('select sum(Pachat) as PA from Voiture where Dachat between '+spSkinDateEdit1.text+'and'+spSkinDateEdit2.text);
mais à l’exécution j'ai un message d'érreur sur les types de données. j'ai tenté plusieurs modifications du code en utilisant par exemple Date a la place de Text mais rien ne marche!
si quelqu'un peut m'aider ça serait super
merci beaucoup pour votre aide
beckerich
Messages postés302Date d'inscriptionjeudi 29 septembre 2005StatutMembreDernière intervention17 septembre 20132 14 août 2012 à 11:16
bonjour
utilise une requête paramétrée :
ADOQuery1.SQL.Add('select sum(Pachat) as PA from Voiture where Dachat between :datdeb and :datfin');
ADOQuery1.ParamByName('datdeb').AsDateTime := StrToDateTime(spSkinDateEdit1.text);
ADOQuery1.ParamByName('datfin').AsDateTime := StrToDateTime(spSkinDateEdit2.text);
ADOQuery1.Open;
je ne connais pas les composant ADO, mais ça devrait ressembler à quelque chose comme cela.
Une question sur Delphi dans un forum Visual Basic; cela risque de ne pas être chanceux. Il reste à espérer qu'un administrateur va passer et rediriger ta question à un endroit plus chanceux.
Sinon en sql direcement, ca donne :
ADOQuery1.SQL.Add('select sum(Pachat) as PA from Voiture where Dachat between datevalue('+spSkinDateEdit1.text+') and datevalue('+spSkinDateEdit2.text+')');