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

Requête ou code VBA

11 réponses
Avatar
JMH
Bonjour
J'ai un fichier de ce style.
Il s'agit d'un fichier des modifications effectuées dans un fichier Adresse.
Il ne contient que les valeurs des champs qui ont été modifiés.

Date NoClient NomClient Adresse Ville
etc...
01.01.07 432 Albert Rue xz Lille
02.01.07 432 Rte du Lac
03.01.07 432
Paris
04.01.07 432 Rte abc

Je dois créer un fichier qui contiendra pour chaque compte que les dernières
modifications effectuées pour chaque champe.
Dans l'exemple ci-dessus, je devrais trouver:
Date NoClient NomClient Adresse Ville
etc...
01.01.07 432 Albert Rue abc Paris

A noter que mon fichier réel contient environ 20 champs.

Comment je dois procéder pour arriver à ce résultat. Requête (mais comment?)
ou code VBA avec un recordset Entrée et un Sortie afin de mettre à "plat"
chaque client.

Merci d'avance pour vos réponses.

Jean-Michel H.

10 réponses

1 2
Avatar
SylCap
Bon,

A tester,

Avec une requete regroupement,
Sur le champ date tu prends le MAX ou MIN(c'est ton exemple)
sur les champs adresses villes (les champs modifiés)tu prends DERNIER.

J'espère que ça collera.

:-)




Bonjour
J'ai un fichier de ce style.
Il s'agit d'un fichier des modifications effectuées dans un fichier Adresse.
Il ne contient que les valeurs des champs qui ont été modifiés.

Date NoClient NomClient Adresse Ville
etc...
01.01.07 432 Albert Rue xz Lille
02.01.07 432 Rte du Lac
03.01.07 432
Paris
04.01.07 432 Rte abc

Je dois créer un fichier qui contiendra pour chaque compte que les dernières
modifications effectuées pour chaque champe.
Dans l'exemple ci-dessus, je devrais trouver:
Date NoClient NomClient Adresse Ville
etc...
01.01.07 432 Albert Rue abc Paris

A noter que mon fichier réel contient environ 20 champs.

Comment je dois procéder pour arriver à ce résultat. Requête (mais comment?)
ou code VBA avec un recordset Entrée et un Sortie afin de mettre à "plat"
chaque client.

Merci d'avance pour vos réponses.

Jean-Michel H.





Avatar
ze Titi
Bonjour JMH

Une requête avec un TOP devrait suffire mais je ne suis plus sûr de la
syntaxe...

SELECT TOP 1 *
FROM taTable
GROUP BY NoClient
ORDER BY Date DESC

Dans ton message du mardi
Bonjour
J'ai un fichier de ce style.
Il s'agit d'un fichier des modifications effectuées dans un fichier Adresse.
Il ne contient que les valeurs des champs qui ont été modifiés.

Date NoClient NomClient Adresse Ville etc...
01.01.07 432 Albert Rue xz Lille
02.01.07 432 Rte du Lac
03.01.07 432 Paris
04.01.07 432 Rte abc

Je dois créer un fichier qui contiendra pour chaque compte que les dernières
modifications effectuées pour chaque champe.
Dans l'exemple ci-dessus, je devrais trouver:
Date NoClient NomClient Adresse Ville etc...
01.01.07 432 Albert Rue abc Paris

A noter que mon fichier réel contient environ 20 champs.

Comment je dois procéder pour arriver à ce résultat. Requête (mais comment?)
ou code VBA avec un recordset Entrée et un Sortie afin de mettre à "plat"
chaque client.

Merci d'avance pour vos réponses.

Jean-Michel H.


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info

Avatar
Eric
Bonjour,

Quelques éclaircissements:
1-Qu'entends-tu par fichier ? Une table ou un fichier de données (genre
Donnees.txt) car le traitement ne sera pas le même. Le fichier est-il
attaché/importé à/dans la bd ? Ou ça n'a rien à voir. Le but étant de
créer un nouveau fichier avec une seule ligne par compte.

2-Signification de la date dans ton résultat final:
01.01.07 432 Albert Rue abc Paris


Sur quel critère doit-on considérer qu'il faut retenir le 01.01.07 ?

En fonction, une technique ou une autre.


Bonjour
J'ai un fichier de ce style.
Il s'agit d'un fichier des modifications effectuées dans un fichier Adresse.
Il ne contient que les valeurs des champs qui ont été modifiés.

Date NoClient NomClient Adresse Ville
etc...
01.01.07 432 Albert Rue xz Lille
02.01.07 432 Rte du Lac
03.01.07 432
Paris
04.01.07 432 Rte abc

Je dois créer un fichier qui contiendra pour chaque compte que les dernières
modifications effectuées pour chaque champe.
Dans l'exemple ci-dessus, je devrais trouver:
Date NoClient NomClient Adresse Ville
etc...
01.01.07 432 Albert Rue abc Paris

A noter que mon fichier réel contient environ 20 champs.

Comment je dois procéder pour arriver à ce résultat. Requête (mais comment?)
ou code VBA avec un recordset Entrée et un Sortie afin de mettre à "plat"
chaque client.

Merci d'avance pour vos réponses.

Jean-Michel H.




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
JMH
OK, je précise
J'ai une table d'adresses
Dans un formulaire: A chaque modif d'un champ je crée un record dans une
table que j'appelerais Log. (ce record hormis le NoClient ne contient que la
valeur des champ modifiés)
Je suis appellé à transmettre les informations de la table Log régulièrement
à un tiers.
Mais, si on a dans cet intervalle de temps été modifier plusieurs fois la
même adresse, j'aimerai retrouver qu'un seul record de Log avec toutes les
modif. apportées.
Pour faire plus simple, c'est comme tu dis à la fin de ta phrase.
Je vais créer une table qui contiendra pour chaque compte une seule ligne,
mais avec pour chaque champs sa donnée la plus récente.
Ouf....
Merci d'avance.



Bonjour,

Quelques éclaircissements:
1-Qu'entends-tu par fichier ? Une table ou un fichier de données (genre
Donnees.txt) car le traitement ne sera pas le même. Le fichier est-il
attaché/importé à/dans la bd ? Ou ça n'a rien à voir. Le but étant de
créer un nouveau fichier avec une seule ligne par compte.

2-Signification de la date dans ton résultat final:
01.01.07 432 Albert Rue abc
Paris


Sur quel critère doit-on considérer qu'il faut retenir le 01.01.07 ?

En fonction, une technique ou une autre.


Bonjour
J'ai un fichier de ce style.
Il s'agit d'un fichier des modifications effectuées dans un fichier
Adresse. Il ne contient que les valeurs des champs qui ont été modifiés.

Date NoClient NomClient Adresse Ville
etc...
01.01.07 432 Albert Rue xz
Lille
02.01.07 432 Rte du Lac
03.01.07 432 Paris
04.01.07 432 Rte abc

Je dois créer un fichier qui contiendra pour chaque compte que les
dernières modifications effectuées pour chaque champe.
Dans l'exemple ci-dessus, je devrais trouver:
Date NoClient NomClient Adresse Ville
etc...
01.01.07 432 Albert Rue abc
Paris

A noter que mon fichier réel contient environ 20 champs.

Comment je dois procéder pour arriver à ce résultat. Requête (mais
comment?) ou code VBA avec un recordset Entrée et un Sortie afin de
mettre à "plat" chaque client.

Merci d'avance pour vos réponses.

Jean-Michel H.




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
Bonsoir,

Le problème est résolu ?

OK, je précise
J'ai une table d'adresses
Dans un formulaire: A chaque modif d'un champ je crée un record dans une
table que j'appelerais Log. (ce record hormis le NoClient ne contient que la
valeur des champ modifiés)
Je suis appellé à transmettre les informations de la table Log régulièrement
à un tiers.
Mais, si on a dans cet intervalle de temps été modifier plusieurs fois la
même adresse, j'aimerai retrouver qu'un seul record de Log avec toutes les
modif. apportées.
Pour faire plus simple, c'est comme tu dis à la fin de ta phrase.
Je vais créer une table qui contiendra pour chaque compte une seule ligne,
mais avec pour chaque champs sa donnée la plus récente.
Ouf....
Merci d'avance.



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Willi2004
Salut JHM.
Voir ici pour une idée.
Pas parfait mais cela pourrait te donner des pistes.
http://cjoint.com/?cBvyR8HKP3
Avatar
JMH
Non non pas encore résolu.

Mais je m'y attelle.
A+

"Eric" a écrit dans le message de news:
%23gp%
Bonsoir,

Le problème est résolu ?

OK, je précise
J'ai une table d'adresses
Dans un formulaire: A chaque modif d'un champ je crée un record dans une
table que j'appelerais Log. (ce record hormis le NoClient ne contient que
la valeur des champ modifiés)
Je suis appellé à transmettre les informations de la table Log
régulièrement à un tiers.
Mais, si on a dans cet intervalle de temps été modifier plusieurs fois la
même adresse, j'aimerai retrouver qu'un seul record de Log avec toutes
les modif. apportées.
Pour faire plus simple, c'est comme tu dis à la fin de ta phrase.
Je vais créer une table qui contiendra pour chaque compte une seule
ligne, mais avec pour chaque champs sa donnée la plus récente.
Ouf....
Merci d'avance.



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Willi2004
J'ai essayé d'aménager un peu.
Oublie le premier lien et vois plutôt ici:
http://cjoint.com/?cBxHY12ne3
Avatar
JMH
Merci à toi pour ton exemple.


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

J'ai essayé d'aménager un peu.
Oublie le premier lien et vois plutôt ici:
http://cjoint.com/?cBxHY12ne3



Avatar
Eric
Bonjour,

Si tu veux conserver ta table Log initiale, c'est à dire contenant
toutes les modifs sur les adresses aux différentes dates, avec un peu de
SQL et du DAO, cela est faisable.
Un exemple simplifié ici : http://cjoint.com/?cCqat20xNF
La procédure crée la table Log Final la 1ere fois et stocke pour chaque
client une ligne avec toutes les modifs à la dernière date. Les fois
suivantes, la table est purgée des enregistrements antérieurs car je ne
sais pas comment tu gères la table Log initial.

A tester sur une table volumineuse car j'ai repris à quelque chose près
ton exemple. Si ça peut aider.

Non non pas encore résolu.

Mais je m'y attelle.
A+




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

1 2