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 :

Requète sur l'année d'après une date


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 288
    Points : 84
    Points
    84
    Par défaut Requète sur l'année d'après une date
    Bonjour,

    Je cherche depuis quelques jours la solution à un soucis de requètes.
    Sous access 2003 j'ai dans une table une date du style 10/10/2008.
    Je veux l'utiliser pour la mettre dans une liste de formulaire.
    Mon problème est que cette date (de création de client) a de nombreux doublons sur l'année.
    Donc dans mon formulaire je me retrouve avec des dates de type aaaa mais qui sont toutes différentes et en doublons.

    J'essaie donc pour commencer de créer une requète qui va transformer ces dates 10/10/2008 en 2008 mais en supprimant définitivement le jour et le mois.
    Mais dès que j'utilise la fonction partdate(aaaa;champ) ou année(champ) la liste de ma requète est vide.

    Alors je me demande si mon problème ne vient pas de l'endroit ou je l'utilise. Je la mets en condition dans ma requète.

    Merci d'avance de votre aide.

    Marcopololo

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Bienvenu... Aurais tu une ébauche de ta requête ?
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  3. #3
    Membre régulier Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 288
    Points : 84
    Points
    84
    Par défaut
    Bonjour,

    Je vous mets le code sql concerant tout d'abord le formulaire (il est tiré de la base comptoirs). Pour la requète, c'est pour l'instant une requète simple.

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim strQuelleAnnée As String
     
        strQuelleAnnée = "[Date création client] = Forms![Menu Analyse catégorie]!SélectionAnnée"
     
        Select Case Me!ÉtatÀImprimer
            Case 1
                If IsNull(Forms![Menu analyse catégorie]!SélectionAnnée) Then
                    DoCmd.OpenReport "Nouveaux Clients", ModeImpression
                Else
                    DoCmd.OpenReport "Nouveaux Clients", ModeImpression, , strQuelleAnnée
                End If


    Pour ma requète j'ai essayé le code suivant sur le champ date comme critère :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT DISTINCT Clients.[Date création client], Clients.[Date création client]
    FROM Clients
    GROUP BY Clients.[Date création client], Clients.[Date création client]
    HAVING (((Clients.[Date création client])=DatePart("yyyy",[Date création client])))
    ORDER BY Clients.[Date création client];
    sur le champ date de création
    mais alors je me retrouve avec une requète vide. Sachant que au départ mes dates sont toutes différentes du style 10/10/2007, 12/10/2007...
    Si j'enlève le critère en mettant un format aaaa, j'ai une requète avec les années 1996, 1996,....2008,2008 autant que de date de création (c'est mon second problème de doublons mais je verrai après, puisque ce ne sont pas des doublons tant que je n'ai pas transformer mes dates).

    J'espère que les infos que je donne vont vous aider.

    Merci d'avance

    Marcopololo

  4. #4
    Membre régulier Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 288
    Points : 84
    Points
    84
    Par défaut
    En faisant d'autres tests sur une requète d'essai je me suis rendu compte que j'avais le même message en retour (en mettant un critère select distinct) qui me dit "Cette sous requète peut retourner au plus 1 enregistrement". Et j'ai le même message avec Datepart.

    Marcopololo



    Et bien j'y suis arrivé. J'ai mis la fonction partdate en tant qu'expression dans ma requète. Je passe au formulaire, les doublons étant aussi résolus...

    Merci quand même. J'aurai sûrement d'autres blocages.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Grouper sur mois et année (seulement) d'une date
    Par Claythest dans le forum Langage SQL
    Réponses: 4
    Dernier message: 22/03/2007, 12h28
  2. Réponses: 4
    Dernier message: 14/03/2007, 09h25
  3. Requête Access 2003 : Ajouter 6 mois à une date
    Par billy123 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 28/02/2007, 16h26
  4. Réponses: 3
    Dernier message: 28/01/2007, 19h25
  5. requête sur l'année d'une date
    Par jo77 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/07/2003, 09h28

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