OVH Cloud OVH Cloud

rendre une requete avec somme updatable

4 réponses
Avatar
Bonjour a tous, merci pour vos précédentes réponses, ce forum est vraiment
une aubaine :-)
...soi le probleme existentiel suivant :
Voila, j'ai deux tables la table "refs" et la table "datas"
refs contient les champs "numero", "client", "date", etc... "numero" est une
clé sans doublons
datas contient "numero" description", "montantHT"...
les deux tables sont reliées entre elles par le champ "muméro" avec
intégrité référentielle (MAJ +Suppr en cascade)
en gros c'est unsysteme de factures classique il y a plusieurs lignes dans
datas pour une ligne dans refs...

Bon, maintenant je veux faire une requete qui reprend tous les champs de la
table refs et fait la somme du champ montant ce qui donne :

SELECT Refs.numero, Refs.Date, Refs.Client, Sum( Datas.MontantHT) AS
SommeDeMontantHT
FROM Refs INNER JOIN Datas ON Refs.numero = Datas.numero
GROUP BY Refs.numero, Refs.Date, Refs.Client;

et évidemment cette requete n'est pas updatable elle est en lecture
seule....et ça me désole car je voudrais a la fois avoir la somme des
montants (en tant qu'info) et pouvoir écririre dans les autre champs....

Donc est-ce impossible d'obtenir ce que je souhaites ? est ce que la
solution serait juste de créer un champ somme_montant dans ref que je
remplirais par sql ou vb... je peux le faire mais c'est pas génial

Merci beaucoup pour votre aide et vos conseils .

4 réponses

Avatar
Gafish
Bonjour

camille wrote:
SELECT Refs.numero, Refs.Date, Refs.Client, Sum( Datas.MontantHT)
AS SommeDeMontantHT
FROM Refs INNER JOIN Datas ON Refs.numero = Datas.numero
GROUP BY Refs.numero, Refs.Date, Refs.Client;

et évidemment cette requete n'est pas updatable elle est en lecture
seule....


C'est normal car c'est une requête de regroupement, donc les enregistrements
affichés ne correspondent pas à des enregistrements "physiques".

et ça me désole car je voudrais a la fois avoir la somme des
montants (en tant qu'info) et pouvoir écririre dans les autre
champs....


Les autres champs, c'est à dire ? ref.numéro, ref.date, ref.client, ce sont
pourtant des champs récupérés des tables non ? Ou veux tu exactement écrire
?



Donc est-ce impossible d'obtenir ce que je souhaites ? est ce que la
solution serait juste de créer un champ somme_montant dans ref que je
remplirais par sql ou vb... je peux le faire mais c'est pas génial


Non ce n'est pas la solution.
Si j'ai bien compris ta problématique, à mon avis ce que tu devrais faire
c'est un formulaire et à l'interieur un sous formulaire ou tu saisis le
détail de facture. Et dans le formulaire conteneur, tu reprends le total de
ton sous-form que tu affiches, ce qui te donnera le total de la facture.
C'est bien cela que tu veux ?


Merci beaucoup pour votre aide et vos conseils .


--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
oui ...ben enfin non... ça m'arrange pas trop... je veux dire des solutions
en
passant par un autre objet, j'ai aucune difficulté a imaginer ça tout
seul... dsl :-)

Ouiinnn je veux faire une requete comme ça et updatable dites moi si c'est
simplement pas possible, ça m'etonnerait pas plus que ça...



Gafish wrote:
Bonjour

camille wrote:
SELECT Refs.numero, Refs.Date, Refs.Client, Sum( Datas.MontantHT)
AS SommeDeMontantHT
FROM Refs INNER JOIN Datas ON Refs.numero = Datas.numero
GROUP BY Refs.numero, Refs.Date, Refs.Client;

et évidemment cette requete n'est pas updatable elle est en lecture
seule....


C'est normal car c'est une requête de regroupement, donc les
enregistrements affichés ne correspondent pas à des enregistrements
"physiques".

et ça me désole car je voudrais a la fois avoir la somme des
montants (en tant qu'info) et pouvoir écririre dans les autre
champs....


Les autres champs, c'est à dire ? ref.numéro, ref.date, ref.client,
ce sont pourtant des champs récupérés des tables non ? Ou veux tu
exactement écrire ?



Donc est-ce impossible d'obtenir ce que je souhaites ? est ce que la
solution serait juste de créer un champ somme_montant dans ref que je
remplirais par sql ou vb... je peux le faire mais c'est pas génial


Non ce n'est pas la solution.
Si j'ai bien compris ta problématique, à mon avis ce que tu devrais
faire c'est un formulaire et à l'interieur un sous formulaire ou tu
saisis le détail de facture. Et dans le formulaire conteneur, tu
reprends le total de ton sous-form que tu affiches, ce qui te donnera
le total de la facture. C'est bien cela que tu veux ?


Merci beaucoup pour votre aide et vos conseils .




Avatar
Gafish
camille wrote:
oui ...ben enfin non... ça m'arrange pas trop... je veux dire des
solutions en
passant par un autre objet, j'ai aucune difficulté a imaginer ça tout
seul... dsl :-)

Ouiinnn je veux faire une requete comme ça et updatable dites moi si
c'est simplement pas possible, ça m'etonnerait pas plus que ça...




Ca me parait difficile car tu as une requête ici de regroupement. Comme
dirait lapalisse, cela veut dire que le résultat affiché est le regroupement
de plusieurs mouvements, ce n'est donc pas un enregistrement qui existe dans
la table. Comment voudrais tu pouvoir modifier un enregistrement de ce type
?

--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
ben oui, je vois bien que ça a l'air pas possible.
ce que je trouves un peu désolant c'est que meme si on crée une requete
intermediaire pour faire la somme des montants et qu'on fait une rqt finale
qui relie les deux (table refs + rqt sommemontants)ou on n'utilise pas
"d'opérations", la rqt finale n'est pas non plus udatable. c'est surtout ça
que je trouves ... chiant.. et pas trés normal...
Donc je vais créer un champ montant que je laisserai vide dans ma table refs
et mettre un bouton "recalculer", qui fera une maj du champ par sql.

merci de t'etre interréssé à mon problème :-)


Gafish wrote:
camille wrote:
oui ...ben enfin non... ça m'arrange pas trop... je veux dire des
solutions en
passant par un autre objet, j'ai aucune difficulté a imaginer ça tout
seul... dsl :-)

Ouiinnn je veux faire une requete comme ça et updatable dites moi si
c'est simplement pas possible, ça m'etonnerait pas plus que ça...




Ca me parait difficile car tu as une requête ici de regroupement.
Comme dirait lapalisse, cela veut dire que le résultat affiché est le
regroupement de plusieurs mouvements, ce n'est donc pas un
enregistrement qui existe dans la table. Comment voudrais tu pouvoir
modifier un enregistrement de ce type ?