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

WinDev Discussion :

erreur sur ajout de mois à une date


Sujet :

WinDev

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2008
    Messages : 205
    Points : 93
    Points
    93
    Par défaut erreur sur ajout de mois à une date
    Bonsoir à tous,

    J'ai une table avec des colonnes dont col_dervisit(date de la dernière visite médicale), col_echeance (colonne qui indique la durée en mois de l'échéance)

    une colonne dont je voudrais faire apparaitre l'addition de la date dde la dernière visite + le noimbre de mois d'échéance.

    Avec le code ci dessous ça m'ajoute des jours et non des mois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    dUneDate est une Date = COL_DerVisiteMedic
    nNbMois est un entier = COL_Echeance
    //dUneDate..mois +=nNbMois//erreur à ce niveau
     
    SI DateValide(  COL_DerVisiteMedic) ALORS
    	COL_Provisite=EntierVersDate(DateVersEntier(COL_DerVisiteMedic) + nNbMois)
    FIN
    et si je met ce code en plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dUneDate..mois +=nNbMois
    j'ai une erreur à ce niveau.

    Comment dois je modifier ce code ?

    Par avance merci pour vos lumières

    amitiés

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 178
    Points : 416
    Points
    416
    Par défaut
    Bonjour,

    A priori je dirais que vous avez un problème de conversion de type lorsque vous récupérez la date dans votre colonne "col_dervisit".

    Les dates sont au format AAAAMMJJ, il semblerait que mois et jours soit inversé dans votre cas, d'où le défaut lors du calcul.
    Si votre colonne est de type chaîne, vous pouvez utiliser ChaîneVersDate pour récupérer le bon format.

    L'exemple ci-dessous ne pose aucun problèmes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dUneDate est une Date = DateSys()
    nNbMois est un entier = 6
    dUneDate..Mois +=nNbMois
    Pour la partie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI DateValide(  COL_DerVisiteMedic) ALORS
    	COL_Provisite=EntierVersDate(DateVersEntier(COL_DerVisiteMedic) + nNbMois)
    FIN
    DateVersEntier renvoie un nombre de jours (écoulés entre le 1er janvier 1800) et vous y ajoutez un nombre de mois.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2008
    Messages : 205
    Points : 93
    Points
    93
    Par défaut
    Bonsoir themayu
    ton analyse était la bonne effectivement l'erreur provient du format de la colonne dervisite.

    Maintenant je sais ou se situe l'erreur par contre je n'arrive pas à la corriger.

    Le code ci-dessous si je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dUneDate est une Date = DateSys()
    ça fonctionne

    par contre avec ce code ça continue de planter et je n'arrive pas à corriger mon problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dUneDate est une Date = ChaîneVersDate(COL_DerVisiteMedic,"JJ/MM/AAAA")
     
    nNbMois est un entier = COL_Echeance
    dUneDate..Mois +=nNbMois
     
    COL_Provisite = dUneDate+nNbMois
    Par avance merci à tous pour vos lumières

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 178
    Points : 416
    Points
    416
    Par défaut
    Pouvez-vous nous décrire plus l'erreur/défaut constaté.

    Est-ce normal que le nombre de mois soit ajouter directement à la variable date à la ligne 6 de votre exemple ? Les opérations des lignes 3 et 4 devraient suffire en théorie.

  5. #5
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Citation Envoyé par nrdz83 Voir le message
    ...
    par contre avec ce code ça continue de planter et je n'arrive pas à corriger mon problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dUneDate est une Date = ChaîneVersDate(COL_DerVisiteMedic,"JJ/MM/AAAA")
     
    nNbMois est un entier = COL_Echeance
    dUneDate..Mois +=nNbMois
     
    COL_Provisite = dUneDate+nNbMois
    Par avance merci à tous pour vos lumières
    Bonjour,

    Comme le fait observer themayu, le job est fait par les lignes 3 et 4.

    Il suffit de terminer le processus en respectant la logique adoptée : on est passé d'un format texte à un format date, il faut repasser au format texte avant d'affecter le résultat à la colonne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     6 COL_Provisite = ChaineVersDate(dUneDate) <s>+nNbMois</s>

Discussions similaires

  1. [Dates] Ajouter des mois à une date
    Par tiger63 dans le forum Langage
    Réponses: 8
    Dernier message: 25/05/2007, 16h42
  2. ajouter 8 mois à une date
    Par Myfred dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 07/03/2007, 11h35
  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. [Dates] Ajouter un mois à une date
    Par Higestromm dans le forum Langage
    Réponses: 8
    Dernier message: 17/01/2006, 15h27
  5. ajouter 1 mois à une date dans une requete
    Par alain.lc dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 04/04/2005, 12h05

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