OVH Cloud OVH Cloud

dsum dans une requete

3 réponses
Avatar
bonjour

voila je bloque sur le probleme suivant j'essaie de faire une requete avec
un dsum pour m'afficher les factures par mois et par client et le montant
total par mois mais j'y arrive pas.

si je passe les parametres en tant que texte et pas en tant que variable, ça
marche mais ça me sert à rien.
Ce que je voudrais arriver à faire c'est passer les parametres client et
mois qui sont sur la ligne en cours en tant que variable...et qu'il
m'affiche les bons totaux lignes par ligne.

SELECT DSum("[MontantHT]","Calendrier","[Client] = 'Microsoft' and [mois]
='octobre 2006'") AS Expr1, Factures_Refs.Mois, Factures_Refs.Client,
Factures_Refs.Réglée
FROM Factures_Refs;

Merci

3 réponses

Avatar
Sylvain Lafontaine
Les fonctions DLookUp, DCount et DSum ne sont pas vraiment faites pour être
utilisées en association avec les requêtes Select. Utilisez plutôt Sum avec
un Group By et joindre votre table Calendrier à la table Facture avec un
INNER JOIN.

Remarquez que je ne dis que l'utilisation de DSum ne peut pas fonctionner
dans un Select; à mon avis, cela devrait ou aurait dû fonctionner mais même
si cela fonctionne, cela va être un puit de performance. (Une façon de
contourner le problème serait de passer par une fonction VBA qui se
chargerait d'appeler DSUM mais dans tous les cas, vous seriez mieux
d'apprendre à travailler correctement avec le language SQL qu'avec ces
fonctions Access.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


<jc> wrote in message news:45677aa8$0$26234$
bonjour

voila je bloque sur le probleme suivant j'essaie de faire une requete avec
un dsum pour m'afficher les factures par mois et par client et le montant
total par mois mais j'y arrive pas.

si je passe les parametres en tant que texte et pas en tant que variable,
ça marche mais ça me sert à rien.
Ce que je voudrais arriver à faire c'est passer les parametres client et
mois qui sont sur la ligne en cours en tant que variable...et qu'il
m'affiche les bons totaux lignes par ligne.

SELECT DSum("[MontantHT]","Calendrier","[Client] = 'Microsoft' and [mois]
='octobre 2006'") AS Expr1, Factures_Refs.Mois, Factures_Refs.Client,
Factures_Refs.Réglée
FROM Factures_Refs;

Merci




Avatar
merci pour ta réponse
effectivement je sais bien faire en joignant les tables comme tu explique et
en faisant une somme, mais en faisant comme ça les champs de ma requète ne
sont plus éditables, c'est pour ça qe j'essayais d'inclure un champ Dsum
dans ma requete, ce qui me permettait d'éditer les autres champs.


"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news: %
Les fonctions DLookUp, DCount et DSum ne sont pas vraiment faites pour
être utilisées en association avec les requêtes Select. Utilisez plutôt
Sum avec un Group By et joindre votre table Calendrier à la table Facture
avec un INNER JOIN.

Remarquez que je ne dis que l'utilisation de DSum ne peut pas fonctionner
dans un Select; à mon avis, cela devrait ou aurait dû fonctionner mais
même si cela fonctionne, cela va être un puit de performance. (Une façon
de contourner le problème serait de passer par une fonction VBA qui se
chargerait d'appeler DSUM mais dans tous les cas, vous seriez mieux
d'apprendre à travailler correctement avec le language SQL qu'avec ces
fonctions Access.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


<jc> wrote in message news:45677aa8$0$26234$
bonjour

voila je bloque sur le probleme suivant j'essaie de faire une requete
avec un dsum pour m'afficher les factures par mois et par client et le
montant total par mois mais j'y arrive pas.

si je passe les parametres en tant que texte et pas en tant que variable,
ça marche mais ça me sert à rien.
Ce que je voudrais arriver à faire c'est passer les parametres client et
mois qui sont sur la ligne en cours en tant que variable...et qu'il
m'affiche les bons totaux lignes par ligne.

SELECT DSum("[MontantHT]","Calendrier","[Client] = 'Microsoft' and [mois]
='octobre 2006'") AS Expr1, Factures_Refs.Mois, Factures_Refs.Client,
Factures_Refs.Réglée
FROM Factures_Refs;

Merci








Avatar
Sylvain Lafontaine
Pour utiliser DSUM, vous devez bâtir votre requête de la même façon qu'en
VBA; en sachant que le contenu des chaînes de caractères seront envoyé
directement à la fonction DSUM sans interprétation par le moteur JET; ce qui
nous donne quelque chose comme:

SELECT DSum ("[MontantHT]", "[Calendrier]", "[Client] = '" &
Factures_Refs.Client & "' and [mois] = '" & Factures_Refs.Mois & "'") AS
Expr1, .....

Notez que vous devrez doubler les apostrophes avec la fonction Replace si la
possibilité existe d'avoir des apostrophes dans les noms de client.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


<jc> wrote in message news:45682030$0$3739$
merci pour ta réponse
effectivement je sais bien faire en joignant les tables comme tu explique
et en faisant une somme, mais en faisant comme ça les champs de ma requète
ne sont plus éditables, c'est pour ça qe j'essayais d'inclure un champ
Dsum dans ma requete, ce qui me permettait d'éditer les autres champs.


"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news: %
Les fonctions DLookUp, DCount et DSum ne sont pas vraiment faites pour
être utilisées en association avec les requêtes Select. Utilisez plutôt
Sum avec un Group By et joindre votre table Calendrier à la table
Facture avec un INNER JOIN.

Remarquez que je ne dis que l'utilisation de DSum ne peut pas fonctionner
dans un Select; à mon avis, cela devrait ou aurait dû fonctionner mais
même si cela fonctionne, cela va être un puit de performance. (Une façon
de contourner le problème serait de passer par une fonction VBA qui se
chargerait d'appeler DSUM mais dans tous les cas, vous seriez mieux
d'apprendre à travailler correctement avec le language SQL qu'avec ces
fonctions Access.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


<jc> wrote in message news:45677aa8$0$26234$
bonjour

voila je bloque sur le probleme suivant j'essaie de faire une requete
avec un dsum pour m'afficher les factures par mois et par client et le
montant total par mois mais j'y arrive pas.

si je passe les parametres en tant que texte et pas en tant que
variable, ça marche mais ça me sert à rien.
Ce que je voudrais arriver à faire c'est passer les parametres client et
mois qui sont sur la ligne en cours en tant que variable...et qu'il
m'affiche les bons totaux lignes par ligne.

SELECT DSum("[MontantHT]","Calendrier","[Client] = 'Microsoft' and
[mois] ='octobre 2006'") AS Expr1, Factures_Refs.Mois,
Factures_Refs.Client, Factures_Refs.Réglée
FROM Factures_Refs;

Merci