Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/11/2010, 10h44   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 5
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 5
Points : 2
Points : 2
Par défaut Utilisation de la fonction Somme Domaine

Bonjour,

J'ai un petit souci dans l'utilisation de la fonction SomDom.

Je voudrais à partir d'une table qui reprend pour mes produits en stocks tous les mouvements d'entrées et de sorties, regrouper avec un cumul par article et par date, les quantités livrées.

Ex: Le 16/11/10 Quantités Livrées produit A= 5; Quantités livrées cumulées produit A = 5
Le 20/11/10 Quantités Livrées produit A= 12; Quantités livrées cumulées produit A = 17 etc..

Pour ce faire, dans ma requete, j'utilise la fonction SomDom de la façon suivante:
Code :
SomDom("[QTE_LIVREE]";"Tbl_Inventaire";"[COD_ARTICLE]='xxx'")
J'obtiens seulement de cette façon le total des quantités livrées du produit xxx.
Ma question est: Quelle est la bonne syntaxe pour obtenir PAR ARTICLE, un cumul progressif PAR DATE, des quantités livrées?
Merci pour votre aide.

Cordialement
ZF007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2010, 15h20   #2
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 249
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 249
Points : 1 862
Points : 1 862
Bonjour,

Voici un exemple de syntaxe :
Code :
1
2
3
SELECT mvts.code, mvts.date_out, mvts.Qout
, dsum("Qout","mvts","code='" & mvts.code & "' and date_out<=cdate('" & mvts.date_out & "')") AS cumul
FROM mvts ORDER BY mvts.code, mvts.date_out;
J'ai supposé que le code article était alphanumérique, sinon il faut enlever les '
nico84 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2010, 07h00   #3
Rédacteur/Modérateur
 
Avatar de Jeannot45
 
Homme Jean BALLAT
Inscription : octobre 2004
Messages : 2 856
Détails du profil
Informations personnelles :
Nom : Homme Jean BALLAT
Âge : 63
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : octobre 2004
Messages : 2 856
Points : 5 225
Points : 5 225


Complément d'informations : Les fonctions de Domaines

Bonne continuation
__________________
Jeannot

Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA

Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
Jeannot45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2010, 10h19   #4
Invité de passage
 
Inscription : novembre 2010
Messages : 5
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 5
Points : 2
Points : 2
Par défaut Fonction somdom

Bonjour,

J'approche tout doucement du but.
J'ai légèrement modifié ma table à l'origine de ma requete en y ajoutant un numéroauto.
Ensuite avec une requête sélection je récupère:
xx Le numéro Auto (Numéro incrément) xx le code article (COD_ART) xx Lad ésignation de l'article (DGN) xx Les quantités en stock (QTE_STK_AVT) xx Les dates de livraison (DAT_PIE) xx Les quantités livrées (QTE_LIV) xx et enfin une colonne avec la fonction qui me permet de cumuler les quantités livrées dans cette même requête et dont la syntaxe est la suivante:
Code :
1
2
 
Cumul: SomDom("QTE_LIV";"T01-ROT_stocks";" [Numéro incrément] <= " & [Numéro incrément])
Maintenant j'obtiens bien un cumul des valeurs du champ "QTE_LIV", mais malheureusement ce cumul se poursuit indépendemment de la rupture sur le code article, puisque j'obtiens le résultat suivant:

Numéro
incrément COD_ART DGN QTE_STK_AVT DAT_PIE QTE_LIV Cumul
3 04GD xx 29 31/08/10 1 3
7 04GD xx 29 23/08/10 3 12
6 04GD xx 29 16/11/09 2 9
5 04GD xx 29 31/08/09 2 7
2 04GD xx 29 30/04/09 1 2
1 04GD xx 29 27/04/09 1 1
4 04GD xx 29 30/01/09 2 5
10 04H yy 51 29/10/10 30 74
9 04H yy 51 30/09/10 30 44
11 04H yy 51 26/04/10 25 99
16 04H yy 51 22/03/10 2 171
13 04H yy 51 19/11/09 20 139
15 04H yy 51 30/09/09 20 169
12 04H yy 51 15/09/09 20 119
14 04H yy 51 24/07/09 10 149
8 04H yy 51 30/04/09 2 14
17 04HBD zz 2 171


On constate que le cumul se fait bien pour les numéros auto qui vont de 1 à 7, mais le numéro auto 8 correspond à un code article différent (04H), on devrait donc repartir avec un cumul de 2.

Quelqu'un peut il me dire la condition que je dois ajouter à ma fonction SomDom pour obtenir un cumul qui tient compte de la rupture sur le code article.

Merci
Cordialement
ZF007
ZF007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2010, 17h08   #5
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 249
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 249
Points : 1 862
Points : 1 862
Bonsoir,
Il faut ajouter un test sur le code :
Citation:
Cumul: SomDom("QTE_LIV";"T01-ROT_stocks";" [Numéro incrément] <= " & [Numéro incrément] & " &nd cod_art='" & cod_art & "'")
nico84 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 13h35   #6
Invité de passage
 
Inscription : novembre 2010
Messages : 5
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 5
Points : 2
Points : 2
Par défaut SomDom dans une requete

Bonjour,

J'ai essayé d'intégrer cette syntaxe dans ma requête.
Mais manifestement ça ne convient pas: j'ai le message d'erreur :
" Erreur de syntaxe (opérateur absent) dans l'expression : " [Numéro increment] <= 'xxxx' &nd cod_art = 'xxxxx' ".

J'ai tout essayé, ajouter, retirer l'apostrophe, les guillement le &... Rien à faire.
J'ai fini pas résoudre mon problème en exportant sur XL le résultat de ma requete, en ajoutant au résultat du query MS une colonne avec une formule me permettant de calcler le cumul des quantités par code et dans l'ordre chronologique, puis tout réinjecter dans Access pour poursuivre mon travail jusqu'à l'édition des états.

Je ne comprends pas, il doit bien y avoir un moyen dans ACCESS de faire un total cumulé progressif, en travaillant sur 2 champs critères.

Bonne journée
ZF007
ZF007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 15h16   #7
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 249
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 249
Points : 1 862
Points : 1 862
Euh désolé mon doigt a glissé

C'est and code_art et non &nd code_art

par ailleurs l'incrément est numérique donc à priori sans '
nico84 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 15h58   #8
Invité de passage
 
Inscription : novembre 2010
Messages : 5
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 5
Points : 2
Points : 2
Par défaut EUREKA

Citation:
Envoyé par nico84 Voir le message
Euh désolé mon doigt a glissé

C'est and code_art et non &nd code_art

par ailleurs l'incrément est numérique donc à priori sans '

Eureka, Ca marche
Merci
fz007
ZF007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h03.


 
 
 
 
Partenaires

Hébergement Web