titilechat001
Messages postés22Date d'inscriptionmardi 16 août 2005StatutMembreDernière intervention18 septembre 2005
-
15 sept. 2005 à 19:49
Doro81079
Messages postés380Date d'inscriptionvendredi 22 avril 2005StatutMembreDernière intervention24 février 2015
-
17 sept. 2005 à 07:11
bonjour
J'essaye de faire une requete qui ferait la somme des enregistrements
dont l'id_table (champs access) est idtable (variable vb), tout ca,
dans une table nommée plat_table
voici mon code
with dataplat_table
.recordsource = "select sum([plat_table].prix) from
[plat_table] where (([plat_table].[id_table])=idtable) order by
([plat_table].[id_table]);"
.refresh
end with
est ce que vous pouvez me dire ce qui ne va pas?
et comment ensuite, je peux mettre mon résultat dans une variable pour l'exploiter?
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 15 sept. 2005 à 20:04
Salut,
Au niveau de la requete, j'aurais plutôt codé ça :
si idtable est numérique
"select sum([plat_table].prix) from [plat_table] where [plat_table].[id_table]=" & idtable & ";"
si idtable est du texte
"select sum([plat_table].prix) from [plat_table] where [plat_table].[id_table]='" & idtable & "';"
Il est inutile de trier par id_table dans ton cas car il n'y a qu'une seule valeur (idtable) que tu interroges.
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
titilechat001
Messages postés22Date d'inscriptionmardi 16 août 2005StatutMembreDernière intervention18 septembre 2005 15 sept. 2005 à 21:13
Merci pour vos conseils.
Chrisnyc, quand j'essaye ta solution, ca me met "user-defined type not
defined" sur la ligne Dim cnCon As ADODB.Connection. C'est surement
parce que j'utilise DAO. est ce que tu vois une autre solution?
Canilupus, je ne sais pas comment afficher le résultat de te requete
dans une variable, alors je ne peux pas vraiment tester. est ce que je
dois forcement créer un objet (genre dblist)? est ce que je peux mettre
ca directement dans une variable genre total=.recordset
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
chrisnyc
Messages postés25Date d'inscriptionmardi 16 août 2005StatutMembreDernière intervention22 septembre 2005 15 sept. 2005 à 22:03
c est certainement que tu n as pas ajoute les librairies
ajoute
Microsoft excel object 10 librairy
Microsoft DAO 3.6 object librairy
Microsoft ActiveX data objects recordset 2.8 librairy
Microsoft ActiveX data objects 2.8 librairy
chrisnyc
Messages postés25Date d'inscriptionmardi 16 août 2005StatutMembreDernière intervention22 septembre 2005 16 sept. 2005 à 01:19
la le probleme vient de ta requete
si id_table est numérique
sRequete = "SELECT sum(prix) as somme FROM plat_table WHERE id_table=" & idtable & " "
si id_table est du texte
sRequete = "SELECT sum(prix) as somme FROM plat_table WHERE id_table='" & idtable & "'"
donc en l occurrence si ca plante maintenant c certainement que ton champ id_table dans ta table plat_table est un numerique donc prend la premiere forme...
titilechat001
Messages postés22Date d'inscriptionmardi 16 août 2005StatutMembreDernière intervention18 septembre 2005 16 sept. 2005 à 09:31
bon, comme je n'y arrive pas, je t'explique ce que je voudrais vraiment faire.
je suis connectée à un controle data en dao et je dois faire une
addition des champs prix . Mais si j'additionne tout à partir de
mon controle data, il va prendre tous les enregistrements, alors que je
ne veux prendre que ceux qui sont liés à une certaine table (d'ou mon
where). j'ai esayer d'afficher dans un dbgrid mes résutlats, mais je ne
peux pas compter le nb d'enregistrements pour savoir ou arreter ma
boucle qui compte.
J'ai essayé directement en sql, mais je n'y arrive pas.
Est ce que tu vois ce que je peux faire? est ce que je peux afficher
mon résultat de requete sélectionné (avec le where) dans un autre objet
que dbgrid??
Doro81079
Messages postés380Date d'inscriptionvendredi 22 avril 2005StatutMembreDernière intervention24 février 201556 17 sept. 2005 à 07:11
bonsoir,
je suis plutôt nul en dao mais à première vue la requête de canislupus me parait exacte donc je pense que tu devrait la tester si ce n'est pas encore fait....(sans les apostrophes comme ça a été préciser)
et ensuite pour ta variable tu la déclare en static avant la requête si tu veux t'en servir dans une autre procédure
static total as currency
et aprés la requête et avant la fermeture du recordset tu mets
total = dataplat_table.recordsource
et logiquement si tu t'en sert dans une autre procédure elle devrait contenir la somme de ton recordset.....
soit dit en passant je te conseille malgré tout ado ,plus simple.....