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

Requête MAJ récalcitrante

9 réponses
Avatar
Francis
Bonjour à tous,

Me voici de retour sur ce forum, après qques mois d'absence.
Voici mon problème. Je veux actualiser le solde initial des comptes de
mon appli de gestion, après une purge des opérations d'une période
choisie (année 2007, par exemple). Mon nouveau solde initial est égal à
l'ancien solde_initial + somme_des_entrées - somme_des_sorties sur la
période considérée.
J'ai fait une requête qui me calcule ces sommes. Mon problème, c'est
lorque je fais la requête de MAJ pour actualiser mes soldes initiaux,
j'ai le message suivant: "L'opération doit utiliser une requête qui
peut être mise à jour", et je me fais jeter. Voici le SQL de ma
requête:

UPDATE [tbl comptes] INNER JOIN [rqt MAJ solde initial] ON [tbl
comptes].numéro = [rqt MAJ solde initial].code_compte SET [tbl
comptes].solde_initial = [tbl comptes]![solde_initial]+[rqt MAJ solde
initial]![solde_période];

L'un de vous, j'en suis sûr, me dira ce qui ne va pas dans ma façon de
faire,et je l'en remercie à l'avance.
@+

Francis

--
Francis
fhgc@wanadoudou.fr
LOI DE MOSES
C'est quand on ne regarde pas que le but est marqué.

9 réponses

Avatar
Michel__D
Bonjour,

Essaye comme ceci :

UPDATE [tbl comptes] AS T INNER JOIN [rqt MAJ solde initial] AS R
ON T.[numéro] = R.[code_compte]
SET T.[solde_initial] = T.[solde_initial] + R.[solde_période];


"Francis" a écrit dans le message de news:
Bonjour à tous,

Me voici de retour sur ce forum, après qques mois d'absence.
Voici mon problème. Je veux actualiser le solde initial des comptes de
mon appli de gestion, après une purge des opérations d'une période
choisie (année 2007, par exemple). Mon nouveau solde initial est égal à
l'ancien solde_initial + somme_des_entrées - somme_des_sorties sur la
période considérée.
J'ai fait une requête qui me calcule ces sommes. Mon problème, c'est
lorque je fais la requête de MAJ pour actualiser mes soldes initiaux,
j'ai le message suivant: "L'opération doit utiliser une requête qui
peut être mise à jour", et je me fais jeter. Voici le SQL de ma
requête:

UPDATE [tbl comptes] INNER JOIN [rqt MAJ solde initial] ON [tbl
comptes].numéro = [rqt MAJ solde initial].code_compte SET [tbl
comptes].solde_initial = [tbl comptes]![solde_initial]+[rqt MAJ solde
initial]![solde_période];

L'un de vous, j'en suis sûr, me dira ce qui ne va pas dans ma façon de
faire,et je l'en remercie à l'avance.
@+

Francis

--
Francis

LOI DE MOSES
C'est quand on ne regarde pas que le but est marqué.




Avatar
Francis
Bonjour Michel,

Merci pour ton tuyau mais, malheureusement, il ne change rien.
Si ça peut t'être utile, on me dit aussi que c'est l'erreur 3073.
Autre précision, mon appli est sous Access2003.
@+



Dans son message précédent, Michel__D a écrit :
Bonjour,

Essaye comme ceci :

UPDATE [tbl comptes] AS T INNER JOIN [rqt MAJ solde initial] AS R
ON T.[numéro] = R.[code_compte]
SET T.[solde_initial] = T.[solde_initial] + R.[solde_période];


"Francis" a écrit dans le message de
news:
Bonjour à tous,

Me voici de retour sur ce forum, après qques mois d'absence.
Voici mon problème. Je veux actualiser le solde initial des comptes de
mon appli de gestion, après une purge des opérations d'une période
choisie (année 2007, par exemple). Mon nouveau solde initial est égal à
l'ancien solde_initial + somme_des_entrées - somme_des_sorties sur la
période considérée.
J'ai fait une requête qui me calcule ces sommes. Mon problème, c'est
lorque je fais la requête de MAJ pour actualiser mes soldes initiaux,
j'ai le message suivant: "L'opération doit utiliser une requête qui
peut être mise à jour", et je me fais jeter. Voici le SQL de ma
requête:

UPDATE [tbl comptes] INNER JOIN [rqt MAJ solde initial] ON [tbl
comptes].numéro = [rqt MAJ solde initial].code_compte SET [tbl
comptes].solde_initial = [tbl comptes]![solde_initial]+[rqt MAJ solde
initial]![solde_période];

L'un de vous, j'en suis sûr, me dira ce qui ne va pas dans ma façon de
faire,et je l'en remercie à l'avance.
@+

Francis

--
Francis

LOI DE MOSES
C'est quand on ne regarde pas que le but est marqué.





--
Francis

LOI DE LA GRAVITE SÉLECTIVE
En tout point de la surface du globe, toute biscotte tombera côté
beurre.
Avatar
Michel__D
Bonjour,

Autant pour moi j'ai testé et cela marche avec 2 tables différentes, mais
pas sur la même table, donc il faut créer une table temporaire à la place
de ta requête [rqt MAJ solde initial].



"Francis" a écrit dans le message de news:
Bonjour à tous,

Me voici de retour sur ce forum, après qques mois d'absence.
Voici mon problème. Je veux actualiser le solde initial des comptes de
mon appli de gestion, après une purge des opérations d'une période
choisie (année 2007, par exemple). Mon nouveau solde initial est égal à
l'ancien solde_initial + somme_des_entrées - somme_des_sorties sur la
période considérée.
J'ai fait une requête qui me calcule ces sommes. Mon problème, c'est
lorque je fais la requête de MAJ pour actualiser mes soldes initiaux,
j'ai le message suivant: "L'opération doit utiliser une requête qui
peut être mise à jour", et je me fais jeter. Voici le SQL de ma
requête:

UPDATE [tbl comptes] INNER JOIN [rqt MAJ solde initial] ON [tbl
comptes].numéro = [rqt MAJ solde initial].code_compte SET [tbl
comptes].solde_initial = [tbl comptes]![solde_initial]+[rqt MAJ solde
initial]![solde_période];

L'un de vous, j'en suis sûr, me dira ce qui ne va pas dans ma façon de
faire,et je l'en remercie à l'avance.
@+

Francis

--
Francis

LOI DE MOSES
C'est quand on ne regarde pas que le but est marqué.




Avatar
Francis
Re,

Il est vrai que, dans ce cas, ça marche bien mais je sèche pour
transformer ma requête en table de façon simple càd sans passer par des
exports/imports besogneux.
Pourrais-tu aussi me donner le code VBA pour créer cette table
temporaire à la place de la requête.
Merci d'avance



Michel__D avait écrit le 17/02/2009 :
Bonjour,

Autant pour moi j'ai testé et cela marche avec 2 tables différentes, mais
pas sur la même table, donc il faut créer une table temporaire à la place
de ta requête [rqt MAJ solde initial].



"Francis" a écrit dans le message de
news:
Bonjour à tous,

Me voici de retour sur ce forum, après qques mois d'absence.
Voici mon problème. Je veux actualiser le solde initial des comptes de
mon appli de gestion, après une purge des opérations d'une période
choisie (année 2007, par exemple). Mon nouveau solde initial est égal à
l'ancien solde_initial + somme_des_entrées - somme_des_sorties sur la
période considérée.
J'ai fait une requête qui me calcule ces sommes. Mon problème, c'est
lorque je fais la requête de MAJ pour actualiser mes soldes initiaux,
j'ai le message suivant: "L'opération doit utiliser une requête qui
peut être mise à jour", et je me fais jeter. Voici le SQL de ma
requête:

UPDATE [tbl comptes] INNER JOIN [rqt MAJ solde initial] ON [tbl
comptes].numéro = [rqt MAJ solde initial].code_compte SET [tbl
comptes].solde_initial = [tbl comptes]![solde_initial]+[rqt MAJ solde
initial]![solde_période];

L'un de vous, j'en suis sûr, me dira ce qui ne va pas dans ma façon de
faire,et je l'en remercie à l'avance.
@+

Francis

--
Francis

LOI DE MOSES
C'est quand on ne regarde pas que le but est marqué.





--
Francis

CINQUIÈME LOI DE YOUNG
Se tromper est humain, mais pour vraiment mettre le bordel, il faut y
ajouter un ordinateur.
Avatar
Francis
Re-Re,

J'ai vu comment utiliser les requêtes de création de tables, que je
n'avais pas encore pratiquées, et ça marche bien.
Reste quand même à mettre tout cela sous formede code, et là j'ai
vraiment besoin d'un coup de mains.
@+
Francis

Il se trouve que Francis a formulé :
Re,

Il est vrai que, dans ce cas, ça marche bien mais je sèche pour transformer
ma requête en table de façon simple càd sans passer par des exports/imports
besogneux.
Pourrais-tu aussi me donner le code VBA pour créer cette table temporaire à
la place de la requête.
Merci d'avance



Michel__D avait écrit le 17/02/2009 :
Bonjour,

Autant pour moi j'ai testé et cela marche avec 2 tables différentes, mais
pas sur la même table, donc il faut créer une table temporaire à la place
de ta requête [rqt MAJ solde initial].



"Francis" a écrit dans le message de
news:
Bonjour à tous,

Me voici de retour sur ce forum, après qques mois d'absence.
Voici mon problème. Je veux actualiser le solde initial des comptes de
mon appli de gestion, après une purge des opérations d'une période
choisie (année 2007, par exemple). Mon nouveau solde initial est égal à
l'ancien solde_initial + somme_des_entrées - somme_des_sorties sur la
période considérée.
J'ai fait une requête qui me calcule ces sommes. Mon problème, c'est
lorque je fais la requête de MAJ pour actualiser mes soldes initiaux,
j'ai le message suivant: "L'opération doit utiliser une requête qui
peut être mise à jour", et je me fais jeter. Voici le SQL de ma
requête:

UPDATE [tbl comptes] INNER JOIN [rqt MAJ solde initial] ON [tbl
comptes].numéro = [rqt MAJ solde initial].code_compte SET [tbl
comptes].solde_initial = [tbl comptes]![solde_initial]+[rqt MAJ solde
initial]![solde_période];

L'un de vous, j'en suis sûr, me dira ce qui ne va pas dans ma façon de
faire,et je l'en remercie à l'avance.
@+

Francis

-- Francis

LOI DE MOSES
C'est quand on ne regarde pas que le but est marqué.







--
Francis

OBSERVATION DE ZENONE
L'autre file va toujours plus vite.
VARIATION DE O'BRIEN SUR L'OBSERVATION DE ZENONE
Si tu changes de file, celle que tu viens de quitter deviendra alors
la plus rapide.
Avatar
Michel__D
Bonjour,

Francis a écrit :
Re-Re,

J'ai vu comment utiliser les requêtes de création de tables, que je
n'avais pas encore pratiquées, et ça marche bien.
Reste quand même à mettre tout cela sous formede code, et là j'ai
vraiment besoin d'un coup de mains.
@+
Francis



Regarde l'aide sur la méthode RunSQL de l'objet DoCmd ou regarde ici.

http://access.developpez.com/faq/?page=SQL
Avatar
Francis
Michel__D a émis l'idée suivante :
Bonjour,

Francis a écrit :
Re-Re,

J'ai vu comment utiliser les requêtes de création de tables, que je n'avais
pas encore pratiquées, et ça marche bien.
Reste quand même à mettre tout cela sous formede code, et là j'ai vraiment
besoin d'un coup de mains.
@+
Francis



Regarde l'aide sur la méthode RunSQL de l'objet DoCmd ou regarde ici.

http://access.developpez.com/faq/?page=SQL



Bon, je m'en suis sorti avec des requêtes créées de façon
conventionnelles et des "DoCmd.OpenQuery".
Par contre avec des requêtes SQL de la forme strSQL = "SELECT ou
UPDATE..." et des DoCmd.RunSQL StrSql, je ne parviens pas à aller
jusqu'au bout de la démarche.
Le résultat est atteint, mais la forme souhaitée n'y est pas!

--
Francis

PRINCIPE DE RUBY
La probabilité de rencontrer une personne de ta connaissance augmente
quand tu es avec quelqu'un avec qui tu ne veux pas être vu.
Avatar
Michel__D
Bonjour,

Francis a écrit :
Michel__D a émis l'idée suivante :
Bonjour,

Francis a écrit :
Re-Re,

J'ai vu comment utiliser les requêtes de création de tables, que je
n'avais pas encore pratiquées, et ça marche bien.
Reste quand même à mettre tout cela sous formede code, et là j'ai
vraiment besoin d'un coup de mains.
@+
Francis



Regarde l'aide sur la méthode RunSQL de l'objet DoCmd ou regarde ici.

http://access.developpez.com/faq/?page=SQL



Bon, je m'en suis sorti avec des requêtes créées de façon
conventionnelles et des "DoCmd.OpenQuery".
Par contre avec des requêtes SQL de la forme strSQL = "SELECT ou
UPDATE..." et des DoCmd.RunSQL StrSql, je ne parviens pas à aller
jusqu'au bout de la démarche.
Le résultat est atteint, mais la forme souhaitée n'y est pas!



Le principal est d'obtenir ce que l'on souhaiter avoir, mais l'aide
sur DoCmd.RunSQL devrait répondre à certaines questions (fonctionne
pour UPDATE ... et ne fonctionne pas pour SELECT ...).
Avatar
Francis
Michel__D a utilisé son clavier pour écrire :
Bonjour,

Francis a écrit :
Michel__D a émis l'idée suivante :
Bonjour,

Francis a écrit :
Re-Re,

J'ai vu comment utiliser les requêtes de création de tables, que je
n'avais pas encore pratiquées, et ça marche bien.
Reste quand même à mettre tout cela sous formede code, et là j'ai
vraiment besoin d'un coup de mains.
@+
Francis



Regarde l'aide sur la méthode RunSQL de l'objet DoCmd ou regarde ici.

http://access.developpez.com/faq/?page=SQL



Bon, je m'en suis sorti avec des requêtes créées de façon conventionnelles
et des "DoCmd.OpenQuery".
Par contre avec des requêtes SQL de la forme strSQL = "SELECT ou UPDATE..."
et des DoCmd.RunSQL StrSql, je ne parviens pas à aller jusqu'au bout de la
démarche.
Le résultat est atteint, mais la forme souhaitée n'y est pas!



Le principal est d'obtenir ce que l'on souhaiter avoir, mais l'aide
sur DoCmd.RunSQL devrait répondre à certaines questions (fonctionne
pour UPDATE ... et ne fonctionne pas pour SELECT ...).



Eh bien, j'y suis parvenu quand même, à la fin du compte. Suffit juste
de ne pas se mélanger les pinceaux.
Et merci pour le coup de mains!

--
Francis

PRINCIPE DE RUBY
La probabilité de rencontrer une personne de ta connaissance augmente
quand tu es avec quelqu'un avec qui tu ne veux pas être vu.