J'ai une table "AMD" avec entre autres 2 champs "RefOpe"=20
et "DernierStatut".
j'ai une requ=EAte s=E9lection "Rq_DernierStatut" qui=20
m'affiche 2 champs "RefOpe" et "StatutConf".
Je veux mettre =E0 jour le champ DernierStatut de la table=20
AMD par la requ=EAte Ajout suivante :
UPDATE AMD INNER JOIN Rq_DernierStatut ON AMD.RefOpe =3D=20
Rq_DernierStatut.RefOpe SET AMD.DernierStatut =3D=20
[Rq_DernierStatut].[StatutConf];
Lorsque j'ex=E9cute la requ=EAte j'ai l'erreur "L'op=E9ration=20
doit utiliser une requ=EAte qui peut =EAtre mise =E0 jour".
Par contre si =E0 la place de la requ=EAte j'ai une=20
table "Tbl_DernierStatut" contenant les m=EAmes informations=20
que la dite requ=EAte, la requ=EAte mise =E0 jour suivante=20
fonctionne tr=E8s bien :
UPDATE AMD INNER JOIN Tbl_DernierStatut ON AMD.RefOpe =3D=20
Tbl_DernierStatut.RefOpe SET AMD.DernierStatut =3D=20
[Tbl_DernierStatut] .[Statutconf];
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel Walsh
Salut,
Jet marque comme ne pouvant plus être mis-à-jour une requête ayant un aggrégat (MAX, MIN, AVG, SUM, COUNT, ... ) soit directement, soit indirectement (via un join sur une requête ayant un aggrégat). Lorsqu'on utilise une table réelle, la table ne fait plus référence à l'aggrégat et la requête ne vois pas sa mise-à-jour ainsi compremise.
Microsoft POURRAIT modifier cet état de choses, c'est faisable. Microsoft a simplement de besoin d'un signal en ce sens, de "plusieurs" utilisateur d'Access (JET). On sait où est la boîte à suggestion, sur le site de Microsoft? c'est là qu'il faut "suggérer" qu'on désire la possibilité de pouvoir mettre à jour une table avec une valeur aggrégée provenant d'une autre table, sous JET SQL (c'est déjà faisable avec MS SQL Server).
Espérant être utile, Vanderghast, Access MVP
"Dominique" wrote in message news:19e9b01c44dfd$9a59d660$ Bonjour,
J'ai une table "AMD" avec entre autres 2 champs "RefOpe" et "DernierStatut". j'ai une requête sélection "Rq_DernierStatut" qui m'affiche 2 champs "RefOpe" et "StatutConf".
Je veux mettre à jour le champ DernierStatut de la table AMD par la requête Ajout suivante : UPDATE AMD INNER JOIN Rq_DernierStatut ON AMD.RefOpe Rq_DernierStatut.RefOpe SET AMD.DernierStatut [Rq_DernierStatut].[StatutConf];
Lorsque j'exécute la requête j'ai l'erreur "L'opération doit utiliser une requête qui peut être mise à jour".
Par contre si à la place de la requête j'ai une table "Tbl_DernierStatut" contenant les mêmes informations que la dite requête, la requête mise à jour suivante fonctionne très bien : UPDATE AMD INNER JOIN Tbl_DernierStatut ON AMD.RefOpe Tbl_DernierStatut.RefOpe SET AMD.DernierStatut [Tbl_DernierStatut] .[Statutconf];
Pourquoi ?
Merci de votre aide Dominique
Salut,
Jet marque comme ne pouvant plus être mis-à-jour une requête ayant
un aggrégat (MAX, MIN, AVG, SUM, COUNT, ... ) soit directement, soit
indirectement (via un join sur une requête ayant un aggrégat). Lorsqu'on
utilise une table réelle, la table ne fait plus référence à l'aggrégat et la
requête ne vois pas sa mise-à-jour ainsi compremise.
Microsoft POURRAIT modifier cet état de choses, c'est faisable.
Microsoft a simplement de besoin d'un signal en ce sens, de "plusieurs"
utilisateur d'Access (JET). On sait où est la boîte à suggestion, sur le
site de Microsoft? c'est là qu'il faut "suggérer" qu'on désire la
possibilité de pouvoir mettre à jour une table avec une valeur aggrégée
provenant d'une autre table, sous JET SQL (c'est déjà faisable avec MS SQL
Server).
Espérant être utile,
Vanderghast, Access MVP
"Dominique" <anonymous@discussions.microsoft.com> wrote in message
news:19e9b01c44dfd$9a59d660$a301280a@phx.gbl...
Bonjour,
J'ai une table "AMD" avec entre autres 2 champs "RefOpe"
et "DernierStatut".
j'ai une requête sélection "Rq_DernierStatut" qui
m'affiche 2 champs "RefOpe" et "StatutConf".
Je veux mettre à jour le champ DernierStatut de la table
AMD par la requête Ajout suivante :
UPDATE AMD INNER JOIN Rq_DernierStatut ON AMD.RefOpe Rq_DernierStatut.RefOpe SET AMD.DernierStatut [Rq_DernierStatut].[StatutConf];
Lorsque j'exécute la requête j'ai l'erreur "L'opération
doit utiliser une requête qui peut être mise à jour".
Par contre si à la place de la requête j'ai une
table "Tbl_DernierStatut" contenant les mêmes informations
que la dite requête, la requête mise à jour suivante
fonctionne très bien :
UPDATE AMD INNER JOIN Tbl_DernierStatut ON AMD.RefOpe Tbl_DernierStatut.RefOpe SET AMD.DernierStatut [Tbl_DernierStatut] .[Statutconf];
Jet marque comme ne pouvant plus être mis-à-jour une requête ayant un aggrégat (MAX, MIN, AVG, SUM, COUNT, ... ) soit directement, soit indirectement (via un join sur une requête ayant un aggrégat). Lorsqu'on utilise une table réelle, la table ne fait plus référence à l'aggrégat et la requête ne vois pas sa mise-à-jour ainsi compremise.
Microsoft POURRAIT modifier cet état de choses, c'est faisable. Microsoft a simplement de besoin d'un signal en ce sens, de "plusieurs" utilisateur d'Access (JET). On sait où est la boîte à suggestion, sur le site de Microsoft? c'est là qu'il faut "suggérer" qu'on désire la possibilité de pouvoir mettre à jour une table avec une valeur aggrégée provenant d'une autre table, sous JET SQL (c'est déjà faisable avec MS SQL Server).
Espérant être utile, Vanderghast, Access MVP
"Dominique" wrote in message news:19e9b01c44dfd$9a59d660$ Bonjour,
J'ai une table "AMD" avec entre autres 2 champs "RefOpe" et "DernierStatut". j'ai une requête sélection "Rq_DernierStatut" qui m'affiche 2 champs "RefOpe" et "StatutConf".
Je veux mettre à jour le champ DernierStatut de la table AMD par la requête Ajout suivante : UPDATE AMD INNER JOIN Rq_DernierStatut ON AMD.RefOpe Rq_DernierStatut.RefOpe SET AMD.DernierStatut [Rq_DernierStatut].[StatutConf];
Lorsque j'exécute la requête j'ai l'erreur "L'opération doit utiliser une requête qui peut être mise à jour".
Par contre si à la place de la requête j'ai une table "Tbl_DernierStatut" contenant les mêmes informations que la dite requête, la requête mise à jour suivante fonctionne très bien : UPDATE AMD INNER JOIN Tbl_DernierStatut ON AMD.RefOpe Tbl_DernierStatut.RefOpe SET AMD.DernierStatut [Tbl_DernierStatut] .[Statutconf];
Pourquoi ?
Merci de votre aide Dominique
Eric
"Michel Walsh" écrivait news::
Salut,
Jet marque comme ne pouvant plus être mis-à-jour une requête ayant un aggrégat (MAX, MIN, AVG, SUM, COUNT, ... ) soit directement, soit indirectement (via un join sur une requête ayant un aggrégat). Lorsqu'on utilise une table réelle, la table ne fait plus référence à l'aggrégat et la requête ne vois pas sa mise-à-jour ainsi compremise.
Microsoft POURRAIT modifier cet état de choses, c'est faisable. Microsoft a simplement de besoin d'un signal en ce sens, de "plusieurs" utilisateur d'Access (JET). On sait où est la boîte à suggestion, sur le site de Microsoft? c'est là qu'il faut "suggérer" qu'on désire la possibilité de pouvoir mettre à jour une table avec une valeur aggrégée provenant d'une autre table, sous JET SQL (c'est déjà faisable avec MS SQL Server).
Espérant être utile, Vanderghast, Access MVP
Bonjour/Bonsoir Michel,
je rebondis sur la question.
J'ai 2 tables pour simplifier: Une table tclient avec entre autres un champs NumClient et un champs CumulAchat (monétaire) Une table tFacture avec entre autres un champs NumFacture, NumClient, MontantHT.
Je veux mettre à jour le CumulAchat de la table Client par une requête de mise à jour.(CumulAchat=somme des MontantHT des différentes factures d'un client donné)
Quel sql me proposes-tu ? car tous les cas de figure que j'ai testés me retourne : soit le message "L'opération doit utiliser une requête qui peut être mise à jour". soit "Inconnu" !!! quand j'utilise un DSum(...) pour la MAJ
Jet marque comme ne pouvant plus être mis-à-jour une requête
ayant
un aggrégat (MAX, MIN, AVG, SUM, COUNT, ... ) soit directement, soit
indirectement (via un join sur une requête ayant un aggrégat).
Lorsqu'on utilise une table réelle, la table ne fait plus référence à
l'aggrégat et la requête ne vois pas sa mise-à-jour ainsi compremise.
Microsoft POURRAIT modifier cet état de choses, c'est faisable.
Microsoft a simplement de besoin d'un signal en ce sens, de
"plusieurs" utilisateur d'Access (JET). On sait où est la boîte à
suggestion, sur le site de Microsoft? c'est là qu'il faut "suggérer"
qu'on désire la possibilité de pouvoir mettre à jour une table avec
une valeur aggrégée provenant d'une autre table, sous JET SQL (c'est
déjà faisable avec MS SQL Server).
Espérant être utile,
Vanderghast, Access MVP
Bonjour/Bonsoir Michel,
je rebondis sur la question.
J'ai 2 tables pour simplifier:
Une table tclient avec entre autres un champs NumClient et un champs
CumulAchat (monétaire)
Une table tFacture avec entre autres un champs NumFacture, NumClient,
MontantHT.
Je veux mettre à jour le CumulAchat de la table Client par une requête de
mise à jour.(CumulAchat=somme des MontantHT des différentes factures d'un
client donné)
Quel sql me proposes-tu ? car tous les cas de figure que j'ai testés me
retourne :
soit le message "L'opération
doit utiliser une requête qui peut être mise à jour".
soit "Inconnu" !!! quand j'utilise un DSum(...) pour la MAJ
Jet marque comme ne pouvant plus être mis-à-jour une requête ayant un aggrégat (MAX, MIN, AVG, SUM, COUNT, ... ) soit directement, soit indirectement (via un join sur une requête ayant un aggrégat). Lorsqu'on utilise une table réelle, la table ne fait plus référence à l'aggrégat et la requête ne vois pas sa mise-à-jour ainsi compremise.
Microsoft POURRAIT modifier cet état de choses, c'est faisable. Microsoft a simplement de besoin d'un signal en ce sens, de "plusieurs" utilisateur d'Access (JET). On sait où est la boîte à suggestion, sur le site de Microsoft? c'est là qu'il faut "suggérer" qu'on désire la possibilité de pouvoir mettre à jour une table avec une valeur aggrégée provenant d'une autre table, sous JET SQL (c'est déjà faisable avec MS SQL Server).
Espérant être utile, Vanderghast, Access MVP
Bonjour/Bonsoir Michel,
je rebondis sur la question.
J'ai 2 tables pour simplifier: Une table tclient avec entre autres un champs NumClient et un champs CumulAchat (monétaire) Une table tFacture avec entre autres un champs NumFacture, NumClient, MontantHT.
Je veux mettre à jour le CumulAchat de la table Client par une requête de mise à jour.(CumulAchat=somme des MontantHT des différentes factures d'un client donné)
Quel sql me proposes-tu ? car tous les cas de figure que j'ai testés me retourne : soit le message "L'opération doit utiliser une requête qui peut être mise à jour". soit "Inconnu" !!! quand j'utilise un DSum(...) pour la MAJ
Merci Eric
Eric
Eric écrivait news::
Bonjour/Bonsoir Michel,
je rebondis sur la question.
J'ai 2 tables pour simplifier: Une table tclient avec entre autres un champs NumClient et un champs CumulAchat (monétaire) Une table tFacture avec entre autres un champs NumFacture, NumClient, MontantHT.
Je veux mettre à jour le CumulAchat de la table Client par une requête de mise à jour.(CumulAchat=somme des MontantHT des différentes factures d'un client donné)
Quel sql me proposes-tu ? car tous les cas de figure que j'ai testés me retourne : soit le message "L'opération doit utiliser une requête qui peut être mise à jour". soit "Inconnu" !!! quand j'utilise un DSum(...) pour la MAJ
Merci Eric
C'est bon Michel, j'ai trouvé : UPDATE tClient SET tClient.CumulHT = DSum ("[Montantht]","tfacture","tfacture.NumClient=" & tclient.NumClient); suffisait mais j'avais mal placé les " car j'encadrai le champ tclient.numclient.
Merci
Eric <f_framZZ@hotmail.com> écrivait
news:XnF9508EE71BA9CAfframZZhotmailcom@207.46.248.16:
Bonjour/Bonsoir Michel,
je rebondis sur la question.
J'ai 2 tables pour simplifier:
Une table tclient avec entre autres un champs NumClient et un champs
CumulAchat (monétaire)
Une table tFacture avec entre autres un champs NumFacture, NumClient,
MontantHT.
Je veux mettre à jour le CumulAchat de la table Client par une requête
de mise à jour.(CumulAchat=somme des MontantHT des différentes
factures d'un client donné)
Quel sql me proposes-tu ? car tous les cas de figure que j'ai testés
me retourne :
soit le message "L'opération
doit utiliser une requête qui peut être mise à jour".
soit "Inconnu" !!! quand j'utilise un DSum(...) pour la MAJ
Merci
Eric
C'est bon Michel, j'ai trouvé :
UPDATE tClient SET tClient.CumulHT = DSum
("[Montantht]","tfacture","tfacture.NumClient=" & tclient.NumClient);
suffisait mais j'avais mal placé les " car j'encadrai le champ
tclient.numclient.
J'ai 2 tables pour simplifier: Une table tclient avec entre autres un champs NumClient et un champs CumulAchat (monétaire) Une table tFacture avec entre autres un champs NumFacture, NumClient, MontantHT.
Je veux mettre à jour le CumulAchat de la table Client par une requête de mise à jour.(CumulAchat=somme des MontantHT des différentes factures d'un client donné)
Quel sql me proposes-tu ? car tous les cas de figure que j'ai testés me retourne : soit le message "L'opération doit utiliser une requête qui peut être mise à jour". soit "Inconnu" !!! quand j'utilise un DSum(...) pour la MAJ
Merci Eric
C'est bon Michel, j'ai trouvé : UPDATE tClient SET tClient.CumulHT = DSum ("[Montantht]","tfacture","tfacture.NumClient=" & tclient.NumClient); suffisait mais j'avais mal placé les " car j'encadrai le champ tclient.numclient.
Merci
dOMINIQUE
Bonjour,
Merci pour tes explications claires. Dominique
-----Message d'origine----- Salut,
Jet marque comme ne pouvant plus être mis-à-jour une requête ayant
un aggrégat (MAX, MIN, AVG, SUM, COUNT, ... ) soit directement, soit
indirectement (via un join sur une requête ayant un aggrégat). Lorsqu'on
utilise une table réelle, la table ne fait plus référence à l'aggrégat et la
requête ne vois pas sa mise-à-jour ainsi compremise.
Microsoft POURRAIT modifier cet état de choses, c'est faisable.
Microsoft a simplement de besoin d'un signal en ce sens, de "plusieurs"
utilisateur d'Access (JET). On sait où est la boîte à suggestion, sur le
site de Microsoft? c'est là qu'il faut "suggérer" qu'on désire la
possibilité de pouvoir mettre à jour une table avec une valeur aggrégée
provenant d'une autre table, sous JET SQL (c'est déjà faisable avec MS SQL
Server).
Espérant être utile, Vanderghast, Access MVP
"Dominique" wrote in message
news:19e9b01c44dfd$9a59d660$ Bonjour,
J'ai une table "AMD" avec entre autres 2 champs "RefOpe" et "DernierStatut". j'ai une requête sélection "Rq_DernierStatut" qui m'affiche 2 champs "RefOpe" et "StatutConf".
Je veux mettre à jour le champ DernierStatut de la table AMD par la requête Ajout suivante : UPDATE AMD INNER JOIN Rq_DernierStatut ON AMD.RefOpe = Rq_DernierStatut.RefOpe SET AMD.DernierStatut = [Rq_DernierStatut].[StatutConf];
Lorsque j'exécute la requête j'ai l'erreur "L'opération doit utiliser une requête qui peut être mise à jour".
Par contre si à la place de la requête j'ai une table "Tbl_DernierStatut" contenant les mêmes informations que la dite requête, la requête mise à jour suivante fonctionne très bien : UPDATE AMD INNER JOIN Tbl_DernierStatut ON AMD.RefOpe = Tbl_DernierStatut.RefOpe SET AMD.DernierStatut = [Tbl_DernierStatut] .[Statutconf];
Pourquoi ?
Merci de votre aide Dominique
.
Bonjour,
Merci pour tes explications claires.
Dominique
-----Message d'origine-----
Salut,
Jet marque comme ne pouvant plus être mis-à-jour
une requête ayant
un aggrégat (MAX, MIN, AVG, SUM, COUNT, ... ) soit
directement, soit
indirectement (via un join sur une requête ayant un
aggrégat). Lorsqu'on
utilise une table réelle, la table ne fait plus référence
à l'aggrégat et la
requête ne vois pas sa mise-à-jour ainsi compremise.
Microsoft POURRAIT modifier cet état de choses, c'est
faisable.
Microsoft a simplement de besoin d'un signal en ce sens,
de "plusieurs"
utilisateur d'Access (JET). On sait où est la boîte à
suggestion, sur le
site de Microsoft? c'est là qu'il faut "suggérer" qu'on
désire la
possibilité de pouvoir mettre à jour une table avec une
valeur aggrégée
provenant d'une autre table, sous JET SQL (c'est déjà
faisable avec MS SQL
Server).
Espérant être utile,
Vanderghast, Access MVP
"Dominique" <anonymous@discussions.microsoft.com> wrote
in message
J'ai une table "AMD" avec entre autres 2 champs "RefOpe"
et "DernierStatut".
j'ai une requête sélection "Rq_DernierStatut" qui
m'affiche 2 champs "RefOpe" et "StatutConf".
Je veux mettre à jour le champ DernierStatut de la table
AMD par la requête Ajout suivante :
UPDATE AMD INNER JOIN Rq_DernierStatut ON AMD.RefOpe =
Rq_DernierStatut.RefOpe SET AMD.DernierStatut =
[Rq_DernierStatut].[StatutConf];
Lorsque j'exécute la requête j'ai l'erreur "L'opération
doit utiliser une requête qui peut être mise à jour".
Par contre si à la place de la requête j'ai une
table "Tbl_DernierStatut" contenant les mêmes informations
que la dite requête, la requête mise à jour suivante
fonctionne très bien :
UPDATE AMD INNER JOIN Tbl_DernierStatut ON AMD.RefOpe =
Tbl_DernierStatut.RefOpe SET AMD.DernierStatut =
[Tbl_DernierStatut] .[Statutconf];
Jet marque comme ne pouvant plus être mis-à-jour une requête ayant
un aggrégat (MAX, MIN, AVG, SUM, COUNT, ... ) soit directement, soit
indirectement (via un join sur une requête ayant un aggrégat). Lorsqu'on
utilise une table réelle, la table ne fait plus référence à l'aggrégat et la
requête ne vois pas sa mise-à-jour ainsi compremise.
Microsoft POURRAIT modifier cet état de choses, c'est faisable.
Microsoft a simplement de besoin d'un signal en ce sens, de "plusieurs"
utilisateur d'Access (JET). On sait où est la boîte à suggestion, sur le
site de Microsoft? c'est là qu'il faut "suggérer" qu'on désire la
possibilité de pouvoir mettre à jour une table avec une valeur aggrégée
provenant d'une autre table, sous JET SQL (c'est déjà faisable avec MS SQL
Server).
Espérant être utile, Vanderghast, Access MVP
"Dominique" wrote in message
news:19e9b01c44dfd$9a59d660$ Bonjour,
J'ai une table "AMD" avec entre autres 2 champs "RefOpe" et "DernierStatut". j'ai une requête sélection "Rq_DernierStatut" qui m'affiche 2 champs "RefOpe" et "StatutConf".
Je veux mettre à jour le champ DernierStatut de la table AMD par la requête Ajout suivante : UPDATE AMD INNER JOIN Rq_DernierStatut ON AMD.RefOpe = Rq_DernierStatut.RefOpe SET AMD.DernierStatut = [Rq_DernierStatut].[StatutConf];
Lorsque j'exécute la requête j'ai l'erreur "L'opération doit utiliser une requête qui peut être mise à jour".
Par contre si à la place de la requête j'ai une table "Tbl_DernierStatut" contenant les mêmes informations que la dite requête, la requête mise à jour suivante fonctionne très bien : UPDATE AMD INNER JOIN Tbl_DernierStatut ON AMD.RefOpe = Tbl_DernierStatut.RefOpe SET AMD.DernierStatut = [Tbl_DernierStatut] .[Statutconf];