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

Access Discussion :

Additionner des années a une date.


Sujet :

Access

  1. #1
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut Additionner des années a une date.
    Bonjour,

    J'ai effectué des recherches sur le forum dans le but de trouver quelque chose qui correspondrait a mon besoin, sauf que, je n'arrive pas trouver une technique que je pourrais adapté a mon besoin.

    J'explique,

    j'ai dans mon formulaire un champ date ayant le nom : date d'entrée en vigueur.

    Une liste déroulante contenant 3 valeur.

    phase 1 = la phase 1 correspond a 2 ans.
    phase 2 = la phase 2 correspond a 3 ans.
    phase 3 = la phase 3 correspond a 2 ans.

    et un champ qui sera renseigné une fois le choix fait d'une valeur dans la liste déroulante.

    exemple :

    Entrée en vigueur :

    01/01/2017 + 2 ans de la phase 1 = 01/01/2019.

    c'est possible de le faire ?

    merci par avance.

    cordialement

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonsoir,
    il faut utiliser DateAdd (Ajdate en français)
    https://msdn.microsoft.com/fr-fr/lib...ffice.15).aspx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mydate = DateAdd("yyyy",2,"01/01/2017")
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonsoir tee_grandbois,

    Merci pour votre réponse, mais dans mon cas, le calcul de la nouvelle date est fonction de l'une des 3 valeurs de la liste déroulante, le résultat s'affichera dans un autre champs qui se renseignera, une fois le choix fait.

    merci.

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    J'indiquais uniquement la piste à chercher.
    Je vais donc spécifier plus précisément : en admettant que la date est dans la colonne 0 et la durée dans la colonne 1 de la liste de valeurs, le code devrait ressembler à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.[date d'entrée en vigueur] = DateAdd("yyyy",Me.ListeValeur.column(1),Me.ListeValeur.column(0))
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonsoir,

    Désolé pour le retard, je rentre a l'instant, je crois que le choses sont de plus en plus clair.

    Pour le test j'avais deja le champ date, puis j'ai crée une liste valeur avec les valeurs 2;3 et la je coince, le code ne fonctionne pas.

    j'ai mis le code sur l'evement apres maj du formulaire.

    dois avoir un autre champ pour le resutat du calcul ?

    salutations.

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonsoir,
    j'ai mis le code sur l'evement apres maj du formulaire
    C'est mieux sur clic ou après maj de la liste de valeurs.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  7. #7
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    merci pour votre réponse, je ferais le test une fois a la maison, je voudrais juste savoir comment obtenir le résultat, en créant un nouveau champ ?

    cordialement.

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonjour,
    il est possible de créer un contrôle indépendant (c'est à dire non lié à une source de données) qui affichera la nouvelle valeur mais l'inconvénient c'est qu'il ne stocke pas les données. Si on veut garder la nouvelle valeur, il vaut mieux stocker le résultat dans le champ d'une table.
    Il est possible de mettre à jour l'ancienne valeur avec la nouvelle, mais dans ce cas, il faut contrôler la saisie (par exemple ne permettre la mise à jour uniquement si la date actuelle d'entrée en vigueur est inférieure ou égale à l'année de la date système), sinon on pourrait additionner n années à chaque clic et arriver vite fait en 2051 !
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  9. #9
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonsoir,

    Alors, j'ai effectué un test et j'ai le message d'erreur suivant : erreur d’exécution 94
    Utilisation incorrecte de Null

    Null ! je pense qu'il fait allusion a moi la.

    Plus sérieusement je rame la, pourtant je sais que la solution est sous mon nez

    cordialement.

  10. #10
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    le mieux c'est de montrer le code ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  11. #11
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Le voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub anne_AfterUpdate()
    Me.[Date_d'execution] = DateAdd("yyyy", Me.annee.Column(2), Me.anne.Column(3))
    End Sub

  12. #12
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Heuu il faut lire année

  13. #13
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Heuu il faut lire année
    je dirai plutôt anne si je regarde le nom du sub : Private Sub anne_AfterUpdate()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.[Date_d'execution] = DateAdd("yyyy", Me.anne.Column(2), Me.anne.Column(3))
    Peut-on voir la source de la liste déroulante (apparemment, il y a au moins 4 colonnes) ? C'est la propriété "Contenu" de l'onglet "Données" du contrôle "anne".
    Pour info, il faudrait éviter de mettre des caractères réservés tels que ' dans le nom des champs.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  14. #14
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    dans la proprieté contenu de la liste deroulante, c'es ainsi :

    2;3

  15. #15
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Il n'y a donc qu'une seule colonne dans anne, la mise à jour serait donc comme ceci, je pense :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.[Date_d'execution] = DateAdd("yyyy", Me.[Date_d'execution], Me.anne.Column(0))
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  16. #16
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Je suis vraiment désolé, ça ne marche pas.

  17. #17
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Désolé, les champs étaient dans le désordre ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.[Date_d'execution] = DateAdd("yyyy", Me.anne.Column(0), Me.[Date_d'execution])
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.[champ_resultat] = DateAdd("yyyy", Me.anne.Column(0), Me.[Date_d'execution])
    si le résultat doit être mis dans un autre contrôle
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  18. #18
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    hey ca marche super bien, j'ai utilise la seconde solution qui propose un resultat, juste que la liste valeur ne se vide pas sur les autres enregistrements, il doit y avoir un truc ?

  19. #19
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    juste que la liste valeur ne se vide pas sur les autres enregistrements
    je n'ai pas tout compris là ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  20. #20
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    c'est a dire que la valeur choisie dans la liste valeur, reste meme quand je passe a un autre enregistrement.

Discussions similaires

  1. [AC-2000] ajouter des années a une date
    Par alex61 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 18/01/2011, 10h35
  2. [AC-2007] Ajouter des années a une date !
    Par kamikaze.team dans le forum IHM
    Réponses: 4
    Dernier message: 02/06/2010, 16h53
  3. Récupérer le mois et l'année d'une date
    Par missllyss dans le forum SQL
    Réponses: 2
    Dernier message: 23/09/2003, 09h17
  4. requête sur l'année d'une date
    Par jo77 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/07/2003, 09h28
  5. Récupérer l'année d'une date
    Par delphim dans le forum Langage SQL
    Réponses: 3
    Dernier message: 15/01/2003, 16h33

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