IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

[requete] plusieurs resulats sur une seule ligne... passage par Recordset??


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2003
    Messages : 53
    Points : 73
    Points
    73
    Par défaut [requete] plusieurs resulats sur une seule ligne... passage par Recordset??
    Bonjour à tous et d'avance merci pour votre aide ô combien précieuse.

    Voilà mon soucis....

    Situation générale:
    J'ai plusieurs prestations d'agents chez des clients....
    Il arrive qu'un client recoive plusieurs prestations sur la meme semaine.
    Il se peux que plusieurs agents se présentent chez le même client.

    Rien de bien compliqué en somme.

    Pour cela, j'ai 3 tables.

    Table CALGEN qui recoit les infos des prestations à effectuer:
    TS_CALGEN_NUM numéro d'odre
    TS_CALGEN_AM Numéro de l'agent qui va effctuer la prestation (lien avec la table TS_AM)
    TS_CALGEN_DATE Date de la prestation
    TS_CALGEN_HEUREIN Heure de début de la prestation
    TS_CALGEN_HEUREOUT Heure de fin de la prestation
    TS_CALGEN_CLIENT Numéro du client (lien avec la table TS_CLIENT)

    Table TS_CLIENT qui contient le signalétique du client
    TS_CLIENT_NUM Numéro d'odre du client
    TS_CLIENT_ADRESSE adresse du client
    .....

    Table TS_AM qui contient le signalétique de l'agent qui va prester
    TS_AM_NUM Numéro d'odre de l'agent
    TS_AM_NOM Nom de l'agent.


    Voilà le décor est planté.

    Je dois envoyer un avertissemnt aux clients leur mentionnant les dates auquelles il va recevoir des prestations et par qui elles vont être effctuées.

    Je dois donc selectionner pour une tranche de date donnée.... toutes les prestations qui vont être effctuées....

    Voici ma requete:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT TS_CLIENT.TS_CLIENT_NOM, TS_CLIENT.TS_CLIENT_ADRESSE, TS_CALGEN.TS_CALGEN_DATE, TS_AM.TS_AM_NOM, TS_AM.TS_AM_PRENOM, TS_CALGEN.TS_CALGEN_HEUREIN, TS_CALGEN.TS_CALGEN_HEUREOUT
    FROM TS_AM INNER JOIN (TS_CLIENT INNER JOIN TS_CALGEN ON TS_CLIENT.TS_CLIENT_NUM = TS_CALGEN.TS_CALGEN_CLIENT) ON TS_AM.TS_AM_NUM = TS_CALGEN.TS_CALGEN_AM
    GROUP BY TS_CLIENT.TS_CLIENT_NOM, TS_CLIENT.TS_CLIENT_ADRESSE, TS_CALGEN.TS_CALGEN_DATE, TS_AM.TS_AM_NOM, TS_AM.TS_AM_PRENOM, TS_CALGEN.TS_CALGEN_HEUREIN, TS_CALGEN.TS_CALGEN_HEUREOUT
    HAVING (((TS_CALGEN.TS_CALGEN_DATE) Between [Formulaires]![TS_FR_am]![DateDU] And [Formulaires]![TS_FR_am]![DATEAU]))
    ORDER BY TS_CLIENT.TS_CLIENT_NOM;

    Bon cela marche bien.... mais j'ai comme resultat pkusieurs lignes par clients.... forcément... comme suit:

    CLIENT 1 PRESTATIONS 1 AGENT 1
    CLIENT 1 PRESTATIONS 2 AGENT 1
    CLIENT 2 PRESTATIONS 3 AGENT 1
    CLIENT 2 PRESTATIONS 4 AGENT 1
    CLIENT 3 PRESTATIONS 5 AGENT 2

    Bon, maintenant, voici à quoi je veux arriver.... c'est là que cela se complique sérieusement pour moi

    CLIENT P1-PRESTATIONS P1-AGENT P2-PRESTATION P2-AGENT

    CLIENT1 PRESTATION1 AGENT 1 PRESTATION 2 AGENT1
    CLIENT2 PRESTATION3 AGENT1 PRESTATION4 AGENT1


    Donc une seule ligne par client et obtenir les datas des prestations dans des champs relatifs à sa 1ere prestations, à sa deuxième, à sa troisième prestation (max 10 prestations par client....)

    Comment puis-je arriver à ce résultat?

    Je ne peux pas passer par un état car je dois l'expédier en fichier plat pour fusionner avec word.

    Merci de votre aide.

    PS: je fournis les aspirines pour les maux de crâne.... j'ai déjà mangé la moitié du tube.... mais il m'en reste encore

  2. #2
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 812
    Points
    812
    Par défaut
    Salut,

    Tu pourrais peut-être t'inspirer de ceci

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2003
    Messages : 53
    Points : 73
    Points
    73
    Par défaut
    merci pour ta réponse....

    J'y avais un peu pensé à une solution de ce genre par vba (mais sans y arriver )

    Donc en travaillant de la sorte, je peux stocker dans un seul champs, toutes mes prestations chez le client.... et les séparer par un caractère de mon choix.... il ne me restera plus alors qu'automatiser le système de remplacement de texte dans word.... je peux faire celà.

    Mais juste pour la beauté du geste j'aimerai y arriver via les requetes ou vba en ayant bien des champs pour chaque prestation. En fait nous utilisons un progiciel qui effectue pour d'autres services ce genre de chose et je récupère leur document de destination de fusion.... je remplace simplement leur fichier plat par le mien....

    Celà doit être bien possible.... je cherche mais je ne trouve pas...

    En tout cas, merci pour ta solution que j'essayerai d'implémenter si je ne trouve pas la solution en champs séparés.... ce qui m'embête un peu dans cette solution, c'est le traitement post-fusion pour avoir quelque chose qui se tienne bien ( remplacement du caractère par exemple) .... le lien qui est crée entre access et word (word.application) est toujours assez gourmand et de plus... c'est toujours un lien fragile, il casse régulièrement.... et là word fait du grand n'importe quoi

    merci à toi

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2003
    Messages : 53
    Points : 73
    Points
    73
    Par défaut Après une bonne nuit de réflexion....
    Voilà une bonne nuit blanche.....

    Après avoir dormi sur mon problème.... ce matin, j'ai une petite idée à vous exposer concernant mon problème.....

    Si je passe par vba.... créer un dao.recordset qui sera envoyée dans mon fichier plat word.....

    Je lance en premier tj via recordset, ma requete...

    avec les resultat ensuite je peuple ligne par ligne mon recordset final.... en indiquant que tant que le n° de client ne change pas, je reprends les données dans le champs suivant....

    Qu'en pensez-vous???

    Faisable, ou pas???

    Merci de vos réponses.

    PS: J'ai racheté de l'aspirine... alors n'hésitez pas à demander si besoin

  5. #5
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 316
    Points : 367
    Points
    367
    Par défaut
    Bonjour,

    Pourquoi ne pas utiliser le même recordset, et tu concatène au fur et à mesure dans une variable.

    A+

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2003
    Messages : 53
    Points : 73
    Points
    73
    Par défaut
    merci de ta reponse,

    1 seul recordset??? il m'en faut au moins 2, non??

    1 pour recevoir ma requete transposée en vba ou directement ma requete. REC1
    et 1 pour recevoir ma requete(telle que je la souhaite) pour expédier en fichier plat... REC2

    car je ne veux pas concatener dans un seul champs mais bien 1 champs par prestation.... avec 10 prestations max....

    Mon idée était de parcourir ligne par ligne dans mon recordset REC1 et aller peupler en fonction que le client change ou pas... soit un nouvel enregistrement en REC2 soit un champs de l'enregistrement de REC2...

    J'espère que mes expliquations sont claires parce que parfois, il m'arrive de ne plus me comprendre hihih

  7. #7
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 316
    Points : 367
    Points
    367
    Par défaut
    Bonjour,

    c'est exactement ça.

    A+

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2003
    Messages : 53
    Points : 73
    Points
    73
    Par défaut
    Oki alors,

    je suis content d'etre sur la bonne piste.

    Merci de ton aide

Discussions similaires

  1. [XL-2003] Plusieurs enregistrements sur une seule ligne
    Par romainrogo dans le forum Excel
    Réponses: 2
    Dernier message: 16/01/2014, 10h09
  2. python3: plusieurs print sur une seule ligne
    Par Belerod dans le forum Général Python
    Réponses: 1
    Dernier message: 29/12/2011, 15h02
  3. Afficher plusieurs tableaux sur une seule ligne
    Par kromartien dans le forum Mise en forme
    Réponses: 3
    Dernier message: 18/11/2007, 15h12
  4. Plusieurs résultats sur une seule ligne
    Par Morphorpse dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/08/2007, 19h36
  5. Plusieures infos sur une seule ligne avec ou sans tableau
    Par Him dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 17/03/2006, 14h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo