|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : octobre 2004 Messages : 119 ![]() |
Bonjour à tous , j'aie besoin d'un petit coup de main pour faire un
cumul dans le champ d'une requete . Pour l'instant je n'arrive pas à lire correctement les cellules d'un champ et je ne parviens pas non plus à les enregistrer . Voici mon code Code :
|
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
Hello
je ne vois pas bien le but de ta prograammation essaye avec une requête tout bête, tu devais y arriver de manière beaucoup plus simple Joyeuses Pâques
__________________
-------------------Simplifi----------comme si tout était simple-------- |
|
|
00
|
|
|
#3 | ||
|
Membre du Club
![]() Inscription : octobre 2004 Messages : 119 ![]() |
Pour l'instant , je n'aie pas trouvé spontannement une requete faisant un cumul et puis j'aime bien me compliquer la vie avec vba .
J'aie remanié mon code comme ceci avec toutefois encore une coquille sur cette ligne Code :
Set monrstreq = marequete.OpenRecordset(dbOpenDynaset) ‘erreur d’execution 28 inconnu Code :
|
||
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Bonjour,
Peux-tu poster la requete ? Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#5 | ||||
|
Membre du Club
![]() Inscription : octobre 2004 Messages : 119 ![]() |
Voici la requete SQL
Code :
Code :
Set monrecordsetsurreq = marequete.OpenRecordset() 'ouvre un recordset sur la requete Autrement dit il faut supprimer cumul1() AS Expr1 dans la requete SQL pour que la macro fonctionne .Que faire ? Code :
|
||||
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Tu réouvre la requete "achat (passe)" dans la fonction cumul1() qui est appelée depuis "achat (passe)". Je ne comprend pas trop se que tu veux faire mais ceci ne peut pas fonctionner.
Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : octobre 2004 Messages : 119 ![]() |
C'est simple , je veux juste faire un cumul du champ "Montant net de l'achat" .
"Montant net de l'achat" est calculé automatiquement avec la requête . Ensuite il faudrait que j'ajouter un nouveau champ vide de donnée nommé "Cumul". Je boucle sur le champ "Montant net de l'achat" en sommant la valeur courante i avec la valeur i-1 précedente .Et j'envoie le résultat dans la colonne "Cumul" au fur et à mesure . |
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Pour faire la somme d'un champ d'une table on utilise habituellement ceci :
Y-t-il une raison technique pour que tu ne l'utilises pas ? A moins que je n'ai pas tout compris.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#9 | ||
|
Membre du Club
![]() Inscription : octobre 2004 Messages : 119 ![]() |
Pas de problème à ce que j'utiliser la fonction sum([champ]) ...
(dans les TCD je suis quasi sur qu'il existe une fonction "cumuler" probablement cum() ) Voici un exemple de cumul Citation:
Par contre une fonction sum([champ]) toute bête je n'y arrive pas !(un bug d'access 2000 ?!) voici ce que j'aie tenté Code :
SELECT [Achat (PASSE)].Quantité, [Achat (PASSE)].Prix, [Quantité]*[Prix] AS [Montant net de l'achat], Sum([Achat (PASSE)]![Quantité]*[Achat (PASSE)]![Prix]) AS Expr1 Citation:
|
||
|
|
00
|
|
|
#10 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Un bug ! Surement pas...
Il te manque le Group by tout simplement. Obligatoire quand tu utilises des fonctions de regroupement. Si tu as du mal avec SQL ACCESS utilise le QBE (générateur de requête).
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#11 | ||
|
Membre du Club
![]() Inscription : octobre 2004 Messages : 119 ![]() |
Bonjour , voici ma solution .Le calcul du cumul est correct .
Ce que je ne comprend pas c’est comment me brancher à ma fonction cumul1 lorsque Je double clique sur ma requete … Il me faudrait un événement double click qui lance ma macro «*cumul1*» .Cad en bon français «*Lorsque je double clique sur ma requête nommée «*Cumul*» lance ma fonction cumul1*» Pour cela j’aie pensé à utiliser un module de classe avec public event ou public withevent . Mais la programmation de module de class n’est pas ma tasse de thé …(Ce qui me gêne sur Access c’est que je ne trouve pas d’événements sur des objets comme des tables ou des requetes .) Code :
|
||
|
|
00
|
|
|
#12 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Parcequ'il n'y a pas d'événements sur ces objets.
A partir de 2010 on trouve les triggers.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#13 |
|
Membre du Club
![]() Inscription : octobre 2004 Messages : 119 ![]() |
Ok merci ...
|
|
|
00
|
|
|
#14 | ||
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
Hello
ayant mieux compris ce que tu veux, il suffit de passer ta requête dans un formulaire avec un bouton cumul en haut et cette petite programmation simpliste (c'est plus fort que moi) Code :
__________________
-------------------Simplifi----------comme si tout était simple-------- |
||
|
|
00
|
|
|
#15 | ||
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
Re Hello
comme cette chose m'a titillé un peu trop, voici un exemple vite fait: une table avec un seul champ: N° et des valeurs de 1 à 11 dans les 11 lignes la requête suivante donne bien le cumul à partir de cet exemple simpliste (eh oui, je m'appelle Simplifi), tu trouveras certainement la bonne adaptation Code :
__________________
-------------------Simplifi----------comme si tout était simple-------- |
||
|
|
00
|
|
|
#16 |
|
Nouveau Membre du Club
![]() Inscription : avril 2005 Messages : 103 ![]() |
Bonjour
Je suis interressé par la methode mais sur 2 table.avec la clé primaire et secondaire. Comment indiquer le chemin de la 2eme table ? Table1 cle primaire IMMA Table 2 cle secondaire IMMA Je voudrai realissé le cumul selectif en utilisant Imma J'applique la requete decrite dans un champ de la table2 sur sa clé primaire mais additionne tous les enregistrements. Je voudrai le faire sur l'imatriculation d'un vehicule de la table 1 Merci de votre aide |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com