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 : Afficher les dates 4 mois avant [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut Requête : Afficher les dates 4 mois avant
    Bonjour,

    J'ai une table "clients" et une table "produits".

    Dans la table "produit", j'ai un champ "dates d’échéances".

    Je souhaiterais effectuer une requête qui me permet d'afficher mes clients et les produits 4 mois avant la date d'échéance.

    Donc afficher : Date d'échéance - 4 mois

    Je ne sais pas quoi mettre dans la critère de la requête.

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Il faut à la fois ressortir les dates d'échéance - 4 mois, mais également comparer par rapport à la date du jour.
    Ce qui donne dans le critère avec le générateur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Date()>AjDate("m";-4;[TaTable]![dates d’échéances])
    Dernière modification par Invité ; 13/01/2012 à 06h49.

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    Merci de ta réponse.

    donc si ma date d’échéance est au 1/4/2012, il me sortira tout les produits vendus avant le 31/12/2011 ?

    Si maintenant je veux qu'il me sorte les résultats compris entre -4 mois et - 5mois ? (Dans mon exemple cela donnerait tous les produits vendus dans le mois de décembre) Comment je dois procéder ?

    Merci

    Ps : je dois faire une requête similaire sur des dates d'anniversaire. J'aimerais réaliser une requête qui m'affiche toutes les personnes qui vont avoir leur anniversaire avec 1 mois d'avance pour générer un état. Je dois procéder de la même façon ?

  4. #4
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    Je viens de tester le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Date()>AjDate("m";-4;[TaTable]![dates d’échéances])
    Mais il y a une erreur, il m'affiche que les produits compris dans les 4 mois.

    Exemple :

    Date d'échéance le 1/4/2012

    Il m'affiche tous les produits entre le 1/1/2012 et le 1/4/2012

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    315
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 315
    Points : 243
    Points
    243
    Par défaut
    Citation Envoyé par Gregk84 Voir le message
    Je viens de tester le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Date()>AjDate("m";-4;[TaTable]![dates d’échéances])
    Mais il y a une erreur, il m'affiche que les produits compris dans les 4 mois.
    bonsoir,
    tu peux tester l'ajout des limites dans 2 zones de texte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    avant.Value = DateAdd("m", -4, [TaTable]![dates d’échéances])
    apres.Value = DateAdd("m", 5, [TaTable]![dates d’échéances])
    Puis traiter le contenu des zones

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Gregk84 Voir le message
    Il m'affiche tous les produits entre le 1/1/2012 et le 1/4/2012
    Désolé mais j'ai cru que c'était ce qui était recherché...

  7. #7
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    Bonjour GAYOT et les autres ^^

    Ta réponse répond à une partie de mon problème. Sur les dates d'anniversaire.

    Par contre, pour les dates d'échéances, je dois être informé entre le 5ème et le 4ème mois avant la date d'échéance.

    Exemple :

    Si la date d'échéance est le 1/4/2012

    Je voudrais que la requête m'affiche les dossiers sur la période du 1/12/2011 au 31/12/2011 des contrats qui arriveront à échéance le 1/4/2012.

    J'espère avoir été plus clair :-)

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Si je comprends bien, il y a dans la table clients des dates de dossier différentes ayant la même échéance.
    L'astuce consiste dans ta requête à transformer ces dates au premier de chaque mois.
    par exemple le 01/12/2011, 02/12/2011, 15/12/2011 seront toutes converties au 01/12/2011. 04/11/2011, 07/11/2011 seront converties en 01/11/2011.

    Pour ce faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SérieDate(Année([TaTable].[DateDossier]);Mois([TaTable].[DateDossier]);1)
    Tu auras donc des dates au premier de chaque mois, très facilement comparables à la date d'échéance en t'aidant du code mentionné plus haut.

  9. #9
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par GAYOT Voir le message
    Bonjour
    Si je comprends bien, il y a dans la table clients des dates de dossier différentes ayant la même échéance.
    Bonjour GAYOT

    Ce n'est pas tout à fait ca

    J'ai deux tables : Clients et Produits

    Dans la table clients, j'ai toutes les informations du client

    Dans la table produits, j'ai les produits acheté par un client (il s'agit de police d'assurance)

    Dans la table produits, j'ai un champ "Date d'échéance" qui m'informe de la date ou le produit sera automatiquement reconduit pour 1an.

    Si je veux faire une modification sur une police d'assurance ou la supprimer, je dois le faire 3mois avant la date d'échéance.

    D’où mon souhait d'arriver à lister tous les produits dont la date d'échéance va arriver. Et j'aimerais le faire entre le 5ème mois et le 4mois avant la date d'échéance. (Pour être avant ce fameux délais de 3mois)

    Je suis plus clair ?

  10. #10
    Invité
    Invité(e)
    Par défaut
    Donc la date d'échéance peut être 01/04/12 02/04/12 ou 28/04/12?

  11. #11
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par GAYOT Voir le message
    Donc la date d'échéance peut être 01/04/12 02/04/12 ou 28/04/12?
    Oui elle peut être n'importe quand dans le mois

    Et comme les contrats peuvent être signé toute l'année, la date d'échéance peut tomber n'importe quel mois et n'importe quel jour du mois.

    Par contre, l'année n'est pas importante. Car il faut faire cette vérification chaque année...

  12. #12
    Invité
    Invité(e)
    Par défaut
    Il faut donc appliquer sur les dates d'échéance la technique que je t'ai indiqué. Dans ta requête il faut comparer par rapport aux dates d'échéance ramenées au premier du mois.

    La comparaison sera alors facile.

    Par exemple une table Tbl_Echeances:



    Une requête:



    Et voici le résultat:



    Toutes les échéances correspondant au mois de Mai ou Juin n'apparaissent pas. Ceci quelle que soit la date du jour pendant le mois de Janvier.
    Dernière modification par Invité ; 17/01/2012 à 19h18.

  13. #13
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    J'ai fais la même chose que toi et je n'obtiens pas le même résultat ... je ne comprend pas mon erreur...

    Je te montre :

    1) 1 table produits qui comprend des dates d'échéances



    2) 1 requête



    Dont voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >AjDate("m";-3;SérieDate(Année([Produits].[Date d'échéance]);Mois([Produits].[Date d'échéance]);1))
    3) Les résultats



    Les résultats affichés devraient commencer à partir du 17 avril 2012 et afficher toutes les dates d'échéances jusqu'au 17 juin 2012.

    Nous somme le 17/01/2012 + 3 mois = 17 avril 2012

    (Note : Et dans la pratique, comme on doit agir sur les polices avant 3 mois, je dirait même qu'il faudrait prévoir du 17 mai 2012 au 17 juillet 2012.)

    Merci

  14. #14
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Décidément, je n'ai rien compris à ce que tu demandes.

  15. #15
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par GAYOT Voir le message
    Bonjour
    Décidément, je n'ai rien compris à ce que tu demandes.
    Je me suis peut être mal exprimé aussi... Ce que j'aimerais réaliser est clair dans ma tête, maintenant ce n'est pas toujours évident de le retranscrire.

    En tout cas merci pour le coup de mains

  16. #16
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    Voici une explication plus clair du problème :

    Dans ma table produit, j'ai une date d'échéance qui est variable pour chaque produits.

    J'aimerais que la requête affiche les contrats dont la date d'échéance va arriver dans 4 mois.

    Exemple :

    Date du jour : 18/01/2012

    Les contrats qui devront être affichés sont : Date du jour + 4 mois.

    Donc les contrats affichés seront ceux ou la date d'échéance commence à partir du : 18/05/2012

    Pour ne pas avoir tous les contrats listés dans ma requêtes. J'aimerais qu'elle ne s'applique que sur 2mois.

    Donc les contrats affichés seront ceux ou la date d'échéance commence à partir du : 18/05/2012 jusqu'au 18/07/2012.

    Solution :

    Entre AjDate("m";+4;Date()) Et AjDate("m";6;Date())
    Merci GAYOT pour ton aide ^^

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

Discussions similaires

  1. [XL-2003] macro pour afficher les dates des troisièmes vendredi du mois
    Par julius999 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 28/10/2009, 17h39
  2. Réponses: 2
    Dernier message: 09/07/2008, 11h34
  3. comment afficher les données par mois à partir d'un champs date ?
    Par M.a.n.u. dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 18/05/2008, 09h36
  4. [Dates] Afficher les jours du mois dans un formulaire
    Par Jimmy Monkey dans le forum Langage
    Réponses: 7
    Dernier message: 30/12/2007, 11h27
  5. [Etat]Afficher les dates d'une requête
    Par Melhiril dans le forum IHM
    Réponses: 9
    Dernier message: 24/04/2007, 14h40

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