OVH Cloud OVH Cloud

Copier d'une table à l'autre

7 réponses
Avatar
Luis
Bonjour,
Je dois copier trois champs d'une table dans une autre et sur l'idée que
m'avais donné J-Pierre pour d'autres tables, j'ai fait cette requête:

UPDATE [CODE DEPARTEMENT], Clients SET [CODE DEPARTEMENT].intitule =
Clients.DEPARTEMENT1, [CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT2,
[CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT3;

Mais j'ai cette erreur:

Destination de sortie "[CODE DEPARTEMENT].intitule" répliquée

Juste pour tester j'ai essayé ça:
UPDATE [CODE DEPARTEMENT], Clients SET [CODE DEPARTEMENT].intitule =
Clients.DEPARTEMENT1;
Mais ça ne copie rien du tout.

Bon le problème: je doit copier la valeur des 3 champs (DEPARTEMENT1,
DEPARTEMENT2, DEPARTEMENT3 de la table CLIENTS) dans le champ intitule de la
table "CODE DEPARTEMENT"

Comment dois-je faire?

Merci pour votre aide.
Luis

7 réponses

Avatar
J-Pierre
Bonjour Luis,

Est-ce que tu dois mettre à jour des lignes existantes de ta table [CODE DEPARTEMENT] ou bien créer de nouvelles lignes ?

S'il s'agit d'une mise à jour, il faut définir une relation entre tes 2 tables, sinon, Access va essayer d'exécuter X * Y MAJ (X et
Y représentant le nombre de lignes dans chacune de tes tables). Et finalement, n'exécutera rien du tout. Il y a un nom savant pour
ça, mais je l'ai oublié, si quelqu'un peut me rafraîchir la mémoire sans se foutre de ma gueule, ce serait sympa.

Si les lignes n'existent pas dans ta table, il faut passer par une requête ajout.

A part ça, le problème provient sans doute du fait que tu mets 3 fois à jour le même champ [CODE DEPARTEMENT].intitule avec des
champs différents de ta table Clients. Et ça, ce n'est pas possible, c'est l'un ou l'autre ou l'autre.

Si tu veux que ton champ intitulé contienne la concaténation des 3 autres, il faut coder:
[CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT1 & Clients.DEPARTEMENT2 & Clients.DEPARTEMENT3

Si tu veux autre chose, il faut être plus précis :-)

--
J-Pierre

----------------------------------------------------------
J'organise un grand concours de chèques à mon nom. Le plus gros a gagné.
(Coluche)
----------------------------------------------------------

"Luis" a écrit dans le message de news:
Bonjour,
Je dois copier trois champs d'une table dans une autre et sur l'idée que
m'avais donné J-Pierre pour d'autres tables, j'ai fait cette requête:

UPDATE [CODE DEPARTEMENT], Clients SET [CODE DEPARTEMENT].intitule > Clients.DEPARTEMENT1, [CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT2,
[CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT3;

Mais j'ai cette erreur:

Destination de sortie "[CODE DEPARTEMENT].intitule" répliquée

Juste pour tester j'ai essayé ça:
UPDATE [CODE DEPARTEMENT], Clients SET [CODE DEPARTEMENT].intitule > Clients.DEPARTEMENT1;
Mais ça ne copie rien du tout.

Bon le problème: je doit copier la valeur des 3 champs (DEPARTEMENT1,
DEPARTEMENT2, DEPARTEMENT3 de la table CLIENTS) dans le champ intitule de la
table "CODE DEPARTEMENT"

Comment dois-je faire?

Merci pour votre aide.
Luis


Avatar
Luis
Bonjour,
Tout d'abord, je ne connais pas le mot savant que tu cherches.
Alors pour être plus précis:
Je veux copier dans le champ [intitule] de la table "CODE DEPARTEMENT" le
contenu des trois champs [DEPARTEMENT1], [DEPARTEMENT2] et [DEPARTEMENT3] de
la table "Clients", mais chaque champ dans un nouveau champ [intitulé], pour
exemple dans la table "CODE DEPARTEMENT" je le vois comme ça:

Enregistrement 1 de: [intitule] de la table "CODE DEPARTEMENT"
=[DEPARTEMENT1] de la table "Clients"

Enregistrement 2 de: [intitule] de la table "CODE DEPARTEMENT"
=[DEPARTEMENT2] de la table "Clients"

Enregistrement 3 de: [intitule] de la table "CODE DEPARTEMENT"
=[DEPARTEMENT3] de la table "Clients"

As-tu compris ce que je veux dire (comme on dit: "Ce qui est important ce
n'est pas ce qui est dit mais comment c'est dit) et as-tu une idée?

Luis



Bonjour Luis,

Est-ce que tu dois mettre à jour des lignes existantes de ta table [CODE DEPARTEMENT] ou bien créer de nouvelles lignes ?

S'il s'agit d'une mise à jour, il faut définir une relation entre tes 2 tables, sinon, Access va essayer d'exécuter X * Y MAJ (X et
Y représentant le nombre de lignes dans chacune de tes tables). Et finalement, n'exécutera rien du tout. Il y a un nom savant pour
ça, mais je l'ai oublié, si quelqu'un peut me rafraîchir la mémoire sans se foutre de ma gueule, ce serait sympa.

Si les lignes n'existent pas dans ta table, il faut passer par une requête ajout.

A part ça, le problème provient sans doute du fait que tu mets 3 fois à jour le même champ [CODE DEPARTEMENT].intitule avec des
champs différents de ta table Clients. Et ça, ce n'est pas possible, c'est l'un ou l'autre ou l'autre.

Si tu veux que ton champ intitulé contienne la concaténation des 3 autres, il faut coder:
[CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT1 & Clients.DEPARTEMENT2 & Clients.DEPARTEMENT3

Si tu veux autre chose, il faut être plus précis :-)

--
J-Pierre

----------------------------------------------------------
J'organise un grand concours de chèques à mon nom. Le plus gros a gagné.
(Coluche)
----------------------------------------------------------

"Luis" a écrit dans le message de news:
Bonjour,
Je dois copier trois champs d'une table dans une autre et sur l'idée que
m'avais donné J-Pierre pour d'autres tables, j'ai fait cette requête:

UPDATE [CODE DEPARTEMENT], Clients SET [CODE DEPARTEMENT].intitule > > Clients.DEPARTEMENT1, [CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT2,
[CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT3;

Mais j'ai cette erreur:

Destination de sortie "[CODE DEPARTEMENT].intitule" répliquée

Juste pour tester j'ai essayé ça:
UPDATE [CODE DEPARTEMENT], Clients SET [CODE DEPARTEMENT].intitule > > Clients.DEPARTEMENT1;
Mais ça ne copie rien du tout.

Bon le problème: je doit copier la valeur des 3 champs (DEPARTEMENT1,
DEPARTEMENT2, DEPARTEMENT3 de la table CLIENTS) dans le champ intitule de la
table "CODE DEPARTEMENT"

Comment dois-je faire?

Merci pour votre aide.
Luis







Avatar
Luis
Bonjour J-Pierre,
Voilà la solution que j'ai trouvé, en faisant avec 3 requêtes ajout, dont
voici la première:
INSERT INTO [CODE DEPARTEMENT] ( intitule )
SELECT Clients.DEPARTEMENT1
FROM Clients
WHERE (((Clients.DEPARTEMENT1) Is Not Null));

Je dois faire 3 fois l'action, si une solution plus élégante existe, je
prends.

J'ai un autre problème:
C'est les doublons, alors j'ai fait une requête pour chercher les doublons:
SELECT [CODE DEPARTEMENT].intitule, [CODE DEPARTEMENT].ncode
FROM [CODE DEPARTEMENT]
WHERE ((([CODE DEPARTEMENT].intitule) In (SELECT [intitule] FROM [CODE
DEPARTEMENT] As Tmp GROUP BY [intitule] HAVING Count(*)>1 )))
ORDER BY [CODE DEPARTEMENT].intitule;
Et une requête suppression:
DELETE [Rechercher les doublons pour CODE DEPARTEMENT].intitule
FROM [Rechercher les doublons pour CODE DEPARTEMENT];

Le problème le voici: tous les doublons sont supprimés sans exception et
j'aimerai garder un nom.
Luis

Bonjour Luis,

Est-ce que tu dois mettre à jour des lignes existantes de ta table [CODE DEPARTEMENT] ou bien créer de nouvelles lignes ?

S'il s'agit d'une mise à jour, il faut définir une relation entre tes 2 tables, sinon, Access va essayer d'exécuter X * Y MAJ (X et
Y représentant le nombre de lignes dans chacune de tes tables). Et finalement, n'exécutera rien du tout. Il y a un nom savant pour
ça, mais je l'ai oublié, si quelqu'un peut me rafraîchir la mémoire sans se foutre de ma gueule, ce serait sympa.

Si les lignes n'existent pas dans ta table, il faut passer par une requête ajout.

A part ça, le problème provient sans doute du fait que tu mets 3 fois à jour le même champ [CODE DEPARTEMENT].intitule avec des
champs différents de ta table Clients. Et ça, ce n'est pas possible, c'est l'un ou l'autre ou l'autre.

Si tu veux que ton champ intitulé contienne la concaténation des 3 autres, il faut coder:
[CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT1 & Clients.DEPARTEMENT2 & Clients.DEPARTEMENT3

Si tu veux autre chose, il faut être plus précis :-)

--
J-Pierre

----------------------------------------------------------
J'organise un grand concours de chèques à mon nom. Le plus gros a gagné.
(Coluche)
----------------------------------------------------------

"Luis" a écrit dans le message de news:
Bonjour,
Je dois copier trois champs d'une table dans une autre et sur l'idée que
m'avais donné J-Pierre pour d'autres tables, j'ai fait cette requête:

UPDATE [CODE DEPARTEMENT], Clients SET [CODE DEPARTEMENT].intitule > > Clients.DEPARTEMENT1, [CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT2,
[CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT3;

Mais j'ai cette erreur:

Destination de sortie "[CODE DEPARTEMENT].intitule" répliquée

Juste pour tester j'ai essayé ça:
UPDATE [CODE DEPARTEMENT], Clients SET [CODE DEPARTEMENT].intitule > > Clients.DEPARTEMENT1;
Mais ça ne copie rien du tout.

Bon le problème: je doit copier la valeur des 3 champs (DEPARTEMENT1,
DEPARTEMENT2, DEPARTEMENT3 de la table CLIENTS) dans le champ intitule de la
table "CODE DEPARTEMENT"

Comment dois-je faire?

Merci pour votre aide.
Luis







Avatar
J-Pierre
Oui, Luis, j'ai compris.

Mais ça amène d'autre questions. :-)

Dans ta table "CODE DEPARTEMENT", tu as combien de lignes en tout ? 3 ?
Et dans ta table "Clients" combien de lignes en tout ? 1 ?

est-ce que tous les clients ont la même info dans "DEPARTEMENT1", "DEPARTEMENT2" et "DEPARTEMENT3" ?

Bref, ce qui n'est pas clair du tout, c'est la structure de ta base et la relation entre tes deux tables.

Mais on y arrivera :-)

--
J-Pierre

----------------------------------------------------------
J'organise un grand concours de chèques à mon nom. Le plus gros a gagné.
(Coluche)
----------------------------------------------------------

"Luis" a écrit dans le message de news:
Bonjour,
Tout d'abord, je ne connais pas le mot savant que tu cherches.
Alors pour être plus précis:
Je veux copier dans le champ [intitule] de la table "CODE DEPARTEMENT" le
contenu des trois champs [DEPARTEMENT1], [DEPARTEMENT2] et [DEPARTEMENT3] de
la table "Clients", mais chaque champ dans un nouveau champ [intitulé], pour
exemple dans la table "CODE DEPARTEMENT" je le vois comme ça:

Enregistrement 1 de: [intitule] de la table "CODE DEPARTEMENT"
=[DEPARTEMENT1] de la table "Clients"

Enregistrement 2 de: [intitule] de la table "CODE DEPARTEMENT"
=[DEPARTEMENT2] de la table "Clients"

Enregistrement 3 de: [intitule] de la table "CODE DEPARTEMENT"
=[DEPARTEMENT3] de la table "Clients"

As-tu compris ce que je veux dire (comme on dit: "Ce qui est important ce
n'est pas ce qui est dit mais comment c'est dit) et as-tu une idée?

Luis



Bonjour Luis,

Est-ce que tu dois mettre à jour des lignes existantes de ta table [CODE DEPARTEMENT] ou bien créer de nouvelles lignes ?

S'il s'agit d'une mise à jour, il faut définir une relation entre tes 2 tables, sinon, Access va essayer d'exécuter X * Y MAJ (X
et
Y représentant le nombre de lignes dans chacune de tes tables). Et finalement, n'exécutera rien du tout. Il y a un nom savant
pour
ça, mais je l'ai oublié, si quelqu'un peut me rafraîchir la mémoire sans se foutre de ma gueule, ce serait sympa.

Si les lignes n'existent pas dans ta table, il faut passer par une requête ajout.

A part ça, le problème provient sans doute du fait que tu mets 3 fois à jour le même champ [CODE DEPARTEMENT].intitule avec des
champs différents de ta table Clients. Et ça, ce n'est pas possible, c'est l'un ou l'autre ou l'autre.

Si tu veux que ton champ intitulé contienne la concaténation des 3 autres, il faut coder:
[CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT1 & Clients.DEPARTEMENT2 & Clients.DEPARTEMENT3

Si tu veux autre chose, il faut être plus précis :-)

--
J-Pierre

----------------------------------------------------------
J'organise un grand concours de chèques à mon nom. Le plus gros a gagné.
(Coluche)
----------------------------------------------------------

"Luis" a écrit dans le message de news:
Bonjour,
Je dois copier trois champs d'une table dans une autre et sur l'idée que
m'avais donné J-Pierre pour d'autres tables, j'ai fait cette requête:

UPDATE [CODE DEPARTEMENT], Clients SET [CODE DEPARTEMENT].intitule >> > Clients.DEPARTEMENT1, [CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT2,
[CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT3;

Mais j'ai cette erreur:

Destination de sortie "[CODE DEPARTEMENT].intitule" répliquée

Juste pour tester j'ai essayé ça:
UPDATE [CODE DEPARTEMENT], Clients SET [CODE DEPARTEMENT].intitule >> > Clients.DEPARTEMENT1;
Mais ça ne copie rien du tout.

Bon le problème: je doit copier la valeur des 3 champs (DEPARTEMENT1,
DEPARTEMENT2, DEPARTEMENT3 de la table CLIENTS) dans le champ intitule de la
table "CODE DEPARTEMENT"

Comment dois-je faire?

Merci pour votre aide.
Luis









Avatar
Luis
Rebonjour,
Dans ta table "CODE DEPARTEMENT", tu as combien de lignes en tout ? 3 ?
Et dans ta table "Clients" combien de lignes en tout ? 1 ?


Dans "CODE DEPARTEMENT", il y a une ligne par intitule et deux colonnes
[intitule] (Texte) et [ncode] (NuméroAuto)

Dans la table clients il y une ligne par client et plusieurs colonnes dont
[DEPARTEMENT1] (Texte) ; [DEPARTEMENT2] (Texte) et [DEPARTEMENT3] (Texte)

est-ce que tous les clients ont la même info dans "DEPARTEMENT1", "DEPARTEMENT2" et "DEPARTEMENT3" ?


Oui, tous les clients ont la même info par département, en clair l'info dans
[DEPARTEMENT1] est la même pour tous les clients, l'info dans [DEPARTEMENT2]
est aussi la même pour tous les clients et même chose pour le [DEPARTEMENT3]

Luis


Oui, Luis, j'ai compris.

Mais ça amène d'autre questions. :-)

Dans ta table "CODE DEPARTEMENT", tu as combien de lignes en tout ? 3 ?
Et dans ta table "Clients" combien de lignes en tout ? 1 ?

est-ce que tous les clients ont la même info dans "DEPARTEMENT1", "DEPARTEMENT2" et "DEPARTEMENT3" ?

Bref, ce qui n'est pas clair du tout, c'est la structure de ta base et la relation entre tes deux tables.

Mais on y arrivera :-)

--
J-Pierre

----------------------------------------------------------
J'organise un grand concours de chèques à mon nom. Le plus gros a gagné.
(Coluche)
----------------------------------------------------------

"Luis" a écrit dans le message de news:
Bonjour,
Tout d'abord, je ne connais pas le mot savant que tu cherches.
Alors pour être plus précis:
Je veux copier dans le champ [intitule] de la table "CODE DEPARTEMENT" le
contenu des trois champs [DEPARTEMENT1], [DEPARTEMENT2] et [DEPARTEMENT3] de
la table "Clients", mais chaque champ dans un nouveau champ [intitulé], pour
exemple dans la table "CODE DEPARTEMENT" je le vois comme ça:

Enregistrement 1 de: [intitule] de la table "CODE DEPARTEMENT"
=[DEPARTEMENT1] de la table "Clients"

Enregistrement 2 de: [intitule] de la table "CODE DEPARTEMENT"
=[DEPARTEMENT2] de la table "Clients"

Enregistrement 3 de: [intitule] de la table "CODE DEPARTEMENT"
=[DEPARTEMENT3] de la table "Clients"

As-tu compris ce que je veux dire (comme on dit: "Ce qui est important ce
n'est pas ce qui est dit mais comment c'est dit) et as-tu une idée?

Luis



Bonjour Luis,

Est-ce que tu dois mettre à jour des lignes existantes de ta table [CODE DEPARTEMENT] ou bien créer de nouvelles lignes ?

S'il s'agit d'une mise à jour, il faut définir une relation entre tes 2 tables, sinon, Access va essayer d'exécuter X * Y MAJ (X
et
Y représentant le nombre de lignes dans chacune de tes tables). Et finalement, n'exécutera rien du tout. Il y a un nom savant
pour
ça, mais je l'ai oublié, si quelqu'un peut me rafraîchir la mémoire sans se foutre de ma gueule, ce serait sympa.

Si les lignes n'existent pas dans ta table, il faut passer par une requête ajout.

A part ça, le problème provient sans doute du fait que tu mets 3 fois à jour le même champ [CODE DEPARTEMENT].intitule avec des
champs différents de ta table Clients. Et ça, ce n'est pas possible, c'est l'un ou l'autre ou l'autre.

Si tu veux que ton champ intitulé contienne la concaténation des 3 autres, il faut coder:
[CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT1 & Clients.DEPARTEMENT2 & Clients.DEPARTEMENT3

Si tu veux autre chose, il faut être plus précis :-)

--
J-Pierre

----------------------------------------------------------
J'organise un grand concours de chèques à mon nom. Le plus gros a gagné.
(Coluche)
----------------------------------------------------------

"Luis" a écrit dans le message de news:
Bonjour,
Je dois copier trois champs d'une table dans une autre et sur l'idée que
m'avais donné J-Pierre pour d'autres tables, j'ai fait cette requête:

UPDATE [CODE DEPARTEMENT], Clients SET [CODE DEPARTEMENT].intitule > >> > Clients.DEPARTEMENT1, [CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT2,
[CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT3;

Mais j'ai cette erreur:

Destination de sortie "[CODE DEPARTEMENT].intitule" répliquée

Juste pour tester j'ai essayé ça:
UPDATE [CODE DEPARTEMENT], Clients SET [CODE DEPARTEMENT].intitule > >> > Clients.DEPARTEMENT1;
Mais ça ne copie rien du tout.

Bon le problème: je doit copier la valeur des 3 champs (DEPARTEMENT1,
DEPARTEMENT2, DEPARTEMENT3 de la table CLIENTS) dans le champ intitule de la
table "CODE DEPARTEMENT"

Comment dois-je faire?

Merci pour votre aide.
Luis














Avatar
J-Pierre
Bonjour Luis,

Si je comprends bien, comme il y a 3 départements dans ta table clients, tu auras toujours 3 lignes dans ta table "CODE
DEPARTEMENT". Par contre, dans ton post suivant, tu sélectionnes WHERE (((Clients.DEPARTEMENT1) Is Not Null)); ce qui implique que
l'info est toujours la même pour DEPARTEMENT1 mais qu'elle peut aussi être nulle.

Je ne vois pas trop comment éviter les 3 requêtes INSERTION, sauf à créer une requête UNION qui générera les 3 lignes. Pour ton
problème de doublons,une seule ligne suffit, tu modifies ta requête AJOUT comme suit:

INSERT INTO [CODE DEPARTEMENT] ( intitule )
SELECT TOP 1 Clients.DEPARTEMENT1
FROM Clients
WHERE (((Clients.DEPARTEMENT1) Is Not Null));

Enfin, avant d'exécuter des requêtes, il faut supprimer les lignes dans [CODE DEPARTEMENT]

--
J-Pierre

----------------------------------------------------------
J'organise un grand concours de chèques à mon nom. Le plus gros a gagné.
(Coluche)
----------------------------------------------------------

"Luis" a écrit dans le message de news:
Rebonjour,
Dans ta table "CODE DEPARTEMENT", tu as combien de lignes en tout ? 3 ?
Et dans ta table "Clients" combien de lignes en tout ? 1 ?


Dans "CODE DEPARTEMENT", il y a une ligne par intitule et deux colonnes
[intitule] (Texte) et [ncode] (NuméroAuto)

Dans la table clients il y une ligne par client et plusieurs colonnes dont
[DEPARTEMENT1] (Texte) ; [DEPARTEMENT2] (Texte) et [DEPARTEMENT3] (Texte)

est-ce que tous les clients ont la même info dans "DEPARTEMENT1", "DEPARTEMENT2" et "DEPARTEMENT3" ?


Oui, tous les clients ont la même info par département, en clair l'info dans
[DEPARTEMENT1] est la même pour tous les clients, l'info dans [DEPARTEMENT2]
est aussi la même pour tous les clients et même chose pour le [DEPARTEMENT3]

Luis


Oui, Luis, j'ai compris.

Mais ça amène d'autre questions. :-)

Dans ta table "CODE DEPARTEMENT", tu as combien de lignes en tout ? 3 ?
Et dans ta table "Clients" combien de lignes en tout ? 1 ?

est-ce que tous les clients ont la même info dans "DEPARTEMENT1", "DEPARTEMENT2" et "DEPARTEMENT3" ?

Bref, ce qui n'est pas clair du tout, c'est la structure de ta base et la relation entre tes deux tables.

Mais on y arrivera :-)

--
J-Pierre

----------------------------------------------------------
J'organise un grand concours de chèques à mon nom. Le plus gros a gagné.
(Coluche)
----------------------------------------------------------

"Luis" a écrit dans le message de news:
Bonjour,
Tout d'abord, je ne connais pas le mot savant que tu cherches.
Alors pour être plus précis:
Je veux copier dans le champ [intitule] de la table "CODE DEPARTEMENT" le
contenu des trois champs [DEPARTEMENT1], [DEPARTEMENT2] et [DEPARTEMENT3] de
la table "Clients", mais chaque champ dans un nouveau champ [intitulé], pour
exemple dans la table "CODE DEPARTEMENT" je le vois comme ça:

Enregistrement 1 de: [intitule] de la table "CODE DEPARTEMENT"
=[DEPARTEMENT1] de la table "Clients"

Enregistrement 2 de: [intitule] de la table "CODE DEPARTEMENT"
=[DEPARTEMENT2] de la table "Clients"

Enregistrement 3 de: [intitule] de la table "CODE DEPARTEMENT"
=[DEPARTEMENT3] de la table "Clients"

As-tu compris ce que je veux dire (comme on dit: "Ce qui est important ce
n'est pas ce qui est dit mais comment c'est dit) et as-tu une idée?

Luis



Bonjour Luis,

Est-ce que tu dois mettre à jour des lignes existantes de ta table [CODE DEPARTEMENT] ou bien créer de nouvelles lignes ?

S'il s'agit d'une mise à jour, il faut définir une relation entre tes 2 tables, sinon, Access va essayer d'exécuter X * Y MAJ
(X
et
Y représentant le nombre de lignes dans chacune de tes tables). Et finalement, n'exécutera rien du tout. Il y a un nom savant
pour
ça, mais je l'ai oublié, si quelqu'un peut me rafraîchir la mémoire sans se foutre de ma gueule, ce serait sympa.

Si les lignes n'existent pas dans ta table, il faut passer par une requête ajout.

A part ça, le problème provient sans doute du fait que tu mets 3 fois à jour le même champ [CODE DEPARTEMENT].intitule avec
des
champs différents de ta table Clients. Et ça, ce n'est pas possible, c'est l'un ou l'autre ou l'autre.

Si tu veux que ton champ intitulé contienne la concaténation des 3 autres, il faut coder:
[CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT1 & Clients.DEPARTEMENT2 & Clients.DEPARTEMENT3

Si tu veux autre chose, il faut être plus précis :-)

--
J-Pierre

----------------------------------------------------------
J'organise un grand concours de chèques à mon nom. Le plus gros a gagné.
(Coluche)
----------------------------------------------------------

"Luis" a écrit dans le message de news:
Bonjour,
Je dois copier trois champs d'une table dans une autre et sur l'idée que
m'avais donné J-Pierre pour d'autres tables, j'ai fait cette requête:

UPDATE [CODE DEPARTEMENT], Clients SET [CODE DEPARTEMENT].intitule >> >> > Clients.DEPARTEMENT1, [CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT2,
[CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT3;

Mais j'ai cette erreur:

Destination de sortie "[CODE DEPARTEMENT].intitule" répliquée

Juste pour tester j'ai essayé ça:
UPDATE [CODE DEPARTEMENT], Clients SET [CODE DEPARTEMENT].intitule >> >> > Clients.DEPARTEMENT1;
Mais ça ne copie rien du tout.

Bon le problème: je doit copier la valeur des 3 champs (DEPARTEMENT1,
DEPARTEMENT2, DEPARTEMENT3 de la table CLIENTS) dans le champ intitule de la
table "CODE DEPARTEMENT"

Comment dois-je faire?

Merci pour votre aide.
Luis
















Avatar
Luis
Bonjour J-Pierre,
C'est parfait, ça marche exactement comme je le voulais et en plus grâce à
toi j'ai appris à faire des requêtes MAJ et Ajout.
Merci vraiment pour tout.
Luis


Bonjour Luis,

Si je comprends bien, comme il y a 3 départements dans ta table clients, tu auras toujours 3 lignes dans ta table "CODE
DEPARTEMENT". Par contre, dans ton post suivant, tu sélectionnes WHERE (((Clients.DEPARTEMENT1) Is Not Null)); ce qui implique que
l'info est toujours la même pour DEPARTEMENT1 mais qu'elle peut aussi être nulle.

Je ne vois pas trop comment éviter les 3 requêtes INSERTION, sauf à créer une requête UNION qui générera les 3 lignes. Pour ton
problème de doublons,une seule ligne suffit, tu modifies ta requête AJOUT comme suit:

INSERT INTO [CODE DEPARTEMENT] ( intitule )
SELECT TOP 1 Clients.DEPARTEMENT1
FROM Clients
WHERE (((Clients.DEPARTEMENT1) Is Not Null));

Enfin, avant d'exécuter des requêtes, il faut supprimer les lignes dans [CODE DEPARTEMENT]

--
J-Pierre

----------------------------------------------------------
J'organise un grand concours de chèques à mon nom. Le plus gros a gagné.
(Coluche)
----------------------------------------------------------

"Luis" a écrit dans le message de news:
Rebonjour,
Dans ta table "CODE DEPARTEMENT", tu as combien de lignes en tout ? 3 ?
Et dans ta table "Clients" combien de lignes en tout ? 1 ?


Dans "CODE DEPARTEMENT", il y a une ligne par intitule et deux colonnes
[intitule] (Texte) et [ncode] (NuméroAuto)

Dans la table clients il y une ligne par client et plusieurs colonnes dont
[DEPARTEMENT1] (Texte) ; [DEPARTEMENT2] (Texte) et [DEPARTEMENT3] (Texte)

est-ce que tous les clients ont la même info dans "DEPARTEMENT1", "DEPARTEMENT2" et "DEPARTEMENT3" ?


Oui, tous les clients ont la même info par département, en clair l'info dans
[DEPARTEMENT1] est la même pour tous les clients, l'info dans [DEPARTEMENT2]
est aussi la même pour tous les clients et même chose pour le [DEPARTEMENT3]

Luis


Oui, Luis, j'ai compris.

Mais ça amène d'autre questions. :-)

Dans ta table "CODE DEPARTEMENT", tu as combien de lignes en tout ? 3 ?
Et dans ta table "Clients" combien de lignes en tout ? 1 ?

est-ce que tous les clients ont la même info dans "DEPARTEMENT1", "DEPARTEMENT2" et "DEPARTEMENT3" ?

Bref, ce qui n'est pas clair du tout, c'est la structure de ta base et la relation entre tes deux tables.

Mais on y arrivera :-)

--
J-Pierre

----------------------------------------------------------
J'organise un grand concours de chèques à mon nom. Le plus gros a gagné.
(Coluche)
----------------------------------------------------------

"Luis" a écrit dans le message de news:
Bonjour,
Tout d'abord, je ne connais pas le mot savant que tu cherches.
Alors pour être plus précis:
Je veux copier dans le champ [intitule] de la table "CODE DEPARTEMENT" le
contenu des trois champs [DEPARTEMENT1], [DEPARTEMENT2] et [DEPARTEMENT3] de
la table "Clients", mais chaque champ dans un nouveau champ [intitulé], pour
exemple dans la table "CODE DEPARTEMENT" je le vois comme ça:

Enregistrement 1 de: [intitule] de la table "CODE DEPARTEMENT"
=[DEPARTEMENT1] de la table "Clients"

Enregistrement 2 de: [intitule] de la table "CODE DEPARTEMENT"
=[DEPARTEMENT2] de la table "Clients"

Enregistrement 3 de: [intitule] de la table "CODE DEPARTEMENT"
=[DEPARTEMENT3] de la table "Clients"

As-tu compris ce que je veux dire (comme on dit: "Ce qui est important ce
n'est pas ce qui est dit mais comment c'est dit) et as-tu une idée?

Luis



Bonjour Luis,

Est-ce que tu dois mettre à jour des lignes existantes de ta table [CODE DEPARTEMENT] ou bien créer de nouvelles lignes ?

S'il s'agit d'une mise à jour, il faut définir une relation entre tes 2 tables, sinon, Access va essayer d'exécuter X * Y MAJ
(X
et
Y représentant le nombre de lignes dans chacune de tes tables). Et finalement, n'exécutera rien du tout. Il y a un nom savant
pour
ça, mais je l'ai oublié, si quelqu'un peut me rafraîchir la mémoire sans se foutre de ma gueule, ce serait sympa.

Si les lignes n'existent pas dans ta table, il faut passer par une requête ajout.

A part ça, le problème provient sans doute du fait que tu mets 3 fois à jour le même champ [CODE DEPARTEMENT].intitule avec
des
champs différents de ta table Clients. Et ça, ce n'est pas possible, c'est l'un ou l'autre ou l'autre.

Si tu veux que ton champ intitulé contienne la concaténation des 3 autres, il faut coder:
[CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT1 & Clients.DEPARTEMENT2 & Clients.DEPARTEMENT3

Si tu veux autre chose, il faut être plus précis :-)

--
J-Pierre

----------------------------------------------------------
J'organise un grand concours de chèques à mon nom. Le plus gros a gagné.
(Coluche)
----------------------------------------------------------

"Luis" a écrit dans le message de news:
Bonjour,
Je dois copier trois champs d'une table dans une autre et sur l'idée que
m'avais donné J-Pierre pour d'autres tables, j'ai fait cette requête:

UPDATE [CODE DEPARTEMENT], Clients SET [CODE DEPARTEMENT].intitule > >> >> > Clients.DEPARTEMENT1, [CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT2,
[CODE DEPARTEMENT].intitule = Clients.DEPARTEMENT3;

Mais j'ai cette erreur:

Destination de sortie "[CODE DEPARTEMENT].intitule" répliquée

Juste pour tester j'ai essayé ça:
UPDATE [CODE DEPARTEMENT], Clients SET [CODE DEPARTEMENT].intitule > >> >> > Clients.DEPARTEMENT1;
Mais ça ne copie rien du tout.

Bon le problème: je doit copier la valeur des 3 champs (DEPARTEMENT1,
DEPARTEMENT2, DEPARTEMENT3 de la table CLIENTS) dans le champ intitule de la
table "CODE DEPARTEMENT"

Comment dois-je faire?

Merci pour votre aide.
Luis