Regrouper des enregistrements

Le
lampaul02
Bonjour,
Dans la base base Access de notre association , je crée une table contenant nos échanges avec nos adhérents
Exemple (je sépare ici les champs par un tiret )
DUPONT - 22 01 10- Appel
DUPONT - 23 01 10 - Réponse OK
DURAND
BERGER - 15 11 09 - Absent
BERGER - 20 12 09 - disponible
BERGER - 22 12 09 - Appel
BERGER - 23 12 09 - ok pour le 05 01

Je souhaite pour chaque adhérent faire un seul enregistrement contenat les 3 derniers échanges (0,1,2, 3 ) avec donc le résultat suivant

DUPONT - 23 01 10 - réponse ok - 22 01 10 - appel
DURAND
BERGER - 23 12 09 -OK pour le 05 janvier - 22 12 09 - Rappellera - 20 12 09 - disponible

J'ai essayé différentes pistes sans aucun résultat
Faut- il un peu de code que je pouurai adapter à notre cas - Lequel ?

Merci 1000 fois pour vos réponses à venir
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
3stone
Le #21058441
Salut,

lampaul02 wrote:
Bonjour,
Dans la base base Access de notre association , je crée une table
contenant nos échanges avec nos adhérents
Exemple (je sépare ici les champs par un tiret )
DUPONT - 22 01 10- Appel
DUPONT - 23 01 10 - Réponse OK
DURAND
BERGER - 15 11 09 - Absent
BERGER - 20 12 09 - disponible
BERGER - 22 12 09 - Appel
BERGER - 23 12 09 - ok pour le 05 01

Je souhaite pour chaque adhérent faire un seul enregistrement
contenat les 3 derniers échanges (0,1,2, 3 ) avec donc le résultat
suivant

DUPONT - 23 01 10 - réponse ok - 22 01 10 - appel
DURAND
BERGER - 23 12 09 -OK pour le 05 janvier - 22 12 09 - Rappellera -
20 12 09 - disponible

J'ai essayé différentes pistes sans aucun résultat
Faut- il un peu de code que je pouurai adapter à notre cas - Lequel ?

Merci 1000 fois pour vos réponses à venir




Si cela peut t'inspirer...

http://access.fr.free.fr/articles.php?lng=fr&pgE

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Michel__D
Le #21061991
Bonjour,

lampaul02 a écrit :
Bonjour,
Dans la base base Access de notre association , je crée une table contenant nos
échanges avec nos adhérents
Exemple (je sépare ici les champs par un tiret )
DUPONT - 22 01 10- Appel
DUPONT - 23 01 10 - Réponse OK
DURAND
BERGER - 15 11 09 - Absent
BERGER - 20 12 09 - disponible
BERGER - 22 12 09 - Appel
BERGER - 23 12 09 - ok pour le 05 01

Je souhaite pour chaque adhérent faire un seul enregistrement contenat les 3
derniers échanges (0,1,2, 3 ) avec donc le résultat suivant

DUPONT - 23 01 10 - réponse ok - 22 01 10 - appel
DURAND
BERGER - 23 12 09 -OK pour le 05 janvier - 22 12 09 - Rappellera - 20 12 09 -
disponible

J'ai essayé différentes pistes sans aucun résultat
Faut- il un peu de code que je pouurai adapter à notre cas - Lequel ?

Merci 1000 fois pour vos réponses à venir



Voici le SQL d'une requête d'analyse croisée sur la base d'une table
"LaTable" avec les champs :
IdEnr, IdAdherent, DateEchange, TexteEchange

TRANSFORM First(T.DateEchange) & " " & First(T.TexteEchange) AS Champ
SELECT T.IdAdherent
FROM LaTable AS T INNER JOIN
[SELECT T1.IdEnr, Count(T2.IdEnr) AS Compte
FROM LaTable AS T1 INNER JOIN LaTable AS T2
ON (T1.DateEchange <= T2.DateEchange) AND (T1.IdAdherent=T2.IdAdherent)
GROUP BY T1.IdEnr, T1.IdAdherent, T1.DateEchange HAVING
Count(T2.IdEnr)<=3]. AS R
ON T.IdEnr = R.IdEnr
GROUP BY T.IdAdherent
PIVOT "Champ " & (4-R.Compte);

A adapter bien sur.
lampaul02
Le #21095141
3stone a écrit le 27/01/2010 à 00h53 :
Salut,

lampaul02 wrote:
Bonjour,
Dans la base base Access de notre association , je crée une table
contenant nos échanges avec nos adhérents
Exemple (je sépare ici les champs par un tiret )
DUPONT - 22 01 10- Appel
DUPONT - 23 01 10 - Réponse OK
DURAND
BERGER - 15 11 09 - Absent
BERGER - 20 12 09 - disponible
BERGER - 22 12 09 - Appel
BERGER - 23 12 09 - ok pour le 05 01

Je souhaite pour chaque adhérent faire un seul enregistrement
contenat les 3 derniers échanges (0,1,2, 3 ) avec donc le
résultat
suivant

DUPONT - 23 01 10 - réponse ok - 22 01 10 - appel
DURAND
BERGER - 23 12 09 -OK pour le 05 janvier - 22 12 09 - Rappellera -
20 12 09 - disponible

J'ai essayé différentes pistes sans aucun résultat
Faut- il un peu de code que je pouurai adapter à notre cas - Lequel ?

Merci 1000 fois pour vos réponses à venir





Si cela peut t'inspirer...

http://access.fr.free.fr/articles.php?lng=fr&pgE

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)


Merci beaucoup
J'analyse cette information qui me donne une piste intéressante
lampaul02
Le #21095201
Michel__D a écrit le 27/01/2010 à 14h23 :
Bonjour,

lampaul02 a écrit :
Bonjour,
Dans la base base Access de notre association , je crée une table
contenant nos
échanges avec nos adhérents
Exemple (je sépare ici les champs par un tiret )
DUPONT - 22 01 10- Appel
DUPONT - 23 01 10 - Réponse OK
DURAND
BERGER - 15 11 09 - Absent
BERGER - 20 12 09 - disponible
BERGER - 22 12 09 - Appel
BERGER - 23 12 09 - ok pour le 05 01

Je souhaite pour chaque adhérent faire un seul enregistrement contenat
les 3
derniers échanges (0,1,2, 3 ) avec donc le résultat suivant

DUPONT - 23 01 10 - réponse ok - 22 01 10 - appel
DURAND
BERGER - 23 12 09 -OK pour le 05 janvier - 22 12 09 - Rappellera - 20 12 09 -
disponible

J'ai essayé différentes pistes sans aucun résultat
Faut- il un peu de code que je pouurai adapter à notre cas - Lequel ?

Merci 1000 fois pour vos réponses à venir




Voici le SQL d'une requête d'analyse croisée sur la base d'une
table
"LaTable" avec les champs :
IdEnr, IdAdherent, DateEchange, TexteEchange

TRANSFORM First(T.DateEchange) & " " & First(T.TexteEchange)
AS Champ
SELECT T.IdAdherent
FROM LaTable AS T INNER JOIN
[SELECT T1.IdEnr, Count(T2.IdEnr) AS Compte
FROM LaTable AS T1 INNER JOIN LaTable AS T2
ON (T1.DateEchange <= T2.DateEchange) AND (T1.IdAdherent=T2.IdAdherent)
GROUP BY T1.IdEnr, T1.IdAdherent, T1.DateEchange HAVING
Count(T2.IdEnr)<=3]. AS R
ON T.IdEnr = R.IdEnr
GROUP BY T.IdAdherent
PIVOT "Champ " & (4-R.Compte);

A adapter bien sur.


Merci
En fait je me perds dans la cascade de SELECT, INNER JOIN
Je vais devoir me la faire expliquer par quelqu'un de plus compétent
Merci
lampaul02
Le #21098831
3stone a écrit le 27/01/2010 à 00h53 :
Salut,

lampaul02 wrote:
Bonjour,
Dans la base base Access de notre association , je crée une table
contenant nos échanges avec nos adhérents
Exemple (je sépare ici les champs par un tiret )
DUPONT - 22 01 10- Appel
DUPONT - 23 01 10 - Réponse OK
DURAND
BERGER - 15 11 09 - Absent
BERGER - 20 12 09 - disponible
BERGER - 22 12 09 - Appel
BERGER - 23 12 09 - ok pour le 05 01

Je souhaite pour chaque adhérent faire un seul enregistrement
contenat les 3 derniers échanges (0,1,2, 3 ) avec donc le
résultat
suivant

DUPONT - 23 01 10 - réponse ok - 22 01 10 - appel
DURAND
BERGER - 23 12 09 -OK pour le 05 janvier - 22 12 09 - Rappellera -
20 12 09 - disponible

J'ai essayé différentes pistes sans aucun résultat
Faut- il un peu de code que je pouurai adapter à notre cas - Lequel ?

Merci 1000 fois pour vos réponses à venir





Si cela peut t'inspirer...

http://access.fr.free.fr/articles.php?lng=fr&pgE

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)


J'ai regardé ce code
Cela me va avec pas mal d"huile de coude pour l'adapter à notre cas
Merci
lampaul02
Le #21105491
lampaul02 a écrit le 31/01/2010 à 10h27 :
Michel__D a écrit le 27/01/2010 à 14h23 :
Bonjour,

lampaul02 a écrit :
Bonjour,
Dans la base base Access de notre association , je crée une table
contenant nos
échanges avec nos adhérents
Exemple (je sépare ici les champs par un tiret )
DUPONT - 22 01 10- Appel
DUPONT - 23 01 10 - Réponse OK
DURAND
BERGER - 15 11 09 - Absent
BERGER - 20 12 09 - disponible
BERGER - 22 12 09 - Appel
BERGER - 23 12 09 - ok pour le 05 01

Je souhaite pour chaque adhérent faire un seul enregistrement contenat
les 3
derniers échanges (0,1,2, 3 ) avec donc le résultat suivant

DUPONT - 23 01 10 - réponse ok - 22 01 10 - appel
DURAND
BERGER - 23 12 09 -OK pour le 05 janvier - 22 12 09 - Rappellera - 20 12 09
-
disponible

J'ai essayé différentes pistes sans aucun résultat
Faut- il un peu de code que je pouurai adapter à notre cas - Lequel ?

Merci 1000 fois pour vos réponses à venir





Voici le SQL d'une requête d'analyse croisée sur la base d'une
table
"LaTable" avec les champs :
IdEnr, IdAdherent, DateEchange, TexteEchange

TRANSFORM First(T.DateEchange) & " " & First(T.TexteEchange)
AS Champ
SELECT T.IdAdherent
FROM LaTable AS T INNER JOIN
[SELECT T1.IdEnr, Count(T2.IdEnr) AS Compte
FROM LaTable AS T1 INNER JOIN LaTable AS T2
ON (T1.DateEchange <= T2.DateEchange) AND (T1.IdAdherent=T2.IdAdherent)
GROUP BY T1.IdEnr, T1.IdAdherent, T1.DateEchange HAVING
Count(T2.IdEnr)<=3]. AS R
ON T.IdEnr = R.IdEnr
GROUP BY T.IdAdherent
PIVOT "Champ " & (4-R.Compte);

A adapter bien sur.



Merci
En fait je me perds dans la cascade de SELECT, INNER JOIN
Je vais devoir me la faire expliquer par quelqu'un de plus compétent
Merci


Nous sommes le 01 02 10
J'ai repris scrupuleusement je crois votre code
A l'enregistrement de la requête, sans une seule modif de ma part, access me dit
"Erreur de syntaxe dans la clause FROM"
Quelle est cette erreur de saisie dans le texte du code
A quoi correspond le [ devant SELECT?
Que veut dire 4-R.compte ?
Cordialement
JJ29
Publicité
Poster une réponse
Anonyme