Se connecter avec
S'enregistrer | Connectez-vous

[ACCESS] Probleme date calcul ( mois en 10)

Dernière réponse : dans Programmation

Bonjour à tous j'ai un probleme sous ACCESS
Je dois comparer des dates en ajoutant 2 mois a la 1ere pour voir sii elle depasse une certaine date (ici celle d'aujourd'hui)

Je vous montre mon code :



  1. SELECT Count([Dossier].[idAffaire]) AS calculMEC2mois
  2. FROM Dossier
  3. WHERE ((((Month([Dossier].[dateMEC])*100))=(([listemois])*100)) AND (((Year([Dossier].[dateMEC])*10000))=(([listeannee])*10000)) AND (((Year([Dossier].[dateARO])*10000)+((Month([Dossier].[dateARO])+2)*100)+Day([Dossier].[dateARO]))<((Year([Dossier].[dateMEC])*10000)+(Month([Dossier].[dateMEC])*100)+Day([Dossier].[dateMEC]))));
  4.  
  5. Iif([listemois]=11,[listemois]=01 & [listeannee]=[listeannee]+1,Iif([listemois]=12,[listemois]=02 & [listeannee]=[listeannee]+1,[listemois]=[listemois]+2))



le select est ma requete et je veux mettre en plus la condition iif mise en dessous du select et je ne sais pas comment faire

Est ce que quelqu'un pourrait m'apporter son aide
Merci d'avance
Lassé par la pub ? Créez un compte
Expert Programmation

Han! :ouch:  Quel horreur ACCESS !!!!!

Bon, cher Romstek, ça va saigner :
  • Arrête avec ACCESS, c'est de la viande avariée [:vomi]
  • Vire-moi ces 50 parenthèses et ces 40 crochets inutiles. :sarcastic:  Ton code, revu :
    1. SELECT Count(idAffaire) AS calculMEC2mois
    2. FROM Dossier
    3. WHERE Month(dateMEC)*100=listemois*100
    4. AND Year(dateMEC)*10000=listeannee*10000
    5. AND Year(dateARO)*10000+(Month(dateARO)+2)*100+Day(dateARO)<
    6. Year(dateMEC)*10000+ Month(dateMEC) *100+Day(dateMEC);

  • Tu es sûr qu'une condition A * 100 = B * 100 ne peut pas être simplifiée (Lignes 3 et 4) ?
  • Tu es obligé d'éclater dateMEC pour le reconstruire (Ligne 6) ?
  • Utilise les fonctions du SGBD pour traiter les dates.

    Une soluce :
    1. SELECT Count ( idAffaire ) AS calculMEC2mois
    2. FROM Dossier
    3. WHERE Month ( dateMEC ) = listemois
    4. AND Year ( dateMEC ) = listeannee
    5. AND DateAdd ( "m", 2, dateARO ) < dateMEC


    Le secret est dans la fonction DateAdd ;) 
    Expert Programmation

    Citation :
    ps : je ne peux pas arréter avec access , je suis en stage et je suis obligé de dévelloper ss access

    Ben j'avais compris ;)  Personne n'utilise Access pour le plaisir.

    N'hésite pas à consulter l'aide d'Access pour y trouver des trucs comme
    DateAdd.

    Par ailleurs, sur le net, il existe de bons tutos sur SQL en général, orienté MySQL ou Oracle en particulier. Sers-t'en ! Si tu trouves un exemple avec ADD_MONTHS de Oracle, bah, demande à google comment on dit en langage "Microsoft" ...

    Bon, sinon, il y a encore PPC...

    Si moi :D 

    Connaissant Access sur le bout des doigts et bien qu'il ai des défauts il offre quand même de nombreuses possibilités. Alors meme si c'est plus IN :p  de faire du php ou du .net, je m'amuse beaucoup avec Access.

    Merci pour cette solution j'ai fais comme ça et ça marche ;) 

    Dernier petit problème, j'ai liste liste déroulante modifiable contenant en 1ere colonne le nom de la commune et en 2ème colonne le code INSEE de la commune.
    Problème : Lorsque je sélectionne une commune, il n'ya a que la 1ere colonne qui s'affiche , et-il possible d'afficher le code INSEE a coté
    ou alors de récupérer la 2 eme colonne et de l'afficher dans un champ à coté
    Merci de vos réponse ;) 
    Lassé par la pub ? Créez un compte