Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Requête de mise à jour récalcitrante

10 réponses
Avatar
bruno
Bonjour à tous,
Cela fait un long moment que je bloque sur ce problème : j'essaie de mettre
à jour une table à partir d'une requête de mise à jour. Cette requête fait
elle même appel à une autre requête qui calcule une somme dans un
regroupement.

Le problème c'est qu'Accès refuse l'opération en me renvoyant le message :
"l'opération doit
utiliser une requête qui peut être mise à jour"

Si dans ma requête de mise à jour, je faisais appel à une table au lieu de
la requête qui calcule la somme, cela fonctionnerait.

Je ne comprends pas pourquoi il y a ce blocage. Y-a-t-il un moyen de
compléter ma table sans passer par une table intermédiaire que je ferais à
partir de ma requête1 ?

Merci d'avance pour vos idées et solutions, et par la même occasion
j'adresse à tous mes meilleurs voeux pour la nouvelle année.

10 réponses

Avatar
Pierre CFI [mvp]
bonjour
d'ici j'ai du mal à voir, mais çà sent la req qui se mord la queue. Remarque des queues aux req :o))
donc dans ton process, tu doit impliquer la table mise à jour

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"bruno" a écrit dans le message de news:41d69505$0$20258$
Bonjour à tous,
Cela fait un long moment que je bloque sur ce problème : j'essaie de mettre
à jour une table à partir d'une requête de mise à jour. Cette requête fait
elle même appel à une autre requête qui calcule une somme dans un
regroupement.

Le problème c'est qu'Accès refuse l'opération en me renvoyant le message :
"l'opération doit
utiliser une requête qui peut être mise à jour"

Si dans ma requête de mise à jour, je faisais appel à une table au lieu de
la requête qui calcule la somme, cela fonctionnerait.

Je ne comprends pas pourquoi il y a ce blocage. Y-a-t-il un moyen de
compléter ma table sans passer par une table intermédiaire que je ferais à
partir de ma requête1 ?

Merci d'avance pour vos idées et solutions, et par la même occasion
j'adresse à tous mes meilleurs voeux pour la nouvelle année.





Avatar
Sylvain Lafontaine
Peut-être qu'un exemple de code ne ferait pas de mal dans votre cas.

S. L.

"bruno" wrote in message
news:41d69505$0$20258$
Bonjour à tous,
Cela fait un long moment que je bloque sur ce problème : j'essaie de
mettre
à jour une table à partir d'une requête de mise à jour. Cette requête fait
elle même appel à une autre requête qui calcule une somme dans un
regroupement.

Le problème c'est qu'Accès refuse l'opération en me renvoyant le message :
"l'opération doit
utiliser une requête qui peut être mise à jour"

Si dans ma requête de mise à jour, je faisais appel à une table au lieu de
la requête qui calcule la somme, cela fonctionnerait.

Je ne comprends pas pourquoi il y a ce blocage. Y-a-t-il un moyen de
compléter ma table sans passer par une table intermédiaire que je ferais à
partir de ma requête1 ?

Merci d'avance pour vos idées et solutions, et par la même occasion
j'adresse à tous mes meilleurs voeux pour la nouvelle année.





Avatar
bruno
Voici le code de la requête qui provoque le blocage :
UPDATE NbreConnections INNER JOIN Noms ON NbreConnections.Nom = Noms.Nom SET
Noms.[Total Connexions] = [NbreConnections]![SommeDeNbre connexions];


Dans cet exemple, [NbreConnections] est une requête donc voici le code :
SELECT Connections.Nom, Sum(Connections.[Nbre connexions]) AS [SommeDeNbre
connexions]
FROM Connections
GROUP BY Connections.Nom;


"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news:
| Peut-être qu'un exemple de code ne ferait pas de mal dans votre cas.
|
| S. L.
|
| "bruno" wrote in message
| news:41d69505$0$20258$
| > Bonjour à tous,
| > Cela fait un long moment que je bloque sur ce problème : j'essaie de
| > mettre
| > à jour une table à partir d'une requête de mise à jour. Cette requête
fait
| > elle même appel à une autre requête qui calcule une somme dans un
| > regroupement.
| >
| > Le problème c'est qu'Accès refuse l'opération en me renvoyant le message
:
| > "l'opération doit
| > utiliser une requête qui peut être mise à jour"
| >
| > Si dans ma requête de mise à jour, je faisais appel à une table au lieu
de
| > la requête qui calcule la somme, cela fonctionnerait.
| >
| > Je ne comprends pas pourquoi il y a ce blocage. Y-a-t-il un moyen de
| > compléter ma table sans passer par une table intermédiaire que je ferais
à
| > partir de ma requête1 ?
| >
| > Merci d'avance pour vos idées et solutions, et par la même occasion
| > j'adresse à tous mes meilleurs voeux pour la nouvelle année.
| >
| >
| >
|
|
Avatar
Philippe T [MS]
Bonjour,

C'est normal, il est difficile de faire un UPDATE sur une requête SELECT !!!

Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"bruno" wrote in message
news:u$
Voici le code de la requête qui provoque le blocage :
UPDATE NbreConnections INNER JOIN Noms ON NbreConnections.Nom = Noms.Nom
SET

Noms.[Total Connexions] = [NbreConnections]![SommeDeNbre connexions];


Dans cet exemple, [NbreConnections] est une requête donc voici le code :
SELECT Connections.Nom, Sum(Connections.[Nbre connexions]) AS [SommeDeNbre
connexions]
FROM Connections
GROUP BY Connections.Nom;


"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news:
| Peut-être qu'un exemple de code ne ferait pas de mal dans votre cas.
|
| S. L.
|
| "bruno" wrote in message
| news:41d69505$0$20258$
| > Bonjour à tous,
| > Cela fait un long moment que je bloque sur ce problème : j'essaie de
| > mettre
| > à jour une table à partir d'une requête de mise à jour. Cette requête
fait
| > elle même appel à une autre requête qui calcule une somme dans un
| > regroupement.
| >
| > Le problème c'est qu'Accès refuse l'opération en me renvoyant le
message

:
| > "l'opération doit
| > utiliser une requête qui peut être mise à jour"
| >
| > Si dans ma requête de mise à jour, je faisais appel à une table au
lieu

de
| > la requête qui calcule la somme, cela fonctionnerait.
| >
| > Je ne comprends pas pourquoi il y a ce blocage. Y-a-t-il un moyen de
| > compléter ma table sans passer par une table intermédiaire que je
ferais

à
| > partir de ma requête1 ?
| >
| > Merci d'avance pour vos idées et solutions, et par la même occasion
| > j'adresse à tous mes meilleurs voeux pour la nouvelle année.
| >
| >
| >
|
|




Avatar
Pierre CFI [mvp]
Ils sont durs chez Ms, faire bosser un jour férié ! a moins que tu ne travailles QUE les jours fériés (comme 3stone mvp par pitié,
qui ne travaille que si sa femme le regarde)
bonne année aux bretons

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Philippe T [MS]" a écrit dans le message de news:
Bonjour,

C'est normal, il est difficile de faire un UPDATE sur une requête SELECT !!!

Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"bruno" wrote in message
news:u$
Voici le code de la requête qui provoque le blocage :
UPDATE NbreConnections INNER JOIN Noms ON NbreConnections.Nom = Noms.Nom
SET

Noms.[Total Connexions] = [NbreConnections]![SommeDeNbre connexions];


Dans cet exemple, [NbreConnections] est une requête donc voici le code :
SELECT Connections.Nom, Sum(Connections.[Nbre connexions]) AS [SommeDeNbre
connexions]
FROM Connections
GROUP BY Connections.Nom;


"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news:
| Peut-être qu'un exemple de code ne ferait pas de mal dans votre cas.
|
| S. L.
|
| "bruno" wrote in message
| news:41d69505$0$20258$
| > Bonjour à tous,
| > Cela fait un long moment que je bloque sur ce problème : j'essaie de
| > mettre
| > à jour une table à partir d'une requête de mise à jour. Cette requête
fait
| > elle même appel à une autre requête qui calcule une somme dans un
| > regroupement.
| >
| > Le problème c'est qu'Accès refuse l'opération en me renvoyant le
message

:
| > "l'opération doit
| > utiliser une requête qui peut être mise à jour"
| >
| > Si dans ma requête de mise à jour, je faisais appel à une table au
lieu

de
| > la requête qui calcule la somme, cela fonctionnerait.
| >
| > Je ne comprends pas pourquoi il y a ce blocage. Y-a-t-il un moyen de
| > compléter ma table sans passer par une table intermédiaire que je
ferais

à
| > partir de ma requête1 ?
| >
| > Merci d'avance pour vos idées et solutions, et par la même occasion
| > j'adresse à tous mes meilleurs voeux pour la nouvelle année.
| >
| >
| >
|
|








Avatar
Pierre CFI [mvp]
il est bon ce éric :o))

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Eric" a écrit dans le message de news:
Bonjour Bruno,

Tentes ca :

UPDATE Noms
SET [Total Connections] > DSUM("[Nbre Connexions]","Connections","Nom='" & Noms.Nom & "'")
;

où Connections est la table que tu utilises pour baser ta requête.

De plus , fais attention au fait qu'une fois tu écris connection et une
autre connexion

"bruno" écrivait
news:u$:

Voici le code de la requête qui provoque le blocage :
UPDATE NbreConnections INNER JOIN Noms ON NbreConnections.Nom > > Noms.Nom SET Noms.[Total Connexions] = [NbreConnections]![SommeDeNbre
connexions];


Dans cet exemple, [NbreConnections] est une requête donc voici le code
: SELECT Connections.Nom, Sum(Connections.[Nbre connexions]) AS
[SommeDeNbre connexions]
FROM Connections
GROUP BY Connections.Nom;


--

A+
Eric
Lien à suivre : http://users.skynet.be/mpfa/



Avatar
Eric
Bonjour Bruno,

Tentes ca :

UPDATE Noms
SET [Total Connections] DSUM("[Nbre Connexions]","Connections","Nom='" & Noms.Nom & "'")
;

où Connections est la table que tu utilises pour baser ta requête.

De plus , fais attention au fait qu'une fois tu écris connection et une
autre connexion

"bruno" écrivait
news:u$:

Voici le code de la requête qui provoque le blocage :
UPDATE NbreConnections INNER JOIN Noms ON NbreConnections.Nom > Noms.Nom SET Noms.[Total Connexions] = [NbreConnections]![SommeDeNbre
connexions];


Dans cet exemple, [NbreConnections] est une requête donc voici le code
: SELECT Connections.Nom, Sum(Connections.[Nbre connexions]) AS
[SommeDeNbre connexions]
FROM Connections
GROUP BY Connections.Nom;


--

A+
Eric
Lien à suivre : http://users.skynet.be/mpfa/

Avatar
Eric
"Pierre CFI [mvp]" écrivait

il est bon ce éric :o))

Merci Pierre et Bonne Année, il est encore temps de le faire

nomminativement.

J'allais critiquer la structure du SQL car il faisait une Update sur la
requête alors qu'il voulait mettre à jour le champs de la table du coté
droit de l'INNER JOIN. Du coup, m'est venue l'idée du SomDom car sa requête
est en regroupement.

C'est vrai qu'au sortir des bulles, on plane 8-))

--
A+
Eric
Lien à suivre : http://users.skynet.be/mpfa/

Avatar
bruno
Eric,
Je suis admiratif : tu as tout compris de mes requêtes, y compris le fait
que j'ai orthographié connection de 2 manières différentes. Ta solution
fonctionne parfaitement ;-))

Effectivement on n'a pas le droit de faire une requête de mise à jour en
utilisant une requête avec une fonction de regroupement et MS conseille de
faire le calcul directement dans la requête de mise à jour. Mais je dois
dire que je n'ai rien compris aux explications en ligne MS sur la fonction
DSUM. De plus quand il s'agit d'utiliser des quotes et des doubles quotes,
je ne sais plus rien faire : je n'y ai jamais rien compris (si tu as une
piste, je suis preneur).

Non seulement tu résouds mon problème mais je peux maintenant comprendre ces
fonctions de regroupement.
Je te remercie et remercie aussi Sylvain, Pierre et Philippe.

Amicalement


"Eric" a écrit dans le message de news:

| Bonjour Bruno,
|
| Tentes ca :
|
| UPDATE Noms
| SET [Total Connections] | DSUM("[Nbre Connexions]","Connections","Nom='" & Noms.Nom & "'")
| ;
|
| où Connections est la table que tu utilises pour baser ta requête.
|
| De plus , fais attention au fait qu'une fois tu écris connection et une
| autre connexion
|
| "bruno" écrivait
| news:u$:
|
| > Voici le code de la requête qui provoque le blocage :
| > UPDATE NbreConnections INNER JOIN Noms ON NbreConnections.Nom | > Noms.Nom SET Noms.[Total Connexions] = [NbreConnections]![SommeDeNbre
| > connexions];
| >
| >
| > Dans cet exemple, [NbreConnections] est une requête donc voici le code
| > : SELECT Connections.Nom, Sum(Connections.[Nbre connexions]) AS
| > [SommeDeNbre connexions]
| > FROM Connections
| > GROUP BY Connections.Nom;
| >
| >
| --
| A+
| Eric
| Lien à suivre : http://users.skynet.be/mpfa/
Avatar
Philippe T [MS]
Bonjour,

Non, je suis comme tous les intervenants sur le forum, lorsque je suis sur
le forum, je ne travail pas pour Ms : je le fais pour le sport (et en plus,
j'aime ça :-) ) !!!

Pratiquement toutes les personnes de MS qui interviennent ici le font
bénévollement et pas sur demande de Ms. Je pense pour ma part qu'il est
important de rester en contact avec la communautés des utilisateurs dont les
meilleurs interviennent souvent dans le cadre de ces forums. C'est à la fois
sympa d'aider dans la mesure de ses moyens mais surtout d'apprendre de ceux
qui ont été confrontés aux problèmes et qui se sont acharnés à les
résoudres.

Etant également d'origine bretonne
(http://gw.geneanet.org/index.php3?bÊncale), je souhaites également une
très bonne année 2005 aux Bretons ainsi qu'aux autres qui n'ont pas cette
chance !!! :-)

Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"Pierre CFI [mvp]" wrote in message
news:
Ils sont durs chez Ms, faire bosser un jour férié ! a moins que tu ne
travailles QUE les jours fériés (comme 3stone mvp par pitié,

qui ne travaille que si sa femme le regarde)
bonne année aux bretons

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Philippe T [MS]" a écrit dans le message
de news:

Bonjour,

C'est normal, il est difficile de faire un UPDATE sur une requête SELECT
!!!



Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"bruno" wrote in message
news:u$
Voici le code de la requête qui provoque le blocage :
UPDATE NbreConnections INNER JOIN Noms ON NbreConnections.Nom Noms.Nom
SET

Noms.[Total Connexions] = [NbreConnections]![SommeDeNbre connexions];


Dans cet exemple, [NbreConnections] est une requête donc voici le code
:



SELECT Connections.Nom, Sum(Connections.[Nbre connexions]) AS
[SommeDeNbre



connexions]
FROM Connections
GROUP BY Connections.Nom;


"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam
please)> a



écrit dans le message de news:




| Peut-être qu'un exemple de code ne ferait pas de mal dans votre cas.
|
| S. L.
|
| "bruno" wrote in message
| news:41d69505$0$20258$
| > Bonjour à tous,
| > Cela fait un long moment que je bloque sur ce problème : j'essaie
de



| > mettre
| > à jour une table à partir d'une requête de mise à jour. Cette
requête



fait
| > elle même appel à une autre requête qui calcule une somme dans un
| > regroupement.
| >
| > Le problème c'est qu'Accès refuse l'opération en me renvoyant le
message

:
| > "l'opération doit
| > utiliser une requête qui peut être mise à jour"
| >
| > Si dans ma requête de mise à jour, je faisais appel à une table au
lieu

de
| > la requête qui calcule la somme, cela fonctionnerait.
| >
| > Je ne comprends pas pourquoi il y a ce blocage. Y-a-t-il un moyen
de



| > compléter ma table sans passer par une table intermédiaire que je
ferais

à
| > partir de ma requête1 ?
| >
| > Merci d'avance pour vos idées et solutions, et par la même
occasion



| > j'adresse à tous mes meilleurs voeux pour la nouvelle année.
| >
| >
| >
|
|