OVH Cloud OVH Cloud

Transposer des champs dans ACCESS

7 réponses
Avatar
Richard
Bonjour.

Voici mon probléme qui est trop complqué pour moi.
j'espere trouver auprés de vous une solution


Transposé des valeurs d'un champ d'une colonne en plusieurs colonnes

Une table d'historique contient le champs suivants

"code matériel"
"libellé"
"ancienne valeur"
"nouvelle valeur"
"date de l'action"

"Code matériel" et un identifiant unique du matériel
"libellé" conitient les valeurs suivantes: utilisateur,localisation, date du
mouvement.
"Ancienne valeur" contient l'ancien: utilisateur, localisation ou date
mouvement
"Nouvelle valeur" contient le nouveau: utilisateur, localisation ou date
mouvement
"date de l'action" contient la date donnée par l'horloge de l'ordinateur

A l'origine j'ai donc cette table

"code matériel" "libellé" "ancienne valeur" "nouvelle valeur" "date de
l'action"
512 utilisateur Dupond Martin 02/01/2005
512 localisation Paris Rouen 02/01/2005
512 date du mouvement 30/11/04 2/01/2005 02/01/2005
749 utilisateur Germain Lartigue 14/01/2005
749 localisation Quimper Lille 14/01/2005
749 date du mouvement 24/09/04 14/01/2005 14/01/2005

Le souhait est de créer cette table qui regroupe pour un "code matériel"
avec une "date de l'action" identique tous l'historique du mouvement

"code matériel"
"utilisateur anc"
"utilisateur nouv"
"localisation anc"
"localisation nouv"
"date de mouvement anc"
"date de mouvement nouv"
"date de l'action"

Ce qui devra doner la table suivante

"code matériel" "utilisateur anc" "utilisateur nouv" "localisation anc"
"localisation nouv" "date de mouvement anc" "date de mouvement nouv" "date de
l'action"
512 Dupond Martin Paris Rouen 30/11/2004 02/01/2005 02/012005
749 Germain Lartigue Quimper Lille 24/11/2004 14/01/2005 14/01/2005

Attention un code matériel peux avoir plusieurs plusieurs mouvements le même
jours (Date de l'ation change)

J'espere que mon explication est claire
Je ne connais rien au VBA
Je souhaite plutôt une solution en mode requete
Si une personne vient à m'aider, si possible des commentaires le but et de
pouvoir comprendre et de l'appliquer à d'autre sujet.
Actuellement je sais réaliser des requetes simple pas beaucoup plus.


Merci à celui ou celle qui trouvera du temps à consacrer à ca sujet.

7 réponses

Avatar
Gafish
Bonjour,

Le plus simple si tu veux tout faire par requêtes, c'est de créer trois
requêtes :
- une requête ajout, avec comme table source ton ancienne table et comme
destination ta nouvelle, et dans les critères tu ne prends qu'utilisateur
comme libellé. Tu vas donc ajouter que pour les champs :
"code matériel"
"utilisateur anc"
"utilisateur nouv"
- Une requête mise à jour où tu prendras en critère de libellé la
localisation, tu lieras ta nouvelle table et ton ancienne par le code. Tu
mettras ainsi à jour les champs
"localisation anc"
"localisation nouv"
- Et sur le même principe une autre requête mise à jour qui s'occupera des
champs :
"date de mouvement anc"
"date de mouvement nouv"
"date de l'action"

Par contre quand tu dis que tu peux avoir plusieurs mouvements le même jour,
il faut voir si la structure de ta table est bien pensée. Actuellement tu
fais quoi ? Tu écrases les anciennes valeurs ?

Arnaud

"Richard" a écrit dans le message news:

Bonjour.

Voici mon probléme qui est trop complqué pour moi.
j'espere trouver auprés de vous une solution


Transposé des valeurs d'un champ d'une colonne en plusieurs colonnes

Une table d'historique contient le champs suivants

"code matériel"
"libellé"
"ancienne valeur"
"nouvelle valeur"
"date de l'action"

"Code matériel" et un identifiant unique du matériel
"libellé" conitient les valeurs suivantes: utilisateur,localisation, date
du

mouvement.
"Ancienne valeur" contient l'ancien: utilisateur, localisation ou date
mouvement
"Nouvelle valeur" contient le nouveau: utilisateur, localisation ou date
mouvement
"date de l'action" contient la date donnée par l'horloge de l'ordinateur

A l'origine j'ai donc cette table

"code matériel" "libellé" "ancienne valeur" "nouvelle valeur" "date de
l'action"
512 utilisateur Dupond Martin 02/01/2005
512 localisation Paris Rouen 02/01/2005
512 date du mouvement 30/11/04 2/01/2005 02/01/2005
749 utilisateur Germain Lartigue 14/01/2005
749 localisation Quimper Lille 14/01/2005
749 date du mouvement 24/09/04 14/01/2005 14/01/2005

Le souhait est de créer cette table qui regroupe pour un "code matériel"
avec une "date de l'action" identique tous l'historique du mouvement

"code matériel"
"utilisateur anc"
"utilisateur nouv"
"localisation anc"
"localisation nouv"
"date de mouvement anc"
"date de mouvement nouv"
"date de l'action"

Ce qui devra doner la table suivante

"code matériel" "utilisateur anc" "utilisateur nouv" "localisation anc"
"localisation nouv" "date de mouvement anc" "date de mouvement nouv" "date
de

l'action"
512 Dupond Martin Paris Rouen 30/11/2004 02/01/2005 02/012005
749 Germain Lartigue Quimper Lille 24/11/2004 14/01/2005 14/01/2005

Attention un code matériel peux avoir plusieurs plusieurs mouvements le
même

jours (Date de l'ation change)

J'espere que mon explication est claire
Je ne connais rien au VBA
Je souhaite plutôt une solution en mode requete
Si une personne vient à m'aider, si possible des commentaires le but et de
pouvoir comprendre et de l'appliquer à d'autre sujet.
Actuellement je sais réaliser des requetes simple pas beaucoup plus.


Merci à celui ou celle qui trouvera du temps à consacrer à ca sujet.


Avatar
Richard
Merci pour ce début de réponse.

je vais voir à réaliser ces requetes.

A ta question

il faut voir si la structure de ta table est bien pensée. Actuellement tu
fais quoi ?
Tu écrases les anciennes valeurs ?

Chaque action génére une nouvelle ligne.
ce qui peux donné pour un même materiel plusieurs actions pour un jour
exemple
512 passe de Pierre à Paul Paris à paris le matin et l'aprés midi passe de
Paul à Jean Paris Brest

"Gafish" wrote:

Bonjour,

Le plus simple si tu veux tout faire par requêtes, c'est de créer trois
requêtes :
- une requête ajout, avec comme table source ton ancienne table et comme
destination ta nouvelle, et dans les critères tu ne prends qu'utilisateur
comme libellé. Tu vas donc ajouter que pour les champs :
"code matériel"
"utilisateur anc"
"utilisateur nouv"
- Une requête mise à jour où tu prendras en critère de libellé la
localisation, tu lieras ta nouvelle table et ton ancienne par le code. Tu
mettras ainsi à jour les champs
"localisation anc"
"localisation nouv"
- Et sur le même principe une autre requête mise à jour qui s'occupera des
champs :
"date de mouvement anc"
"date de mouvement nouv"
"date de l'action"

Par contre quand tu dis que tu peux avoir plusieurs mouvements le même jour,
il faut voir si la structure de ta table est bien pensée. Actuellement tu
fais quoi ? Tu écrases les anciennes valeurs ?

Arnaud

"Richard" a écrit dans le message news:

Bonjour.

Voici mon probléme qui est trop complqué pour moi.
j'espere trouver auprés de vous une solution


Transposé des valeurs d'un champ d'une colonne en plusieurs colonnes

Une table d'historique contient le champs suivants

"code matériel"
"libellé"
"ancienne valeur"
"nouvelle valeur"
"date de l'action"

"Code matériel" et un identifiant unique du matériel
"libellé" conitient les valeurs suivantes: utilisateur,localisation, date
du

mouvement.
"Ancienne valeur" contient l'ancien: utilisateur, localisation ou date
mouvement
"Nouvelle valeur" contient le nouveau: utilisateur, localisation ou date
mouvement
"date de l'action" contient la date donnée par l'horloge de l'ordinateur

A l'origine j'ai donc cette table

"code matériel" "libellé" "ancienne valeur" "nouvelle valeur" "date de
l'action"
512 utilisateur Dupond Martin 02/01/2005
512 localisation Paris Rouen 02/01/2005
512 date du mouvement 30/11/04 2/01/2005 02/01/2005
749 utilisateur Germain Lartigue 14/01/2005
749 localisation Quimper Lille 14/01/2005
749 date du mouvement 24/09/04 14/01/2005 14/01/2005

Le souhait est de créer cette table qui regroupe pour un "code matériel"
avec une "date de l'action" identique tous l'historique du mouvement

"code matériel"
"utilisateur anc"
"utilisateur nouv"
"localisation anc"
"localisation nouv"
"date de mouvement anc"
"date de mouvement nouv"
"date de l'action"

Ce qui devra doner la table suivante

"code matériel" "utilisateur anc" "utilisateur nouv" "localisation anc"
"localisation nouv" "date de mouvement anc" "date de mouvement nouv" "date
de

l'action"
512 Dupond Martin Paris Rouen 30/11/2004 02/01/2005 02/012005
749 Germain Lartigue Quimper Lille 24/11/2004 14/01/2005 14/01/2005

Attention un code matériel peux avoir plusieurs plusieurs mouvements le
même

jours (Date de l'ation change)

J'espere que mon explication est claire
Je ne connais rien au VBA
Je souhaite plutôt une solution en mode requete
Si une personne vient à m'aider, si possible des commentaires le but et de
pouvoir comprendre et de l'appliquer à d'autre sujet.
Actuellement je sais réaliser des requetes simple pas beaucoup plus.


Merci à celui ou celle qui trouvera du temps à consacrer à ca sujet.







Avatar
Gafish
Donc c'est embêtant car au moins que je me trompe tu n'as rien qui groupe
les enregistrements qui doivent aller ensemble non ? Car le code 512, on
peut le retrouver dans plusieurs groupes ?

"Richard" a écrit dans le message news:

Merci pour ce début de réponse.

je vais voir à réaliser ces requetes.

A ta question

il faut voir si la structure de ta table est bien pensée. Actuellement tu
fais quoi ?
Tu écrases les anciennes valeurs ?

Chaque action génére une nouvelle ligne.
ce qui peux donné pour un même materiel plusieurs actions pour un jour
exemple
512 passe de Pierre à Paul Paris à paris le matin et l'aprés midi passe
de

Paul à Jean Paris Brest

"Gafish" wrote:

Bonjour,

Le plus simple si tu veux tout faire par requêtes, c'est de créer trois
requêtes :
- une requête ajout, avec comme table source ton ancienne table et comme
destination ta nouvelle, et dans les critères tu ne prends
qu'utilisateur


comme libellé. Tu vas donc ajouter que pour les champs :
"code matériel"
"utilisateur anc"
"utilisateur nouv"
- Une requête mise à jour où tu prendras en critère de libellé la
localisation, tu lieras ta nouvelle table et ton ancienne par le code.
Tu


mettras ainsi à jour les champs
"localisation anc"
"localisation nouv"
- Et sur le même principe une autre requête mise à jour qui s'occupera
des


champs :
"date de mouvement anc"
"date de mouvement nouv"
"date de l'action"

Par contre quand tu dis que tu peux avoir plusieurs mouvements le même
jour,


il faut voir si la structure de ta table est bien pensée. Actuellement
tu


fais quoi ? Tu écrases les anciennes valeurs ?

Arnaud

"Richard" a écrit dans le message
news:



Bonjour.

Voici mon probléme qui est trop complqué pour moi.
j'espere trouver auprés de vous une solution


Transposé des valeurs d'un champ d'une colonne en plusieurs colonnes

Une table d'historique contient le champs suivants

"code matériel"
"libellé"
"ancienne valeur"
"nouvelle valeur"
"date de l'action"

"Code matériel" et un identifiant unique du matériel
"libellé" conitient les valeurs suivantes: utilisateur,localisation,
date



du
mouvement.
"Ancienne valeur" contient l'ancien: utilisateur, localisation ou date
mouvement
"Nouvelle valeur" contient le nouveau: utilisateur, localisation ou
date



mouvement
"date de l'action" contient la date donnée par l'horloge de
l'ordinateur




A l'origine j'ai donc cette table

"code matériel" "libellé" "ancienne valeur" "nouvelle valeur" "date de
l'action"
512 utilisateur Dupond Martin 02/01/2005
512 localisation Paris Rouen 02/01/2005
512 date du mouvement 30/11/04 2/01/2005 02/01/2005
749 utilisateur Germain Lartigue 14/01/2005
749 localisation Quimper Lille 14/01/2005
749 date du mouvement 24/09/04 14/01/2005 14/01/2005

Le souhait est de créer cette table qui regroupe pour un "code
matériel"



avec une "date de l'action" identique tous l'historique du mouvement

"code matériel"
"utilisateur anc"
"utilisateur nouv"
"localisation anc"
"localisation nouv"
"date de mouvement anc"
"date de mouvement nouv"
"date de l'action"

Ce qui devra doner la table suivante

"code matériel" "utilisateur anc" "utilisateur nouv" "localisation
anc"



"localisation nouv" "date de mouvement anc" "date de mouvement nouv"
"date



de
l'action"
512 Dupond Martin Paris Rouen 30/11/2004 02/01/2005 02/012005
749 Germain Lartigue Quimper Lille 24/11/2004 14/01/2005 14/01/2005

Attention un code matériel peux avoir plusieurs plusieurs mouvements
le



même
jours (Date de l'ation change)

J'espere que mon explication est claire
Je ne connais rien au VBA
Je souhaite plutôt une solution en mode requete
Si une personne vient à m'aider, si possible des commentaires le but
et de



pouvoir comprendre et de l'appliquer à d'autre sujet.
Actuellement je sais réaliser des requetes simple pas beaucoup plus.


Merci à celui ou celle qui trouvera du temps à consacrer à ca sujet.









Avatar
Richard
Si peux etre le champ "code matériel" plus le champ "date de l'action"

J'ai réalisé la premiere requete facile

Par contre je bute sur la seconde je ne vois pas comment demandé l'ecriture
d'un champ d'une table dans une autre table avec en plus la relaion avec le
"code matériel"

Je comprends vite par contre il faut m'expliquer longtemps,simplement et
dans le détail.

"Gafish" wrote:

Donc c'est embêtant car au moins que je me trompe tu n'as rien qui groupe
les enregistrements qui doivent aller ensemble non ? Car le code 512, on
peut le retrouver dans plusieurs groupes ?

"Richard" a écrit dans le message news:

Merci pour ce début de réponse.

je vais voir à réaliser ces requetes.

A ta question

il faut voir si la structure de ta table est bien pensée. Actuellement tu
fais quoi ?
Tu écrases les anciennes valeurs ?

Chaque action génére une nouvelle ligne.
ce qui peux donné pour un même materiel plusieurs actions pour un jour
exemple
512 passe de Pierre à Paul Paris à paris le matin et l'aprés midi passe
de

Paul à Jean Paris Brest

"Gafish" wrote:

Bonjour,

Le plus simple si tu veux tout faire par requêtes, c'est de créer trois
requêtes :
- une requête ajout, avec comme table source ton ancienne table et comme
destination ta nouvelle, et dans les critères tu ne prends
qu'utilisateur


comme libellé. Tu vas donc ajouter que pour les champs :
"code matériel"
"utilisateur anc"
"utilisateur nouv"
- Une requête mise à jour où tu prendras en critère de libellé la
localisation, tu lieras ta nouvelle table et ton ancienne par le code.
Tu


mettras ainsi à jour les champs
"localisation anc"
"localisation nouv"
- Et sur le même principe une autre requête mise à jour qui s'occupera
des


champs :
"date de mouvement anc"
"date de mouvement nouv"
"date de l'action"

Par contre quand tu dis que tu peux avoir plusieurs mouvements le même
jour,


il faut voir si la structure de ta table est bien pensée. Actuellement
tu


fais quoi ? Tu écrases les anciennes valeurs ?

Arnaud

"Richard" a écrit dans le message
news:



Bonjour.

Voici mon probléme qui est trop complqué pour moi.
j'espere trouver auprés de vous une solution


Transposé des valeurs d'un champ d'une colonne en plusieurs colonnes

Une table d'historique contient le champs suivants

"code matériel"
"libellé"
"ancienne valeur"
"nouvelle valeur"
"date de l'action"

"Code matériel" et un identifiant unique du matériel
"libellé" conitient les valeurs suivantes: utilisateur,localisation,
date



du
mouvement.
"Ancienne valeur" contient l'ancien: utilisateur, localisation ou date
mouvement
"Nouvelle valeur" contient le nouveau: utilisateur, localisation ou
date



mouvement
"date de l'action" contient la date donnée par l'horloge de
l'ordinateur




A l'origine j'ai donc cette table

"code matériel" "libellé" "ancienne valeur" "nouvelle valeur" "date de
l'action"
512 utilisateur Dupond Martin 02/01/2005
512 localisation Paris Rouen 02/01/2005
512 date du mouvement 30/11/04 2/01/2005 02/01/2005
749 utilisateur Germain Lartigue 14/01/2005
749 localisation Quimper Lille 14/01/2005
749 date du mouvement 24/09/04 14/01/2005 14/01/2005

Le souhait est de créer cette table qui regroupe pour un "code
matériel"



avec une "date de l'action" identique tous l'historique du mouvement

"code matériel"
"utilisateur anc"
"utilisateur nouv"
"localisation anc"
"localisation nouv"
"date de mouvement anc"
"date de mouvement nouv"
"date de l'action"

Ce qui devra doner la table suivante

"code matériel" "utilisateur anc" "utilisateur nouv" "localisation
anc"



"localisation nouv" "date de mouvement anc" "date de mouvement nouv"
"date



de
l'action"
512 Dupond Martin Paris Rouen 30/11/2004 02/01/2005 02/012005
749 Germain Lartigue Quimper Lille 24/11/2004 14/01/2005 14/01/2005

Attention un code matériel peux avoir plusieurs plusieurs mouvements
le



même
jours (Date de l'ation change)

J'espere que mon explication est claire
Je ne connais rien au VBA
Je souhaite plutôt une solution en mode requete
Si une personne vient à m'aider, si possible des commentaires le but
et de



pouvoir comprendre et de l'appliquer à d'autre sujet.
Actuellement je sais réaliser des requetes simple pas beaucoup plus.


Merci à celui ou celle qui trouvera du temps à consacrer à ca sujet.














Avatar
Gafish
Dans la deuxième, il faut que tu ajoutes tes deux tables. Tu fais les
jointures entre elles avec le code et la date. Tu transformes ta requête en
requête "mise à jour". Tu sélectionnes le champ à mettre à jour, et dans la
zone mise à jour tu entres le nom du champ qui contient l'information que tu
veux recopier

"Richard" a écrit dans le message news:

Si peux etre le champ "code matériel" plus le champ "date de l'action"

J'ai réalisé la premiere requete facile

Par contre je bute sur la seconde je ne vois pas comment demandé
l'ecriture

d'un champ d'une table dans une autre table avec en plus la relaion avec
le

"code matériel"

Je comprends vite par contre il faut m'expliquer longtemps,simplement et
dans le détail.

"Gafish" wrote:

Donc c'est embêtant car au moins que je me trompe tu n'as rien qui
groupe


les enregistrements qui doivent aller ensemble non ? Car le code 512, on
peut le retrouver dans plusieurs groupes ?

"Richard" a écrit dans le message
news:



Merci pour ce début de réponse.

je vais voir à réaliser ces requetes.

A ta question

il faut voir si la structure de ta table est bien pensée. Actuellement
tu



fais quoi ?
Tu écrases les anciennes valeurs ?

Chaque action génére une nouvelle ligne.
ce qui peux donné pour un même materiel plusieurs actions pour un jour
exemple
512 passe de Pierre à Paul Paris à paris le matin et l'aprés midi
passe



de
Paul à Jean Paris Brest

"Gafish" wrote:

Bonjour,

Le plus simple si tu veux tout faire par requêtes, c'est de créer
trois




requêtes :
- une requête ajout, avec comme table source ton ancienne table et
comme




destination ta nouvelle, et dans les critères tu ne prends
qu'utilisateur


comme libellé. Tu vas donc ajouter que pour les champs :
"code matériel"
"utilisateur anc"
"utilisateur nouv"
- Une requête mise à jour où tu prendras en critère de libellé la
localisation, tu lieras ta nouvelle table et ton ancienne par le
code.




Tu
mettras ainsi à jour les champs
"localisation anc"
"localisation nouv"
- Et sur le même principe une autre requête mise à jour qui
s'occupera




des
champs :
"date de mouvement anc"
"date de mouvement nouv"
"date de l'action"

Par contre quand tu dis que tu peux avoir plusieurs mouvements le
même




jour,
il faut voir si la structure de ta table est bien pensée.
Actuellement




tu
fais quoi ? Tu écrases les anciennes valeurs ?

Arnaud

"Richard" a écrit dans le
message




news:

Bonjour.

Voici mon probléme qui est trop complqué pour moi.
j'espere trouver auprés de vous une solution


Transposé des valeurs d'un champ d'une colonne en plusieurs
colonnes






Une table d'historique contient le champs suivants

"code matériel"
"libellé"
"ancienne valeur"
"nouvelle valeur"
"date de l'action"

"Code matériel" et un identifiant unique du matériel
"libellé" conitient les valeurs suivantes:
utilisateur,localisation,





date
du
mouvement.
"Ancienne valeur" contient l'ancien: utilisateur, localisation ou
date





mouvement
"Nouvelle valeur" contient le nouveau: utilisateur, localisation
ou





date
mouvement
"date de l'action" contient la date donnée par l'horloge de
l'ordinateur




A l'origine j'ai donc cette table

"code matériel" "libellé" "ancienne valeur" "nouvelle valeur"
"date de





l'action"
512 utilisateur Dupond Martin 02/01/2005
512 localisation Paris Rouen 02/01/2005
512 date du mouvement 30/11/04 2/01/2005 02/01/2005
749 utilisateur Germain Lartigue 14/01/2005
749 localisation Quimper Lille 14/01/2005
749 date du mouvement 24/09/04 14/01/2005 14/01/2005

Le souhait est de créer cette table qui regroupe pour un "code
matériel"



avec une "date de l'action" identique tous l'historique du
mouvement






"code matériel"
"utilisateur anc"
"utilisateur nouv"
"localisation anc"
"localisation nouv"
"date de mouvement anc"
"date de mouvement nouv"
"date de l'action"

Ce qui devra doner la table suivante

"code matériel" "utilisateur anc" "utilisateur nouv" "localisation
anc"



"localisation nouv" "date de mouvement anc" "date de mouvement
nouv"





"date
de
l'action"
512 Dupond Martin Paris Rouen 30/11/2004 02/01/2005 02/012005
749 Germain Lartigue Quimper Lille 24/11/2004 14/01/2005
14/01/2005






Attention un code matériel peux avoir plusieurs plusieurs
mouvements





le
même
jours (Date de l'ation change)

J'espere que mon explication est claire
Je ne connais rien au VBA
Je souhaite plutôt une solution en mode requete
Si une personne vient à m'aider, si possible des commentaires le
but





et de
pouvoir comprendre et de l'appliquer à d'autre sujet.
Actuellement je sais réaliser des requetes simple pas beaucoup
plus.







Merci à celui ou celle qui trouvera du temps à consacrer à ca
sujet.




















Avatar
Richard
Bonjour

Je pense avoir fait ce que tu ma dit
Le résultat n'ai pas bon, j'ai certainement une erreur dans ma requete par
contre laquelle ???

*Table d'origine
code matériel
libellé
ancienne valeur
nouvelle valeur
date de l'action

*Nouvelle table"

code matériel
utilisateur anc
utilisateur nouv
localisation anc
localisation nouv
date de mouvement anc
date de mouvement nouv
date de l'action
Creation de la requete

selection des tables "Table d'origine" et "Nouvelle table"
J'ai fait la jointure type1 sur le champ "code matériel" et "code matériel"

dans la zoe requete pour:

Champ: localisation anc
Table : Nouvelle table
Mise à jour : [mouv]![ANCIENNE_VALEUR]

pour Mise à jour j'ai fait plusieurs tests avec les valeurs suivants
[ANCIENNE_VALEUR]
(ANCIENNE_VALEUR)


si je lance la requete j'ai un champ vide?

je penche vers une erreur de syntaxe . Parcontre laquelle

Donc vue ce résultat, j'ai toujour besoin d'aide.



"Gafish" wrote:

Dans la deuxième, il faut que tu ajoutes tes deux tables. Tu fais les
jointures entre elles avec le code et la date. Tu transformes ta requête en
requête "mise à jour". Tu sélectionnes le champ à mettre à jour, et dans la
zone mise à jour tu entres le nom du champ qui contient l'information que tu
veux recopier

"Richard" a écrit dans le message news:

Si peux etre le champ "code matériel" plus le champ "date de l'action"

J'ai réalisé la premiere requete facile

Par contre je bute sur la seconde je ne vois pas comment demandé
l'ecriture

d'un champ d'une table dans une autre table avec en plus la relaion avec
le

"code matériel"

Je comprends vite par contre il faut m'expliquer longtemps,simplement et
dans le détail.

"Gafish" wrote:

Donc c'est embêtant car au moins que je me trompe tu n'as rien qui
groupe


les enregistrements qui doivent aller ensemble non ? Car le code 512, on
peut le retrouver dans plusieurs groupes ?

"Richard" a écrit dans le message
news:



Merci pour ce début de réponse.

je vais voir à réaliser ces requetes.

A ta question

il faut voir si la structure de ta table est bien pensée. Actuellement
tu



fais quoi ?
Tu écrases les anciennes valeurs ?

Chaque action génére une nouvelle ligne.
ce qui peux donné pour un même materiel plusieurs actions pour un jour
exemple
512 passe de Pierre à Paul Paris à paris le matin et l'aprés midi
passe



de
Paul à Jean Paris Brest

"Gafish" wrote:

Bonjour,

Le plus simple si tu veux tout faire par requêtes, c'est de créer
trois




requêtes :
- une requête ajout, avec comme table source ton ancienne table et
comme




destination ta nouvelle, et dans les critères tu ne prends
qu'utilisateur


comme libellé. Tu vas donc ajouter que pour les champs :
"code matériel"
"utilisateur anc"
"utilisateur nouv"
- Une requête mise à jour où tu prendras en critère de libellé la
localisation, tu lieras ta nouvelle table et ton ancienne par le
code.




Tu
mettras ainsi à jour les champs
"localisation anc"
"localisation nouv"
- Et sur le même principe une autre requête mise à jour qui
s'occupera




des
champs :
"date de mouvement anc"
"date de mouvement nouv"
"date de l'action"

Par contre quand tu dis que tu peux avoir plusieurs mouvements le
même




jour,
il faut voir si la structure de ta table est bien pensée.
Actuellement




tu
fais quoi ? Tu écrases les anciennes valeurs ?

Arnaud

"Richard" a écrit dans le
message




news:

Bonjour.

Voici mon probléme qui est trop complqué pour moi.
j'espere trouver auprés de vous une solution


Transposé des valeurs d'un champ d'une colonne en plusieurs
colonnes






Une table d'historique contient le champs suivants

"code matériel"
"libellé"
"ancienne valeur"
"nouvelle valeur"
"date de l'action"

"Code matériel" et un identifiant unique du matériel
"libellé" conitient les valeurs suivantes:
utilisateur,localisation,





date
du
mouvement.
"Ancienne valeur" contient l'ancien: utilisateur, localisation ou
date





mouvement
"Nouvelle valeur" contient le nouveau: utilisateur, localisation
ou





date
mouvement
"date de l'action" contient la date donnée par l'horloge de
l'ordinateur




A l'origine j'ai donc cette table

"code matériel" "libellé" "ancienne valeur" "nouvelle valeur"
"date de





l'action"
512 utilisateur Dupond Martin 02/01/2005
512 localisation Paris Rouen 02/01/2005
512 date du mouvement 30/11/04 2/01/2005 02/01/2005
749 utilisateur Germain Lartigue 14/01/2005
749 localisation Quimper Lille 14/01/2005
749 date du mouvement 24/09/04 14/01/2005 14/01/2005

Le souhait est de créer cette table qui regroupe pour un "code
matériel"



avec une "date de l'action" identique tous l'historique du
mouvement






"code matériel"
"utilisateur anc"
"utilisateur nouv"
"localisation anc"
"localisation nouv"
"date de mouvement anc"
"date de mouvement nouv"
"date de l'action"

Ce qui devra doner la table suivante

"code matériel" "utilisateur anc" "utilisateur nouv" "localisation
anc"



"localisation nouv" "date de mouvement anc" "date de mouvement
nouv"





"date
de
l'action"
512 Dupond Martin Paris Rouen 30/11/2004 02/01/2005 02/012005
749 Germain Lartigue Quimper Lille 24/11/2004 14/01/2005
14/01/2005






Attention un code matériel peux avoir plusieurs plusieurs
mouvements





le
même
jours (Date de l'ation change)

J'espere que mon explication est claire
Je ne connais rien au VBA
Je souhaite plutôt une solution en mode requete
Si une personne vient à m'aider, si possible des commentaires le
but





et de
pouvoir comprendre et de l'appliquer à d'autre sujet.
Actuellement je sais réaliser des requetes simple pas beaucoup
plus.







Merci à celui ou celle qui trouvera du temps à consacrer à ca
sujet.

























Avatar
Gafish
A mon avis ton problème est surtout lié au fait que tu n'as pas de bonne
jointure possible, ton code materiel n'étant pas suffisant. Essaie de voir
si en rajoutant la date ca te crée une jointure correcte, sinon il faudra
bidouiller un champ en plus dans ton ancienne table pour grouper les
enregistrements, et pour ca en revanche j'ai peur que tu ne coupes pas au
vba.


"Richard" a écrit dans le message news:


Bonjour

Je pense avoir fait ce que tu ma dit
Le résultat n'ai pas bon, j'ai certainement une erreur dans ma requete par
contre laquelle ???

*Table d'origine
code matériel
libellé
ancienne valeur
nouvelle valeur
date de l'action

*Nouvelle table"

code matériel
utilisateur anc
utilisateur nouv
localisation anc
localisation nouv
date de mouvement anc
date de mouvement nouv
date de l'action
Creation de la requete

selection des tables "Table d'origine" et "Nouvelle table"
J'ai fait la jointure type1 sur le champ "code matériel" et "code
matériel"


dans la zoe requete pour:

Champ: localisation anc
Table : Nouvelle table
Mise à jour : [mouv]![ANCIENNE_VALEUR]

pour Mise à jour j'ai fait plusieurs tests avec les valeurs suivants
[ANCIENNE_VALEUR]
(ANCIENNE_VALEUR)


si je lance la requete j'ai un champ vide?

je penche vers une erreur de syntaxe . Parcontre laquelle

Donc vue ce résultat, j'ai toujour besoin d'aide.



"Gafish" wrote:

Dans la deuxième, il faut que tu ajoutes tes deux tables. Tu fais les
jointures entre elles avec le code et la date. Tu transformes ta requête
en


requête "mise à jour". Tu sélectionnes le champ à mettre à jour, et dans
la


zone mise à jour tu entres le nom du champ qui contient l'information
que tu


veux recopier

"Richard" a écrit dans le message
news:



Si peux etre le champ "code matériel" plus le champ "date de l'action"

J'ai réalisé la premiere requete facile

Par contre je bute sur la seconde je ne vois pas comment demandé
l'ecriture

d'un champ d'une table dans une autre table avec en plus la relaion
avec



le
"code matériel"

Je comprends vite par contre il faut m'expliquer longtemps,simplement
et



dans le détail.

"Gafish" wrote:

Donc c'est embêtant car au moins que je me trompe tu n'as rien qui
groupe


les enregistrements qui doivent aller ensemble non ? Car le code
512, on




peut le retrouver dans plusieurs groupes ?

"Richard" a écrit dans le
message




news:

Merci pour ce début de réponse.

je vais voir à réaliser ces requetes.

A ta question

il faut voir si la structure de ta table est bien pensée.
Actuellement





tu
fais quoi ?
Tu écrases les anciennes valeurs ?

Chaque action génére une nouvelle ligne.
ce qui peux donné pour un même materiel plusieurs actions pour un
jour





exemple
512 passe de Pierre à Paul Paris à paris le matin et l'aprés midi
passe



de
Paul à Jean Paris Brest

"Gafish" wrote:

Bonjour,

Le plus simple si tu veux tout faire par requêtes, c'est de
créer






trois
requêtes :
- une requête ajout, avec comme table source ton ancienne table
et






comme
destination ta nouvelle, et dans les critères tu ne prends
qu'utilisateur


comme libellé. Tu vas donc ajouter que pour les champs :
"code matériel"
"utilisateur anc"
"utilisateur nouv"
- Une requête mise à jour où tu prendras en critère de libellé
la






localisation, tu lieras ta nouvelle table et ton ancienne par le
code.




Tu
mettras ainsi à jour les champs
"localisation anc"
"localisation nouv"
- Et sur le même principe une autre requête mise à jour qui
s'occupera




des
champs :
"date de mouvement anc"
"date de mouvement nouv"
"date de l'action"

Par contre quand tu dis que tu peux avoir plusieurs mouvements
le






même
jour,
il faut voir si la structure de ta table est bien pensée.
Actuellement




tu
fais quoi ? Tu écrases les anciennes valeurs ?

Arnaud

"Richard" a écrit dans le
message




news:

Bonjour.

Voici mon probléme qui est trop complqué pour moi.
j'espere trouver auprés de vous une solution


Transposé des valeurs d'un champ d'une colonne en plusieurs
colonnes






Une table d'historique contient le champs suivants

"code matériel"
"libellé"
"ancienne valeur"
"nouvelle valeur"
"date de l'action"

"Code matériel" et un identifiant unique du matériel
"libellé" conitient les valeurs suivantes:
utilisateur,localisation,





date
du
mouvement.
"Ancienne valeur" contient l'ancien: utilisateur, localisation
ou







date
mouvement
"Nouvelle valeur" contient le nouveau: utilisateur,
localisation







ou
date
mouvement
"date de l'action" contient la date donnée par l'horloge de
l'ordinateur




A l'origine j'ai donc cette table

"code matériel" "libellé" "ancienne valeur" "nouvelle valeur"
"date de





l'action"
512 utilisateur Dupond Martin 02/01/2005
512 localisation Paris Rouen 02/01/2005
512 date du mouvement 30/11/04 2/01/2005 02/01/2005
749 utilisateur Germain Lartigue 14/01/2005
749 localisation Quimper Lille 14/01/2005
749 date du mouvement 24/09/04 14/01/2005 14/01/2005

Le souhait est de créer cette table qui regroupe pour un "code
matériel"



avec une "date de l'action" identique tous l'historique du
mouvement






"code matériel"
"utilisateur anc"
"utilisateur nouv"
"localisation anc"
"localisation nouv"
"date de mouvement anc"
"date de mouvement nouv"
"date de l'action"

Ce qui devra doner la table suivante

"code matériel" "utilisateur anc" "utilisateur nouv"
"localisation







anc"
"localisation nouv" "date de mouvement anc" "date de mouvement
nouv"





"date
de
l'action"
512 Dupond Martin Paris Rouen 30/11/2004 02/01/2005 02/012005
749 Germain Lartigue Quimper Lille 24/11/2004 14/01/2005
14/01/2005






Attention un code matériel peux avoir plusieurs plusieurs
mouvements





le
même
jours (Date de l'ation change)

J'espere que mon explication est claire
Je ne connais rien au VBA
Je souhaite plutôt une solution en mode requete
Si une personne vient à m'aider, si possible des commentaires
le







but
et de
pouvoir comprendre et de l'appliquer à d'autre sujet.
Actuellement je sais réaliser des requetes simple pas beaucoup
plus.







Merci à celui ou celle qui trouvera du temps à consacrer à ca
sujet.