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 avec redondance d'info


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 44
    Points : 19
    Points
    19
    Par défaut requete avec redondance d'info
    Je debute avec access et ne maitrise absolument pas le mode SQL

    J'ai 2 tables qui sont reliées par le champs "Nom":

    Table CLIENT (300 noms)
    NumCli
    NomCli
    PrénCli
    Adres
    dateAnniv
    ...

    Table RDV (500 rdv)
    NumRdv
    DateRdv
    NomCli
    TypePrestat
    MontPrest
    CA

    Pour etre plus précis, chaque fois qu'une cliente passe, la date (depuis le 1er novembre 2005) et la prestations sont enregistrées dans la table RDV (il s'agit d'un institut de beauté). Dans la table rdv, on peut retrouver la meme cliente x fois (ex : cliente qui passe tous les 15 jours)

    Je voudrais creer un mailing sur une cible de cliente bien précise (anniversaire en avril) et dans ce mailing, je reprends la date de leur dernier passage du dernier rdv.

    Pour cela, je crée une requete simple des clientes ayant leur anniversaire en avril mais qd je rajoute le champs "dateRdv", le meme nom ressort autant de fois que la cliente est venue.

    Que dois je met tre dans la requete pour eviter ce bug et pour que n'apparaisse que la date de sa derniere visite ? ?

    Merci aux bonnes ames ...

  2. #2
    Membre actif Avatar de ActionAccess
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 213
    Points
    213
    Par défaut
    Bonsoir,

    Il suffit de faire un regroupement (le sigma en haut au milieu de la barre d'outils). Puis au niveau de la ligne Opération qui vient d'apparaître juste au dessus de la ligne Tri dans la zone où tu choisis tes champs, tu mets Max à la place de Regroupement pour le champ DateRdv uniquement. Pour les autres, tu laisses Regroupement.
    Tu auras ainsi pour chaque cliente la date du rdv ayant la date la plus élevée. (attention, cela peut aussi être un rdv dans le futur si tes rdv sont saisis à l'avance.)

    J'espère avoir répondu à ton problème.

    Bon courage
    ActionAccess

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 44
    Points : 19
    Points
    19
    Par défaut
    Ok ça fonctionne bien - je te remercie

    Peux tu me dire ce que je dois faire pour le pb suivant :

    Pour un client nouveaux, actuellement, je dois d'abord le saisir dans la table CLIENT puis je le retrouve avec le curseur dans la table RDV.
    Or dans la pratique, il serait mieux que je puisse le rentrer dans la table RDV et le retrouver ensuite dans la table CLIENT afin de completer sa fiche de coordonnées
    Peux tu me dire ce que je dois faire (je suppose que ça vient du pb des relations - actuellement, c'est la 1° case qui est coché dans propriété de la jointure)

    Encore merci

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    C'est entre autre lié au problème de relations.

    Dans la liste de choix, tu as un événement sur absence dans liste.

    Tu peux au départ de cet événement par exemple ouvrir le formulaire qui te mermet de remplir la fiche de coordonnées et ensuite revenir à ton formulaire, mettre à jour ta liste de choix avant de choisir le nouveau client.

    http://<br /> http://access.develop...sDsListe<br />
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 44
    Points : 19
    Points
    19
    Par défaut
    Je suis vraiment un neophyte et je n'ai pas encore fait de formulaire ... et je ne comprends pas trop la solution que tu me proposes.
    En fait, je saisie mes infos uniquement dans les tables et les requetes.

    Concernant les RDV, c'est dans une requete que je saisie l'info du nom (qui se presente dans un curseur ...) ... + de la prestation et le prix

    Si tu peux me re-proposer une solution a partir de ces infos ...

    Merci

  6. #6
    Membre actif Avatar de ActionAccess
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 213
    Points
    213
    Par défaut
    Bonsoir,

    Voici mes suggestions par rapport à ton problème.

    1 : il n'est pas judicieux de faire une liaison entre les deux tables par le champ 'Nom'. Imagines si deux clients ont le même nom. Il faudrait mieux à mon sens mettre dans la table RDV le NumCli et le lier à NumCli dans la table CLIENTS.

    2 : Dans la table RDV en mode création, tu vas sur le champ NumCLi, en bas, tu cliques sur l'onglet Liste de choix, puis dans Afficher le contrôle, tu sélectionnes 'Zone de liste modifiable'.

    3 : A la ligne contenu qui vient d'apparaître, tu mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CLIENTS.NumCli, CLIENTS.NomCli, CLIENTS.PrénomCli FROM CLIENTS;
    4 : à la ligne Colonne liée, tu mets 1.
    5 : à la ligne, nbre de colonne, tu mets 3
    6 : à la ligne largeur colonne, tu mets "0cm;5cm;5cm" (sans les guillemets)
    7 : à la ligne Largeur liste, tu mets 10cm
    8 : tu crées la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT RDV.NumRDV, RDV.DateRDV, RDV.HeureRDV, RDV.NumCli, CLIENTS.NomCli, CLIENTS.PrénomCli
    FROM CLIENTS INNER JOIN RDV ON CLIENTS.NumCli = RDV.NumCli;
    9 : Pour un nouveau client, tu saisis son nom dans le champ NomCli. le client sera sauvegardé dès que tu auras saisi une info dans l'un des champs de la table RDV.

    10 : pour un ancien client déjà présent dans la table CLIENTS, tu choisis son nom dans le champ NumCli (qui fait apparaître une liste déroulante de choix.)

    Evidemment, cela pourrait être largement amélioré en y passant plus de temps et en créant un formulaire de saisie, mais ces premiers points devraient t'aider à avancer.

    Bon courage.
    ActionAccess

Discussions similaires

  1. REQUETE AVEC DEUX INFO DIFFERENTES DANS LA MEME TABLE
    Par gregelec dans le forum Requêtes
    Réponses: 5
    Dernier message: 15/04/2010, 21h23
  2. requete avec la valeur NULL
    Par Hinkel dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 12/11/2008, 16h39
  3. requete avec OBCD et visual c++
    Par Anonymous dans le forum MFC
    Réponses: 12
    Dernier message: 18/11/2004, 16h15
  4. Pb d'execution de requete avec un script php
    Par ythierrin dans le forum Requêtes
    Réponses: 3
    Dernier message: 22/08/2003, 14h34
  5. Requete avec des décimales
    Par Sandrine75 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 27/06/2003, 10h18

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