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

mise à jour d'une liste

5 réponses
Avatar
Cantala
Bonjour,
J'ai une table qui contient des noms de plantes qui ont été modifié depuis
la construction de cette liste. Dans une autre table, j'ai un "checklist" qui
contient, dans des colonnes différentes, les anciens noms (genre, espèces,
sous-espèces, etc. chacun dans un champs différent) et les nouveaux noms qui
sont maintenant utilisés (le nouveau nom est situé sur la même ligne que
l'ancien).
Comment puis-je chercher si ma table de noms de plantes contient des
"anciens noms" qui ont été remplacé et comment les remplacer par les nouveaux?

Merci

5 réponses

Avatar
Fabien
Cantala wrote:
Bonjour,
J'ai une table qui contient des noms de plantes qui ont été modifié depuis
la construction de cette liste. Dans une autre table, j'ai un "checklist" qui
contient, dans des colonnes différentes, les anciens noms (genre, espèces,
sous-espèces, etc. chacun dans un champs différent) et les nouveaux noms qui
sont maintenant utilisés (le nouveau nom est situé sur la même ligne que
l'ancien).
Comment puis-je chercher si ma table de noms de plantes contient des
"anciens noms" qui ont été remplacé et comment les remplacer par les nouveaux?

Merci


Salut,
Je suis pas sur d'avoir tout pigé ;-)

SELECT [table de noms de plantes].[Nom plante], [checklist].[Nouveau Nom]
FROM [table de noms de plantes]INNER JOIN [checklist]ON [table de noms
de plantes].[Nom plante] = [checklist].[ancien Nom];
Te donne la liste des Noms qui n'ont pas changés et les nouveaux noms.

UPDATE [table de noms de plantes] INNER JOIN [checklist]ON [table de
noms de plantes].[Nom plante] = [checklist].[ancien Nom] SET [table de
noms de plantes].[Nom plante] = [Nouveau Nom];
Pour remplacer les anciens par les nouveaux
A tester aprés avoir fait des copies des tables ;-)
@+
Avatar
Gloops
Bonjour,

Si on sait avant de faire la mise à jour qu'on va se poser cette
question à un moment ou un autre, ça peut être pratique de prévoir un
champ "DateMaj", et bien entendu le code pour le renseigner (à moins
qu'une valeur par défaut fasse l'affaire).

NB : Un champ de date d'Access contient l'heure dans sa partie décim ale.
______________________________________
Cantala a écrit, le 26/06/2008 17:43 :
Bonjour,
J'ai une table qui contient des noms de plantes qui ont été m odifié depuis
la construction de cette liste. Dans une autre table, j'ai un "checklis t" qui
contient, dans des colonnes différentes, les anciens noms (genre, espèces,
sous-espèces, etc. chacun dans un champs différent) et les no uveaux noms qui
sont maintenant utilisés (le nouveau nom est situé sur la mà ªme ligne que
l'ancien).
Comment puis-je chercher si ma table de noms de plantes contient des
"anciens noms" qui ont été remplacé et comment les rempl acer par les nouveaux?

Merci


Avatar
Cantala
Bonjour,
En fait, je suis vraiment une novice de Access et je ne suis pas sûre de
comprendre les fonctions. Ce que vous avez élaboré est du SQL?? Je l'inscrit
dans une nouvelle requête en mode SQL?

Aussi, quand vous marquez [nom de plante] ou [nouveau/ancien nom], cela veut
dire que je doive écrire moi-même tous les noms un à un? Car mon objectif
était justement de ne pas avoir à tous les écrire étant donné qu'il y en a
des milliers...

Voici un exemple du "checklist":

New_Genus New_Species New_variety Old_Genus Old_ Species
Old_variety
Abies
balsamea
Abies
balsamea balsamea
Achillea
millefolium nigrescens
Acer negundo negundo Acer negundo
variegatum
Acer nigrum Acer
nigrum palmeri

Dans cet exemple:
les 3 premières entrées représentent des noms qui n'ont pas changé (donc les
champs "New" sont vides). Je dois quand même utiliser ces noms pour valider
les taxons que j'ai sur ma liste "à nettoyer" car seuls les noms qui se
retrouvent sur le checklist seront conservés et le reste sera jetté.
Dans ce cas, j'aimerais pouvoir scruter automatiquement ma liste à nettoyer,
et si un nom identique à un "vieux nom" ("Old") est trouvé, j'aimerais que ce
nom "validé" s'inscrive (dans une nouvelle colonne par exemple).

les 2 dernières entrées représentent des noms qui ont changé. Parfois
seulement le nom de variété a changé, plusieurs variétés ont été mises
ensemble, ou alors le nom de genre (genus) a changé, etc. J'aimerais que ma
liste "à nettoyer" soit scrutée et que, si un nom est identique à un "vieux
nom" qui a changé (on sait qu'il a changé car on retrouve alors un "nouveau
nom" sur la même ligne), le nouveau nom soit inscrit (dans une nouvelle
colonne par exemple).

À noter: les noms de "genus" et "species" etc. sont chacun saisis dans une
cellule différentes et la combinaison identique doit correspondre sinon il ne
s'agit pas du même nom. J'aimerais que chaque combinaison de "old_genus"
"old_species" etc. soit recherchée dans toute la liste "à nettoyer", comparée
une à une.

Peut-être faudrait-il que je modifie et/ou refasse d'autres tables afin de
faciliter les requêtes??

Je sais que c'est un peu compliqué à expliquer... j'espère que c'est plus
clair maintenant.
Merci beaucoup!
P.S. J'ai Access 2003


"Fabien" a écrit :

Cantala wrote:
> Bonjour,
> J'ai une table qui contient des noms de plantes qui ont été modifié depuis
> la construction de cette liste. Dans une autre table, j'ai un "checklist" qui
> contient, dans des colonnes différentes, les anciens noms (genre, espèces,
> sous-espèces, etc. chacun dans un champs différent) et les nouveaux noms qui
> sont maintenant utilisés (le nouveau nom est situé sur la même ligne que
> l'ancien).
> Comment puis-je chercher si ma table de noms de plantes contient des
> "anciens noms" qui ont été remplacé et comment les remplacer par les nouveaux?
>
> Merci
Salut,
Je suis pas sur d'avoir tout pigé ;-)

SELECT [table de noms de plantes].[Nom plante], [checklist].[Nouveau Nom]
FROM [table de noms de plantes]INNER JOIN [checklist]ON [table de noms
de plantes].[Nom plante] = [checklist].[ancien Nom];
Te donne la liste des Noms qui n'ont pas changés et les nouveaux noms.

UPDATE [table de noms de plantes] INNER JOIN [checklist]ON [table de
noms de plantes].[Nom plante] = [checklist].[ancien Nom] SET [table de
noms de plantes].[Nom plante] = [Nouveau Nom];
Pour remplacer les anciens par les nouveaux
A tester aprés avoir fait des copies des tables ;-)
@+




Avatar
Gloops
Cantala a écrit, le 03/07/2008 19:17 :
Bonjour,
En fait, je suis vraiment une novice de Access et je ne suis pas sû re de
comprendre les fonctions. Ce que vous avez élaboré est du SQL ?? Je l'inscrit
dans une nouvelle requête en mode SQL?





Bonjour,

Si je peux me permettre, cet exercice n'est pas celui que je
conseillerais pour débuter sous Access.

Il y a deux lignes importantes dans le message de Fabien me semble-t-il,
ce sont celles où il met des clins d'œil ...

En tout état de cause la première chose à faire est l'anal yse. Une
recherche sur le mot-clé Merise permettra de situer le sujet. Tant
qu'elle n'est pas faite, il y a un certain nombre de notions qu'il est
largement prématuré d'aborder : table, champ, checklist ...



---
Au niveau des adresses, invalid est invalide.
Avatar
Fabien
Cantala wrote:
Bonjour,
En fait, je suis vraiment une novice de Access et je ne suis pas sûre de
comprendre les fonctions. Ce que vous avez élaboré est du SQL?? Je l'inscrit
dans une nouvelle requête en mode SQL?

Aussi, quand vous marquez [nom de plante] ou [nouveau/ancien nom], cela veut
dire que je doive écrire moi-même tous les noms un à un? Car mon objectif
était justement de ne pas avoir à tous les écrire étant donné qu'il y en a
des milliers...

Voici un exemple du "checklist":

New_Genus New_Species New_variety Old_Genus Old_ Species
Old_variety
Abies
balsamea
Abies
balsamea balsamea
Achillea
millefolium nigrescens
Acer negundo negundo Acer negundo
variegatum
Acer nigrum Acer
nigrum palmeri

Dans cet exemple:
les 3 premières entrées représentent des noms qui n'ont pas changé (donc les
champs "New" sont vides). Je dois quand même utiliser ces noms pour valider
les taxons que j'ai sur ma liste "à nettoyer" car seuls les noms qui se
retrouvent sur le checklist seront conservés et le reste sera jetté.
Dans ce cas, j'aimerais pouvoir scruter automatiquement ma liste à nettoyer,
et si un nom identique à un "vieux nom" ("Old") est trouvé, j'aimerais que ce
nom "validé" s'inscrive (dans une nouvelle colonne par exemple).

les 2 dernières entrées représentent des noms qui ont changé. Parfois
seulement le nom de variété a changé, plusieurs variétés ont été mises
ensemble, ou alors le nom de genre (genus) a changé, etc. J'aimerais que ma
liste "à nettoyer" soit scrutée et que, si un nom est identique à un "vieux
nom" qui a changé (on sait qu'il a changé car on retrouve alors un "nouveau
nom" sur la même ligne), le nouveau nom soit inscrit (dans une nouvelle
colonne par exemple).

À noter: les noms de "genus" et "species" etc. sont chacun saisis dans une
cellule différentes et la combinaison identique doit correspondre sinon il ne
s'agit pas du même nom. J'aimerais que chaque combinaison de "old_genus"
"old_species" etc. soit recherchée dans toute la liste "à nettoyer", comparée
une à une.

Peut-être faudrait-il que je modifie et/ou refasse d'autres tables afin de
faciliter les requêtes??

Je sais que c'est un peu compliqué à expliquer... j'espère que c'est plus
clair maintenant.
Merci beaucoup!
P.S. J'ai Access 2003


"Fabien" a écrit :

Cantala wrote:
Bonjour,
J'ai une table qui contient des noms de plantes qui ont été modifié depuis
la construction de cette liste. Dans une autre table, j'ai un "checklist" qui
contient, dans des colonnes différentes, les anciens noms (genre, espèces,
sous-espèces, etc. chacun dans un champs différent) et les nouveaux noms qui
sont maintenant utilisés (le nouveau nom est situé sur la même ligne que
l'ancien).
Comment puis-je chercher si ma table de noms de plantes contient des
"anciens noms" qui ont été remplacé et comment les remplacer par les nouveaux?

Merci


Salut,
Je suis pas sur d'avoir tout pigé ;-)

SELECT [table de noms de plantes].[Nom plante], [checklist].[Nouveau Nom]
FROM [table de noms de plantes]INNER JOIN [checklist]ON [table de noms
de plantes].[Nom plante] = [checklist].[ancien Nom];
Te donne la liste des Noms qui n'ont pas changés et les nouveaux noms.

UPDATE [table de noms de plantes] INNER JOIN [checklist]ON [table de
noms de plantes].[Nom plante] = [checklist].[ancien Nom] SET [table de
noms de plantes].[Nom plante] = [Nouveau Nom];
Pour remplacer les anciens par les nouveaux
A tester aprés avoir fait des copies des tables ;-)
@+






Bonjour,
Oui ce sont deux SQl qu'il faut 'entrer' dans le requeteur.
Nouvelle Requete>Ne choisir aucune table. En haut a gauche apparait un
bouton marqué SQL. On clic dessus et on copie le premier texe source . A
l'execution vous obtenez la liste des noms qui n'ont pas changés et les
nouveaux noms. Pour contrôle.
On recommence la manip avec le second texte source. A l'execution il
devrait y avoir la mise a jour souhaitée ;-). Mais avant de lancer
cette requete il est souhaitable de faire soit une copie de la base soit
une copie des tables qui seront modifiées ;-))
Et surtout tenir compte de la remarque de Mr Gloops. Le temps passé en
analyse c'est du temps gagné en developpement et maintenance.
@+