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 :

Calcul entre le dernier et l'avant dernier


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 330
    Points : 127
    Points
    127
    Par défaut Calcul entre le dernier et l'avant dernier
    Bonsoir,

    Comment faire pour calculer l'écart entre deux dates, concernant
    l'enregistrement précédent et le dernier d'un domaine (sous formulaire)

    Par exemple :
    01/01/08
    05/01/08
    15/01/08
    20/01/08

    On calcul sur ce domaine 20/01/08 - 15/01/08 = 5 j

    J'espére avoir bien expliquer.
    Merci.

  2. #2
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour,

    Pour calculer la différence entre deux date, tu peux utiliser la fonction DateDiff. Tu peux jeter un oeil sur la à cet endroit http://access.developpez.com/faq/?page=dates#DateDiff

    Bon courage
    Gabout

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 330
    Points : 127
    Points
    127
    Par défaut
    Merci Gabout, mais ça ne va pas m'aider beaucoup car le plus dur est de sélectionner l'enregistrement précédent le dernier dans une requête par exemple.

    @+

  4. #4
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut à tous,

    Philippe608,
    il faut que tu utilise une requete avec une sous requete imbriquée si tu veux faire en requete mais si tu es dans un form ce que te conseil Gabout est plus simple à mettre en oeuvre.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Une solution est d'utiliser les fonctions de domaines, tu pourras récupérer tes données, et ensuite utiliser la fonction DateDiff.

    Pour l'utilisation des fonctions de domaine : Les Fonctions de Domaine dans Access

    Starec
    Dernière modification par Invité ; 20/01/2008 à 07h50.

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    Voici la formule de base qui peut être simplifiée selon le contexte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DateDiff("d", dMax("MaDate", "MaTable", "MaDate <" & CDbl(dMax("MaDate", "MaTable"))), dMax("MaDate", "MaTable"))
    cordialement,

    Philippe

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonjour,

    Vodiem n'est pas dans le coin? Non?...Il dort encore? Alors j'en profite pour poster :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT DISTINCT TOP 1 MaTable_1.MaDate AS AvantDerniereDate, MaTable.MaDate AS DerniereDate,
                DateDiff("d",[MaTable_1].[MaDate],[MaTable].[MaDate]) AS Difference
    FROM MaTable, MaTable AS MaTable_1
    WHERE (((MaTable_1.MaDate)=DLast("[MaDate]","[MaTable]")) AND 
        ((DateDiff("d",[MaTable].[MaDate],[MaTable_1].[MaDate]))<>0))
    ORDER BY MaTable.MaDate DESC;
    Cordialement.
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  8. #8
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut à tous,
    et oui il y a aussi les fonctions de domaines cher à Starec, le Dmax m'avait échappé philben merci de me rafraichir la mémoire, c'est dur après les fêtes...

    francishop: dormir, dormir... pas tout à fait, je dirais plutot que je dînais...

    ps:j'en profite de vous avoir sous la main pour vous souhaitez une bonne année Starec et Philben , francishop ayant déjà eu ses voeux plus tot il sera privée cette fois ci (mais le coeur y est).

  9. #9
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour Vodiem,

    Merci et meilleurs voeux à toi aussi !

    Au pied du lit, Francishop a écrit une requête qui ne fonctionne pas très bien , après le petit déjeuner il va probablement nous faire une petite correction...

    Amicalement,

    Philippe

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 330
    Points : 127
    Points
    127
    Par défaut
    Merci à vous tous, vous êtes vraiment trés sympathique.

    @+
    Philippe

  11. #11
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonjour,
    Citation Envoyé par philben Voir le message
    Au pied du lit, Francishop a écrit une requête qui ne fonctionne pas très bien ,
    Je le savais...Vodiem a fait des émules.

    Quoi Ma Requête! Qu'est-ce qu'elle a ma requête? (Je connais Johnny, non mais.)
    AvantDerniereDate DerniereDate...Difference
    15/01/2008...........20/01/2008.......5

    Il s'en trouve qui préfèrent "y" à "d"? Comprends pas.
    Pièce jointe 24341

    Cordialement.

    Hum... Peut-être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT DISTINCT TOP 1 MaTable_1.MaDate AS AvantDerniereDate, MaTable.MaDate 
         AS DerniereDate, DateDiff("d",MaTable.MaDate,MaTable_1.MaDate) AS Difference
    FROM MaTable, MaTable AS MaTable_1
       WHERE (((MaTable_1.MaDate)=DLast("[MaDate]","[MaTable]")) And 
                     ((DateDiff("d",MaTable.MaDate,MaTable_1.MaDate))<>0))
    ORDER BY MaTable.MaDate DESC;
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Citation Envoyé par vodiem Voir le message
    et oui il y a aussi les fonctions de domaines cher à Starec, le Dmax m'avait échappé philben merci de me rafraichir la mémoire, c'est dur après les fêtes...


    ps:j'en profite de vous avoir sous la main pour vous souhaitez une bonne année Starec et Philben , francishop ayant déjà eu ses voeux plus tot il sera privée cette fois ci (mais le coeur y est).
    Je sais que je peux être C****T avec ces fonctions, mais leur utilité pour des petites volumes n'est plus à démontrer, surtout pour les débutants en VBA, elles sont faciles à comprendre.

    Mes meilleurs vouex à vous aussi (on a jusqu'au 31 il me semble).

    Starec

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/12/2010, 10h10
  2. Réponses: 7
    Dernier message: 12/02/2008, 21h47
  3. Réponses: 23
    Dernier message: 25/04/2007, 16h36
  4. avant dernier d'une liste
    Par isa21493 dans le forum Access
    Réponses: 20
    Dernier message: 08/03/2006, 10h36
  5. [VB6] Allez en avant dernier enregistrement d'une table acce
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 10/02/2006, 15h42

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