ACCESS 2003 Extraire 1 contact par RS

Fermé
BIBI7979 Messages postés 4 Date d'inscription mercredi 18 avril 2012 Statut Membre Dernière intervention 20 avril 2012 - 18 avril 2012 à 10:57
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 - 20 avril 2012 à 21:19
Bonjour,

J'utilise ACCESS 2003 et ai fait une requêtre extrayant des clients ciblés (raison sociale, adresse complète, les contacts de chaque client). Je souhaiterais ne conserver que le premier contatc rencontré pour une raison sociale + adresse données.
Exemple :

ETS DURAND 8 Rue des rosiers 75 PARIS Monsieur DURAND
ETS DURAND 8 rue des rosiers 75 PARIS Monsieur MARTIN
ETS DURAND 8 rue des rosiers 75 PARIS Monsieur TARTANPION
Ets SERIN 7 rue des rosiers 69 LYON Monsieur SERIN
Ets POUSSIN 6 rue des rosiers 13 MARSEILLE Monsieur POUSSIN
Ets POUSSIN 6 rue des rosiers 13 MARSEILLE Madame MONS

Dans cet exemple, je souhaiterais seulement conserver ETS DURAND 8 Rue des rosiers 75 PARIS Monsieur DURAND, Ets SERIN 7 rue des rosiers 69 LYON Monsieur SERIN et Ets POUSSIN 6 rue des rosiers 13 Marseille Monsieur POUSSIN.

Y a-t-il une solution simple et rapide pour y arriver,sachant que mon extraction représente à l'origine environ 30000 lignes ? Merci pour votre aide.
A voir également:

4 réponses

Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 452
18 avril 2012 à 14:46
Bonjour,
Dans votre requête il faut activer l'option [Opération] ( clic sur l'icône Totaux) et choisir [Regroupement]
0
BIBI7979 Messages postés 4 Date d'inscription mercredi 18 avril 2012 Statut Membre Dernière intervention 20 avril 2012
18 avril 2012 à 17:06
C'est effectivement ce que j'ai fait mais du fait que le nom du contact diffère pour une même raison sociale, j'ai néanmoins une même raison sociale avec plusieurs contacts alors que je ne souhaite avoir que le premier contact de chaque raison sociale.
J'ai bien essayé aussi de mettre sur la ligne Opération "Premier" au niveau contact et au niveau raison sociale mais cela ne solutionne toujours pas mon problème..
0
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 452
18 avril 2012 à 22:52
Bonjour,
Est-ce que l'explication du premier poste est juste ?
Pouvez-vous mettre une copie du code SQL de la requête ?
0
BIBI7979 Messages postés 4 Date d'inscription mercredi 18 avril 2012 Statut Membre Dernière intervention 20 avril 2012
19 avril 2012 à 16:15
Bonjour, L'esplication de mon premier poste est juste.
Voici le mode SQL de la requête : SELECT First([T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].Raison_sociale) AS PremierDeRaison_sociale, [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].Address1, [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].Address2, [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].Address3, [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].Departement, [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Code postal], [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].Ville, [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Responsable commercial], [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Type Fiche], [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Qualification prescripteur], [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Qualification donneur ordre], [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].Cible, [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].Civilite, First([T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Nom contact]) AS [PremierDeNom contact], [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Prenom contact], [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Fonction contact], [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Statut contact], [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Principal contact], [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].Telephone, [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].Email_contact
FROM [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012]
GROUP BY [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].Address1, [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].Address2, [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].Address3, [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].Departement, [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Code postal], [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].Ville, [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Responsable commercial], [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Type Fiche], [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Qualification prescripteur], [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Qualification donneur ordre], [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].Cible, [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].Civilite, [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Prenom contact], [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Fonction contact], [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Statut contact], [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Principal contact], [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].Telephone, [T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].Email_contact
HAVING ((([T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Type Fiche])="Donneur d'ordre") AND (([T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Qualification donneur ordre]) Not Like "HLM") AND (([T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Statut contact])="Actif")) OR ((([T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Type Fiche])="Prescripteur") AND (([T_EXTRACTION TOUS CLIENTS FRANCE AU 03042012].[Statut contact])="Actif"));
Merci pour votre aide
0
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 452
19 avril 2012 à 22:25
Bonjour,
Dans votre exemple du début vous voulez obtenir un enregistrement comportant 7-8 champs (ETS DURAND 8 Rue des rosiers 75 PARIS Monsieur DURAND). Par contre en analysant votre requête dans la partie [GROUP BY ] il y a 18 champs dont 10-11 non rien à y faire puisque non désiré pour le résultat. En plus je ne trouve absolument pas la référence au `ETS Durand ?... !
0
BIBI7979 Messages postés 4 Date d'inscription mercredi 18 avril 2012 Statut Membre Dernière intervention 20 avril 2012
20 avril 2012 à 13:18
Bonjour,

Bien sûr dans mon exemple j'ai simplifié et n'ai mis qu'une partie des champs souhaités dans le résultat. Par ailleurs, l'exemple DURAND, etc... ne sont que des exemples fictifs qui ne sont effectivement pas dans la table d'origine. Mais le problème n'est absolument pas là, la vraie question est de savoir s'il est possible de ne retenir dans une requête donnée qu'un enregistrement comprenant bien sûr la raison sociale, l'adresse complète mais aussi d'autres champs pas cités dans mon exemple mais cela seulement pour le premier contact rencontré pour une même raison sociale et adresse donnée. Le résultat souhaité dans cette requête est d'alléger la table d'origine en ne conservant qu'un contact par raison sociale / adresse. Mais peut-être n'y a-t-il pas de solution autre que celle que j'utilise aujourd'hui, c'est-à-dire de tout exporter dans Excel et de supprimer manuellement les lignes que l'on ne souhaite pas...
0
Le Pingou Messages postés 12225 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 décembre 2024 1 452
20 avril 2012 à 21:19
Bonjour,
Eh bien selon la structure supposé de votre table (par déduction de la lecture de votre requête), et au résultat que vous voulez réellement obtenir (non égal à la demande préalable), vous devez passer par une procédure VBA soit directement sur Access ou Excel c'est au choix.
En clair pas possible avec une requête sélection.
0