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

Remplacement d'une valeur dans plusieurs tables

8 réponses
Avatar
jcl
Bonjour,
Je suis confronté souvent au pb de devoir dans plusieurs tables, remplacer
une valeur par une autre. Il me faut ouvrir chaque table et faire la manip à
la main.
Existerait il une procédure automatisée permettant de le faire, à partir
d'un formulaire ou d'une boite de dialogue ?
Je précise que je ne sais pas à l'avance dans combien de tables il me faut
faire le changement (plus de 10 dans ma base)
Merci à celui qui sait faire plus simplement et surement que moi

8 réponses

Avatar
Crevette
Salut,

alors, si tu crées autant de requete Mise à jour que de table suseptible de
changer.

Ensuite tu te fais un formulaire avec des case à cocher crrespondant aux
requtes donc au tables et en rentrant la valeur du parametre à changer .

Bonne continuation, n'ésite pas si tu veux plus de renseignement.


"jcl" a écrit dans le message de
news:bfdq9d$lvs$
Bonjour,
Je suis confronté souvent au pb de devoir dans plusieurs tables, remplacer
une valeur par une autre. Il me faut ouvrir chaque table et faire la manip
à

la main.
Existerait il une procédure automatisée permettant de le faire, à partir
d'un formulaire ou d'une boite de dialogue ?
Je précise que je ne sais pas à l'avance dans combien de tables il me faut
faire le changement (plus de 10 dans ma base)
Merci à celui qui sait faire plus simplement et surement que moi




Avatar
3stone
Salut,

jcl
Je suis surpris que parmi tous les cracks d'Access, personne ne connaiise
une manip en boucle sur toutes les tables pour faire ce remplacement
Il doit bien y avoir une astuce du genre for, next... qui permettrait de
modifier une valeur erronée
Merci de me dire si je me trompe et si ce genre de boucle est impossible
J'ai déjà la piste des requetes à cocher dans un formulaire, mais je voyais
qq chose de plus technique
Affaire à suivre




Pour boucler sur les tables, voir les collections TableDefs...

Mais, tu n'est pas rendu... lire les champs, répérer l'enregistrement
en trop, l'original... mettre à jour... tout cela de facon automatique
et sans *aucune* erreur...

Mais, j'ai lu ton message...

Il s'agit d'une erreur que je fais de façon peu fréquente et qui
consiste à saisir un salarié déjà présent dans la table "salariés" (il
peut s'agir d'une jeune femme qui s'est mariée).
[...]


Moi, je préfèrerais tout mettre en oeuvre pour ne pas saisir des doublons.
Vérifier un numéro de carte d'identité, date de naissance et autre...

Si, on trouve des concordances, les afficher en demandant s'il faut
continuer / terminer la saisie...

De plus, une jeune (ou moins jeune ;) femme qui se marie garde son
nom (de jeune fille) dans les administrations et / ou entreprises.
En tout cas, cela ne devrait pas être une raison pour la ré-encoder ;-)

Juste un avis...


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------

Avatar
André AVONS
Salut
Pourquoi ne fais tu pas ce que l'on te dit de faire
Si ca te pose un probleme poses la question
Chez toi le plus simple C'est de faire des relations de 1 a plusieurs avec
integrite referencielle et mise a jour en cascade
reponse deja donnee comme dit raymond reste dans le fil

--
@+
André

Quelques liens avec des exemples, des utilitaires et des compléments pour
Access
http://access.seneque.free.fr/
http://www.self-access.com/
http://www.mvps.org/accessfr/
http://mypage.bluewin.ch/w.stucki/
http://access.jessy.free.fr/
http://www.anor.fr.st
"jcl" a écrit dans le message de
news:bfk974$5c3$
Je suis surpris que parmi tous les cracks d'Access, personne ne connaiise
une manip en boucle sur toutes les tables pour faire ce remplacement
Il doit bien y avoir une astuce du genre for, next... qui permettrait de
modifier une valeur erronée
Merci de me dire si je me trompe et si ce genre de boucle est impossible
J'ai déjà la piste des requetes à cocher dans un formulaire, mais je
voyais

qq chose de plus technique
Affaire à suivre

jcl
"jcl" a écrit dans le message de news:
bfdq9d$lvs$
Bonjour,
Je suis confronté souvent au pb de devoir dans plusieurs tables,
remplacer


une valeur par une autre. Il me faut ouvrir chaque table et faire la
manip


à
la main.
Existerait il une procédure automatisée permettant de le faire, à partir
d'un formulaire ou d'une boite de dialogue ?
Je précise que je ne sais pas à l'avance dans combien de tables il me
faut


faire le changement (plus de 10 dans ma base)
Merci à celui qui sait faire plus simplement et surement que moi








Avatar
jcl
Je m'explique, mais ne souhaite pas créer de polémiques.
J'ai une application médicale (de médecine du travail) qui contient plus de
10 tables liées entre elles évidemment
Je crée un salarié et il lui est attribué un numéro par "numauto" type
compteur. Bien sur ce salarié a NOM, PRENOM, Date de Naisssance....Une fois
crée je me sers de ce numéro pour l'attribuer aux autres tables (pathologie,
risque ou nuisances, examens complémentaires, audiométrie, vaccins, etc...)
Chaque consultation est unique pour un meme salarié et une meme date et en
principe les autres tables sont liées de meme avec le champ
Numéro_de_salarié (champ attribué une fois pour toute) et la date de visite
(ce qui interdit de saisir 2 visites identiques le meme jour pour le meme
salarié ou de lui attribuer le meme examen 2 fois dans la meme journée)
Mon pb lorsque JE FAIS l'erreur est que je crée un salarié qui existe déjà
et que je lui attribue un numéro auto, que je lui fais une visite et des
examens... et que toutes ces données doivent repartir sur le numéro original
du salarié (donc changement de ce seul et unique champ dans chaque table où
l'erreur s'est glissée) pour tout réaffecter au salarié puis supprimer le
salarié indument créee puisque plus aucune table ne pointe vers lui.
Voilà mon pb
Je sais que les salariées gardent leur nom de jeune fille mais
malheureusement chez nous elles sont connues et renseignées par leur nom
marital dans les entreprises
Mais si c'est trop compliqué je le comprends
Dans ma petite tete je "voyais" une boucle facile sur ce champ de table à
remplacer puis une suppression du "faux-nouveau salarié"
Merci de m'avoir lu jusqu'au bout
J'accepte les engueulades


"Anor" a écrit dans le message de news:
3f1db7c2$0$15533$
Bonjour,


| Je suis surpris que parmi tous les cracks d'Access, personne ne
| connaiise une manip en boucle sur toutes les tables pour faire ce
| remplacement
| Il doit bien y avoir une astuce du genre for, next... qui permettrait
| de modifier une valeur erronée
| Merci de me dire si je me trompe et si ce genre de boucle est
| impossible J'ai déjà la piste des requetes à cocher dans un
| formulaire, mais je voyais qq chose de plus technique
| Affaire à suivre
|
| jcl

oui mais avant de remplacer 2 par 3 dans toute les champs de toutes les
tables, tu as peut-être

quelques restrictions ?

Genre nom du champ (à quoi bon balayer tous les champs si un champ date
n'a pas à être modifié

?)

Si déjà tu avais le nom des champs à balayer, ça irait un peu plus vite.
Sinon, tu peux t'amuser à balayer toutes les valeurs contenues dans tous
les champs de toutes

les tables,
y compris les tables système ...mais tu prends un gros risque.
Comprends bien qu'on ne donne pas un bout de code dangereux sans prendre
des précautions

et voir le gars revenir pleurer que notre code lui a bousillé son appli
révolutionnaire !!


Donc tu vuex lancer ce code depuis où ?
la base elle-même ou une base externe
(ça permettrait de ne balayer que les tables attachées, c'est un bon début
!)

type de champ : tous ?
etc...
Plus tu restreindras les occurences, moins la routine ramera ...

--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - Les tablettes d'Anor
www.anor.fr.st
----------------------------------------------




Avatar
Raymond
Je savais bien que le travail était une maladie, la preuve, il y a une
médecine du travail.

Ton problème rejoint exactement le problème général des ressources humaines
dans toutes les entreprises. Ayant été chef du personnel dans ma jeunesse,
je te confirme que la seule clé fiable est le numéro de SS, avec sa clé.
Tant que ta clé primaire et toutes les relations entre tes tables ne sont
pas basées sur le N° SS, tu ne pourras pas travailler efficacement et ta
base ne fonctionnera pas correctement; Pour changer des numéroauto en N°SS
ne doit pas être très difficile avec une requête.
C'était une idée.
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"jcl" a écrit dans le message de
news:
Je m'explique, mais ne souhaite pas créer de polémiques.
J'ai une application médicale (de médecine du travail) qui contient plus
de

10 tables liées entre elles évidemment
Je crée un salarié et il lui est attribué un numéro par "numauto" type
compteur. Bien sur ce salarié a NOM, PRENOM, Date de Naisssance....Une
fois

crée je me sers de ce numéro pour l'attribuer aux autres tables
(pathologie,

risque ou nuisances, examens complémentaires, audiométrie, vaccins,
etc...)

Chaque consultation est unique pour un meme salarié et une meme date et en
principe les autres tables sont liées de meme avec le champ
Numéro_de_salarié (champ attribué une fois pour toute) et la date de
visite

(ce qui interdit de saisir 2 visites identiques le meme jour pour le meme
salarié ou de lui attribuer le meme examen 2 fois dans la meme journée)
Mon pb lorsque JE FAIS l'erreur est que je crée un salarié qui existe déjà
et que je lui attribue un numéro auto, que je lui fais une visite et des
examens... et que toutes ces données doivent repartir sur le numéro
original

du salarié (donc changement de ce seul et unique champ dans chaque table


l'erreur s'est glissée) pour tout réaffecter au salarié puis supprimer le
salarié indument créee puisque plus aucune table ne pointe vers lui.
Voilà mon pb
Je sais que les salariées gardent leur nom de jeune fille mais
malheureusement chez nous elles sont connues et renseignées par leur nom
marital dans les entreprises
Mais si c'est trop compliqué je le comprends
Dans ma petite tete je "voyais" une boucle facile sur ce champ de table à
remplacer puis une suppression du "faux-nouveau salarié"
Merci de m'avoir lu jusqu'au bout
J'accepte les engueulades


"Anor" a écrit dans le message de news:
3f1db7c2$0$15533$
Bonjour,


| Je suis surpris que parmi tous les cracks d'Access, personne ne
| connaiise une manip en boucle sur toutes les tables pour faire ce
| remplacement
| Il doit bien y avoir une astuce du genre for, next... qui permettrait
| de modifier une valeur erronée
| Merci de me dire si je me trompe et si ce genre de boucle est
| impossible J'ai déjà la piste des requetes à cocher dans un
| formulaire, mais je voyais qq chose de plus technique
| Affaire à suivre
|
| jcl

oui mais avant de remplacer 2 par 3 dans toute les champs de toutes les
tables, tu as peut-être

quelques restrictions ?

Genre nom du champ (à quoi bon balayer tous les champs si un champ date
n'a pas à être modifié

?)

Si déjà tu avais le nom des champs à balayer, ça irait un peu plus vite.
Sinon, tu peux t'amuser à balayer toutes les valeurs contenues dans tous
les champs de toutes

les tables,
y compris les tables système ...mais tu prends un gros risque.
Comprends bien qu'on ne donne pas un bout de code dangereux sans prendre
des précautions

et voir le gars revenir pleurer que notre code lui a bousillé son appli
révolutionnaire !!


Donc tu vuex lancer ce code depuis où ?
la base elle-même ou une base externe
(ça permettrait de ne balayer que les tables attachées, c'est un bon
début


!)
type de champ : tous ?
etc...
Plus tu restreindras les occurences, moins la routine ramera ...

--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - Les tablettes d'Anor
www.anor.fr.st
----------------------------------------------








Avatar
jcl
Oui bien sur, je suis d'accord avec toi mais LE LEGISLATEUR dans sa grande
bonté interdit l'utilisation du numero Insee (sécu) pour les dossiers (sans
doute parcequ'on peut y trouver des renseignements sur l'origine de la
personne et faire des discriminations à caractere racial !) Bref INTERDIT
Donc (mais rarement) je me trompe et saisis un salarié de trop qui n'en est
pas un et voila pourquoi j'embete tout le monde sur ce forum
Mais d'un autre coté ça fait avancer le scmilblick depuis la mort de Guy Lux
Merci de ton aide

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

Je savais bien que le travail était une maladie, la preuve, il y a une
médecine du travail.

Ton problème rejoint exactement le problème général des ressources
humaines

dans toutes les entreprises. Ayant été chef du personnel dans ma jeunesse,
je te confirme que la seule clé fiable est le numéro de SS, avec sa clé.
Tant que ta clé primaire et toutes les relations entre tes tables ne sont
pas basées sur le N° SS, tu ne pourras pas travailler efficacement et ta
base ne fonctionnera pas correctement; Pour changer des numéroauto en N°SS
ne doit pas être très difficile avec une requête.
C'était une idée.
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"jcl" a écrit dans le message de
news:
Je m'explique, mais ne souhaite pas créer de polémiques.
J'ai une application médicale (de médecine du travail) qui contient plus
de

10 tables liées entre elles évidemment
Je crée un salarié et il lui est attribué un numéro par "numauto" type
compteur. Bien sur ce salarié a NOM, PRENOM, Date de Naisssance....Une
fois

crée je me sers de ce numéro pour l'attribuer aux autres tables
(pathologie,

risque ou nuisances, examens complémentaires, audiométrie, vaccins,
etc...)

Chaque consultation est unique pour un meme salarié et une meme date et
en


principe les autres tables sont liées de meme avec le champ
Numéro_de_salarié (champ attribué une fois pour toute) et la date de
visite

(ce qui interdit de saisir 2 visites identiques le meme jour pour le
meme


salarié ou de lui attribuer le meme examen 2 fois dans la meme journée)
Mon pb lorsque JE FAIS l'erreur est que je crée un salarié qui existe
déjà


et que je lui attribue un numéro auto, que je lui fais une visite et des
examens... et que toutes ces données doivent repartir sur le numéro
original

du salarié (donc changement de ce seul et unique champ dans chaque table


l'erreur s'est glissée) pour tout réaffecter au salarié puis supprimer
le


salarié indument créee puisque plus aucune table ne pointe vers lui.
Voilà mon pb
Je sais que les salariées gardent leur nom de jeune fille mais
malheureusement chez nous elles sont connues et renseignées par leur nom
marital dans les entreprises
Mais si c'est trop compliqué je le comprends
Dans ma petite tete je "voyais" une boucle facile sur ce champ de table
à


remplacer puis une suppression du "faux-nouveau salarié"
Merci de m'avoir lu jusqu'au bout
J'accepte les engueulades


"Anor" a écrit dans le message de news:
3f1db7c2$0$15533$
Bonjour,


| Je suis surpris que parmi tous les cracks d'Access, personne ne
| connaiise une manip en boucle sur toutes les tables pour faire ce
| remplacement
| Il doit bien y avoir une astuce du genre for, next... qui
permettrait



| de modifier une valeur erronée
| Merci de me dire si je me trompe et si ce genre de boucle est
| impossible J'ai déjà la piste des requetes à cocher dans un
| formulaire, mais je voyais qq chose de plus technique
| Affaire à suivre
|
| jcl

oui mais avant de remplacer 2 par 3 dans toute les champs de toutes
les



tables, tu as peut-être
quelques restrictions ?

Genre nom du champ (à quoi bon balayer tous les champs si un champ
date



n'a pas à être modifié
?)

Si déjà tu avais le nom des champs à balayer, ça irait un peu plus
vite.



Sinon, tu peux t'amuser à balayer toutes les valeurs contenues dans
tous



les champs de toutes
les tables,
y compris les tables système ...mais tu prends un gros risque.
Comprends bien qu'on ne donne pas un bout de code dangereux sans
prendre



des précautions
et voir le gars revenir pleurer que notre code lui a bousillé son
appli



révolutionnaire !!

Donc tu vuex lancer ce code depuis où ?
la base elle-même ou une base externe
(ça permettrait de ne balayer que les tables attachées, c'est un bon
début


!)
type de champ : tous ?
etc...
Plus tu restreindras les occurences, moins la routine ramera ...

--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - Les tablettes d'Anor
www.anor.fr.st
----------------------------------------------











Avatar
jcl
Merci d'avance
Le champ en erreur s'appelle dans chaque table du meme nom "N° de code" ,
qui est donc le clone du "N° de code" crée par NumAuto lorsque je saisis le
salarié la première fois
Il me faut donc remplacer éventuellement 10234 par 9528 dans toutes les
tables ou 10234 a été créee inutilement puis de supprimer dans la table
salarié la fiche 10234 devenu inutile
Cela réaffectera toutes les tables avec la visite du jour sur le salarié
9528 et permettra dans le formulaire de surveillance de voir tout ce qui se
rapporte à ce salarié (visites successives, risques auxquels il est exposé,
pathologies par appareil, vaccinations, restrictions d'aptitude)
Merci


"Anor" a écrit dans le message de news:
3f1ec47d$0$28652$
Bonjour jcl,

il n'y a pas de polémique ;-) seules quelques incompréhensions ...

à l'origine, ce que tu demandais n'était pas compliqué à faire en code,
simplement dangereux pour l'intégrité de tes données.

Mais avec ce que tu viens de rajouter, on voit que tu veux mettre à jour
des

clés externes / clés primaires si j'ai bien compris.

ce qui sous entend qu'il faut en plus mettre à jour les données dans les
tables en créant la clé

primaire en premier,
(mais il existe probablement) puis en modifiant les clés externes en
remontant les relations

depuis le côté plusieurs vers le côté un.

Donc j'ai presque fini le code qui t'intéresse (pas eu le temps de le
finaliser hier soir),

mais pour le publier et éviter de modifier des numéros entier-long
dans les tables système, je voudrais juste rajouter un petit critère tout
petit pour cibler les

tables ou les noms de champs.

Genre : Tables "Tbl*" et Champs "IDSalarie" par exemple ou champs
"salariés".

ça peut le faire ?

--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - Les tablettes d'Anor
www.anor.fr.st
----------------------------------------------


| Je m'explique, mais ne souhaite pas créer de polémiques.
| J'ai une application médicale (de médecine du travail) qui contient
| plus de 10 tables liées entre elles évidemment
| Je crée un salarié et il lui est attribué un numéro par "numauto" type
| compteur. Bien sur ce salarié a NOM, PRENOM, Date de
| Naisssance....Une fois crée je me sers de ce numéro pour l'attribuer
| aux autres tables (pathologie, risque ou nuisances, examens
| complémentaires, audiométrie, vaccins, etc...) Chaque consultation
| est unique pour un meme salarié et une meme date et en principe les
| autres tables sont liées de meme avec le champ Numéro_de_salarié
| (champ attribué une fois pour toute) et la date de visite (ce qui
| interdit de saisir 2 visites identiques le meme jour pour le meme
| salarié ou de lui attribuer le meme examen 2 fois dans la meme
| journée)
| Mon pb lorsque JE FAIS l'erreur est que je crée un salarié qui existe
| déjà et que je lui attribue un numéro auto, que je lui fais une
| visite et des examens... et que toutes ces données doivent repartir
| sur le numéro original du salarié (donc changement de ce seul et
| unique champ dans chaque table où l'erreur s'est glissée) pour tout
| réaffecter au salarié puis supprimer le salarié indument créee
| puisque plus aucune table ne pointe vers lui.
| Voilà mon pb
| Je sais que les salariées gardent leur nom de jeune fille mais
| malheureusement chez nous elles sont connues et renseignées par leur
| nom marital dans les entreprises
| Mais si c'est trop compliqué je le comprends
| Dans ma petite tete je "voyais" une boucle facile sur ce champ de
| table à remplacer puis une suppression du "faux-nouveau salarié"
| Merci de m'avoir lu jusqu'au bout
| J'accepte les engueulades
|
|




Avatar
Anor
re

| Merci, merci beaucoup,
.../...
| Merci encore pour tout le travail

ah ça fait plaisir à lire ça, hein Raymond ;-)

| Je te tiens au courant, car si ça se trouve je ne vais meme pas
| réussir à coller le code, malin comme je suis

oui j'ai oublié de mettre en remarque la ligne debug.print mais
il n'y a pas de raison que ça coince, sauf si tu dis oui pour changer le numéro de la clé
primaire
(donc numéro auto apparemment) et qui plus est si ça se passe avant que les clés externes
aient été modifiées, tu auras 2 messages d'erreurs possibles.

donc c'est à améliorer avec le temps.

Quand j'aurais un peu de temps, j'incorporerai la fonction avec les améliorations dont j'avais
parlé
dans la section Mémo Admin de mon site, histoire que je la retrouve le jour où j'en aurai besoin
;-)

--
à+
Arnaud
----------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
Access Memorandum - Les tablettes d'Anor
www.anor.fr.st
----------------------------------------------