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 :

Fonction DiffDate sous Access(avec paramètre) [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 28
    Points : 23
    Points
    23
    Par défaut Fonction DiffDate sous Access(avec paramètre)
    Bonjour,

    J'utilise actuellement une requête sous access contenant le champ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateDiff("j",[MaxDeDate],Date()) AS DureeInactivite
    je voudrais avoir le choix de préciser l'intervalle, soit "j" pour jour (comme dans l'exemple) ou bien "m" pour mois, ou bien "t" pour trimestre...
    donc j'ai pensé à une requête paramétrée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateDiff([Param],[MaxDeDate],Date()) AS DureeInactivite
    et j'ai rajouter Param dans la ligne critères.

    Mais ça ne fonctionne pas, alors si quelqu'un a une idée !!!

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 274
    Points
    34 274
    Par défaut
    salut,
    as-tu ajouter le Param comme Parameters en début de requête ?
    Peux-tu nous donner ton contenu SQL actuel ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 28
    Points : 23
    Points
    23
    Par défaut
    Voici le code SQL:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    PARAMETERS param Text ( 255 );
    SELECT Max(acEffet.Date) AS MaxDeDate, Last(acEffet.Reference) AS DernierDeReference, DateDiff([param],[MaxDeDate],Date()) AS DureeInactivite, acTiers.TiersRaisonSociale
    FROM TypeEffet INNER JOIN (acTiers INNER JOIN acEffet ON acTiers.CleTiers = acEffet.CleTiers) ON TypeEffet.Code = acEffet.Code
    GROUP BY acTiers.TiersRaisonSociale
    HAVING (((DateDiff([param],[MaxDeDate],Date()))="param"));

    C'est ça le problème, quand j'ecrit param dans la case critère, il comprend DateDiff([param],[MaxDeDate],Date()))="param" alors que je veux que ce soit le 1er paramètre de la fonction DateDiff qui soit remplacé

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 274
    Points
    34 274
    Par défaut
    ok, déjà vire le HAVING, je ne crois pas qu'il soit utile
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    PARAMETERS [param] Text ( 255 );
    SELECT Max(acEffet.Date) AS MaxDeDate, Last(acEffet.Reference) AS DernierDeReference, DateDiff([param],[MaxDeDate],Date()) AS DureeInactivite, acTiers.TiersRaisonSociale
    FROM TypeEffet INNER JOIN (acTiers INNER JOIN acEffet ON acTiers.CleTiers = acEffet.CleTiers) ON TypeEffet.Code = acEffet.Code
    GROUP BY acTiers.TiersRaisonSociale
    ;
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 28
    Points : 23
    Points
    23
    Par défaut Super ça marche !
    Super ça marche, sauf qu'il faut mettre un d (pour day) au lieu de "j" comme valeur de paramètre.

    Merci et encore merci

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

Discussions similaires

  1. Fonction "mode" sous access
    Par mim62 dans le forum Access
    Réponses: 5
    Dernier message: 15/06/2006, 15h14
  2. Fonction SI sous access
    Par LeSqual dans le forum Access
    Réponses: 2
    Dernier message: 23/04/2006, 10h22
  3. Requete sous Access avec AND et OR
    Par paflolo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/02/2006, 10h35
  4. Réponses: 8
    Dernier message: 20/02/2006, 23h25
  5. Réponses: 2
    Dernier message: 02/12/2005, 10h53

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