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

Requete Maj Ok, mais qu'est ce qui est mis à jour ?

11 réponses
Avatar
f
Bonjour à tous,

Je sais faire une mise à jour à partire d'une source raffraichie de donnée
et une cible de la façon suivante :

"UPDATE DISTINCTROW Cible RIGHT JOIN Source ON Cible.NumeClie =
Source.NumeClie SET Cible.NumeClie = [Source].[NumeClie], Cible.NomSociete =
[Source].[nomsociete], Cible.Adresse1 = [Source].[adresse1], Cible.CP =
[Source].[CP], Cible.Ville = [Source].[Ville], Cible.Tel = [Source].[tel],
Cible.Telecop = [Source].[telecop], Cible.Activite = [Source].[Activite],
Cible.Remise = [Source].[Remise], Cible.CodeRepres = [Source].[CodeRepres];"

Dans ce cas les champs sont bien mis à jour ce que je souhaite, mais
lesquels sont mis à jour ?

Y a t-il une astuce pas trop compliqué pour y arriver ?
A part copier le contenu de la table cible avant la mise à jour, faire la
mise à jour et vérifier en vba les champs un à un qui pourrait avoir changé,
je ne vois pas...
Bon à écrire en français je sais faire en vba ?

Voyez vous une solution plus simple, laquelle ?
Si vous ne voyez que cette solution pourriez vous me donner quelques
indications sur comment faire en Vba la vérification champs à champs ?

Merci de toute contribution.
Merci d'avoir lu jusque là.

We choose to go to the moon in this decade, and do the other things, not
because they are easy, but because they are hard...
JFK. (Pour le coeur... à l'ouvrage.)
____________________________________________________________________________
__________________________________
Je n’ai pas échoué, j’ai trouvé dix mille moyens qui ne fonctionnent pas.
Albert Einstein. (Ça rassure)

10 réponses

1 2
Avatar
3stone
Salut,

| Je sais faire une mise à jour à partire d'une source raffraichie de donnée
| et une cible de la façon suivante :
|
| "UPDATE DISTINCTROW Cible RIGHT JOIN Source ON Cible.NumeClie | Source.NumeClie SET Cible.NumeClie = [Source].[NumeClie], Cible.NomSociete | [Source].[nomsociete], Cible.Adresse1 = [Source].[adresse1], Cible.CP | [Source].[CP], Cible.Ville = [Source].[Ville], Cible.Tel = [Source].[tel],
| Cible.Telecop = [Source].[telecop], Cible.Activite = [Source].[Activite],
| Cible.Remise = [Source].[Remise], Cible.CodeRepres = [Source].[CodeRepres];"
|
| Dans ce cas les champs sont bien mis à jour ce que je souhaite, mais
| lesquels sont mis à jour ?
|

Et si, dans la table, tu ajoute un champ oui/non ou un champ date ?
qu'il te suffit "d'annuler" par la suite...


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
Avatar
f
Bonsoir à tous,
Bonsoir et merci à toi 3stone.

------------------------------
Et si, dans la table, tu ajoute un champ oui/non ou un champ date ?
qu'il te suffit "d'annuler" par la suite...
------------------------
J'avoue ne rien avoir compris car un champ sur un enregistrement pourrait éventuellement me dire que l'enregistrement a été modifié,
mais comment faire dans la requete Sql ?

Merci d'avoir lu jusque là.


"3stone" a écrit dans le message de news:3f7eb9f4$0$10697$
Salut,

| Je sais faire une mise à jour à partire d'une source raffraichie de donnée
| et une cible de la façon suivante :
|
| "UPDATE DISTINCTROW Cible RIGHT JOIN Source ON Cible.NumeClie > | Source.NumeClie SET Cible.NumeClie = [Source].[NumeClie], Cible.NomSociete > | [Source].[nomsociete], Cible.Adresse1 = [Source].[adresse1], Cible.CP > | [Source].[CP], Cible.Ville = [Source].[Ville], Cible.Tel = [Source].[tel],
| Cible.Telecop = [Source].[telecop], Cible.Activite = [Source].[Activite],
| Cible.Remise = [Source].[Remise], Cible.CodeRepres = [Source].[CodeRepres];"
|
| Dans ce cas les champs sont bien mis à jour ce que je souhaite, mais
| lesquels sont mis à jour ?
|

Et si, dans la table, tu ajoute un champ oui/non ou un champ date ?
qu'il te suffit "d'annuler" par la suite...


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------





Avatar
3stone
Salut fabrice gonon pas de message non desirable ;-))

"" a écrit:
|
| J'avoue ne rien avoir compris car un champ sur un enregistrement pourrait éventuellement me dire que l'enregistrement
a été modifié,
| mais comment faire dans la requete Sql ?
|
| > | "UPDATE DISTINCTROW Cible RIGHT JOIN Source ON Cible.NumeClie

Si tu ajoute dans ta table un champ boolean (oui/non)
du nom de "Modifier"...

et lors de ton "Update", tu ajoute:

[Modifier] = True

il sera simple de "regarder" après, avec une requête, QUI est true, non ?

Select ... From Cible Where Modifier = True;

Faire ce que tu veux, pour ensuite... tout remettre à False...

C'est parce que tu dis par SQL (une requête, quoi ;-)
car dans un formulaire, il suffit de mettre dans l'événement
"Avant mise à jour" [Modifier] = True pour *marquer*
l'enregistrement comme modifier...

Ou alors, j'ai raté un épisode ?


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
Avatar
f
Bonjour à tous,
Bonjour et merci à toi 3stone,

-------------------------
Le champ modifier ajouter [Modifier]=True
----------------------------
Oui je procède comme ça pour les requêtes ajout !!
Modifier = Now()...
J'y avais pas pensé pour mes requêtes mis à jour, merci !

Cela me fera une recherche moins importante dans le cadre de ma recherche des champs qui ont été mis à jour !
Par contre je ne vois pas d'alternative à la copie complète de ma table avant de procéder car si je n'ai pas la table telle quelle
était avant la mise à jour, comment faire pour savoir les champs qui ont été mis à jour ?!
Vu la taille de la table concernée ça va être lourd et long.
Mais j'en déduis de ta réponse qu'il n'y a pas d'autre solution...

----------------------
"dans un formulaire, il suffit de mettre "
---------------------
Oui, oui, mes donnée viennent d'une source de données externe et je veux pouvoir savoir quels sont les champs mis à jour avant peut
être accepter les mise à jour.


-------------------
"pas de message non desirable "
-----------------
Si ça avait pu m'éviter les ravages de Swen dans mes BAL !! ;-) ;-)

Merci encore.
Merci d'avoir lu jusque là.


"3stone" a écrit dans le message de news:3f7f258c$0$31744$
Salut fabrice gonon pas de message non desirable ;-))

"" a écrit:
|
| J'avoue ne rien avoir compris car un champ sur un enregistrement pourrait éventuellement me dire que l'enregistrement
a été modifié,
| mais comment faire dans la requete Sql ?
|
| > | "UPDATE DISTINCTROW Cible RIGHT JOIN Source ON Cible.NumeClie >

Si tu ajoute dans ta table un champ boolean (oui/non)
du nom de "Modifier"...

et lors de ton "Update", tu ajoute:

[Modifier] = True

il sera simple de "regarder" après, avec une requête, QUI est true, non ?

Select ... From Cible Where Modifier = True;

Faire ce que tu veux, pour ensuite... tout remettre à False...

C'est parce que tu dis par SQL (une requête, quoi ;-)
car dans un formulaire, il suffit de mettre dans l'événement
"Avant mise à jour" [Modifier] = True pour *marquer*
l'enregistrement comme modifier...

Ou alors, j'ai raté un épisode ?


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------





Avatar
3stone
Salut,

""
|
| Cela me fera une recherche moins importante dans le cadre de ma recherche des champs qui ont été mis à jour !
| Par contre je ne vois pas d'alternative à la copie complète de ma table avant de procéder car si je n'ai pas la table
telle quelle
| était avant la mise à jour, comment faire pour savoir les champs qui ont été mis à jour ?!

Si c'est tout l'historique des mise à jour que tu veux faire...

Je marquerais plutôt les enregistrements par un boolean,
copie par ajout de ceux-ci dans une table historique (avec ajout de la date/heure),
mise à zéro des drapeaux (boolean qui marque les enregistrements modifiés)

Nettement moins lourd que de copier automatiquement toute une table...



--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
Avatar
f
Bonsoir à tous,
Bonsoir à toi et merci 3stone,

----------------
"Si c'est tout l'historique des mise à jour que tu veux faire..."
--------------
Oui, oui on peut dire ça comme ça.

--------------
"Je marquerais plutôt les enregistrements par un boolean,"
--------------
Un champ par enregistrement ou un par champs ? Je pencherai pour un par champ... non ?

-----------------------
"copie par ajout de ceux-ci dans une table historique (avec ajout de la date/heure),"
----------------------
Et ça je ne vois pas la différence avec :
-------------------
"Nettement moins lourd que de copier automatiquement toute une table..."
-------------------

En un mot ce n'est pas bien clair pour moi.

Merci d'avoir lu jusque là.


"3stone" a écrit dans le message de news:3f802573$0$10737$
Salut,

""
|
| Cela me fera une recherche moins importante dans le cadre de ma recherche des champs qui ont été mis à jour !
| Par contre je ne vois pas d'alternative à la copie complète de ma table avant de procéder car si je n'ai pas la table
telle quelle
| était avant la mise à jour, comment faire pour savoir les champs qui ont été mis à jour ?!

Si c'est tout l'historique des mise à jour que tu veux faire...

Je marquerais plutôt les enregistrements par un boolean,
copie par ajout de ceux-ci dans une table historique (avec ajout de la date/heure),
mise à zéro des drapeaux (boolean qui marque les enregistrements modifiés)

Nettement moins lourd que de copier automatiquement toute une table...



--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------





Avatar
3stone
Salut,

""
| "Si c'est tout l'historique des mise à jour que tu veux faire..."
| --------------
| Oui, oui on peut dire ça comme ça.


Il faudrait peut-être situer le contexte...
Si de toute facon, c'est la majorité ou l'entierté des enregistrements qui sont mis à jour...
évidement, autant "sauver" toute la table...

Mais, si tu ne modifie que quelques enregistrements... autant n'ajouter que
ces quelques enregistrements à la table historique... non ?

Enfin, c'est toi qui sais le mieux... et tu choisis selon la circonstance.


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
Avatar
f
Bonjour à tous,
Bonjour et merci 3stone,

Ok, ok, je me suis mal fait comprendre
-------------------------------------
Mais, si tu ne modifie que quelques enregistrements...
c'est toi qui sais le mieux...
-----------------------------------
C'est ce que j'avais cru expliquer du début avec la requête en référence (fin du message).
Avec une telle requête on ne choisi pas, c'est sql qui dès qu'il rencontre une nécessité de mise à jour, il la fait sans nous
informé, ou j'ai raté quelque chose et c'était l'objet de ma question.


"UPDATE DISTINCTROW Cible RIGHT JOIN Source ON Cible.NumeClie Source.NumeClie SET Cible.NumeClie = [Source].[NumeClie], Cible.NomSociete [Source].[nomsociete], Cible.Adresse1 = [Source].[adresse1], Cible.CP [Source].[CP], Cible.Ville = [Source].[Ville], Cible.Tel = [Source].[tel],
Cible.Telecop = [Source].[telecop], Cible.Activite = [Source].[Activite],
Cible.Remise = [Source].[Remise], Cible.CodeRepres = [Source].[CodeRepres];"

Merci d'avoir lu jusque là.

"3stone" a écrit dans le message de news:3f808652$0$31731$
Salut,

""
| "Si c'est tout l'historique des mise à jour que tu veux faire..."
| --------------
| Oui, oui on peut dire ça comme ça.


Il faudrait peut-être situer le contexte...
Si de toute facon, c'est la majorité ou l'entierté des enregistrements qui sont mis à jour...
évidement, autant "sauver" toute la table...

Mais, si tu ne modifie que quelques enregistrements... autant n'ajouter que
ces quelques enregistrements à la table historique... non ?

Enfin, c'est toi qui sais le mieux... et tu choisis selon la circonstance.


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------





Avatar
3stone
Salut,

""
| Ok, ok, je me suis mal fait comprendre

Non non...

| Avec une telle requête on ne choisi pas, c'est sql qui dès qu'il rencontre une nécessité de mise à jour, il la fait
sans nous
| informé, ou j'ai raté quelque chose et c'était l'objet de ma question.
|
| "UPDATE DISTINCTROW Cible RIGHT JOIN Source ON Cible.NumeClie |

D'accord, tu ne "choisis" pas, mais au lieu de l'exécuter, tu passe
cette requête de la vue graphique... dans la grille (mode création QBE)
en mode "Feuille de données" et tu vois parfaitement le nombre et
les enregistrements qui seront modifiés lorsque tu l'exécutera !

Je pense avoir largement répondu à la question de ton objet.
Si tu pense que non, reformule ta question dans un nouveau fil...


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
Avatar
f
Bonsoir à tous,
Bonsoir et merci à toi 3stone,

----------------------
"Je pense avoir largement répondu à la question de ton objet."
----------------------
Oui, oui, vraiment merci de ta patience, je suis impressionné par les contributeurs.

Paradoxalement, les difficultés de communication sur les forums ont un charme particulier qui me fait découvrir la difficulté de la
"bonne volonté" à s'exprimer.

------------------
"Si tu pense que non, reformule ta question dans un nouveau fil..."
----------------
Cela fait longtemps que j'y pensais mais je ne voulais pas faire l'erreur inverse.

Merci encore.
Merci d'avoir lu jusque là.






"3stone" a écrit dans le message de news:3f814e77$0$24178$
Salut,

""
| Ok, ok, je me suis mal fait comprendre

Non non...

| Avec une telle requête on ne choisi pas, c'est sql qui dès qu'il rencontre une nécessité de mise à jour, il la fait
sans nous
| informé, ou j'ai raté quelque chose et c'était l'objet de ma question.
|
| "UPDATE DISTINCTROW Cible RIGHT JOIN Source ON Cible.NumeClie > |

D'accord, tu ne "choisis" pas, mais au lieu de l'exécuter, tu passe
cette requête de la vue graphique... dans la grille (mode création QBE)
en mode "Feuille de données" et tu vois parfaitement le nombre et
les enregistrements qui seront modifiés lorsque tu l'exécutera !

Je pense avoir largement répondu à la question de ton objet.
Si tu pense que non, reformule ta question dans un nouveau fil...


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------





1 2