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

VBA Access Discussion :

date ajout de 6 mois automatique comment faire


Sujet :

VBA Access

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 745
    Points : 202
    Points
    202
    Par défaut date ajout de 6 mois automatique comment faire
    bonjour

    j'ai un champ date et un autre champ numérique qui correspond a un nombre de mois.

    je souhaite par exemple que pour la date 16/05/2007 et qui a pour champ numérique 6 (6mois) on ai comme résultat dans un nouveau champ 15/11/2007 ( oui j'ai oublie a la date du jour on doit enleve 1 jour)

    je souhaiterai également avoir la possibilité de modifier le résultat pour des cas tres rare

    comment faire tout cela??

  2. #2
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 86
    Points
    86
    Par défaut
    Bonjour,

    Je n'ai pas compris ce que tu voulais faire.
    Si tu pouvais être plus précis.

    Cordialement,

    Antoine

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 745
    Points : 202
    Points
    202
    Par défaut
    je souhaite a une date (16/05/2007 ) ajoute par exemple 6 mois et y enleve 1 jour sa doit me donnée pour mon exemple
    16-1=15 pour les jours
    05+6=11 mois
    2007 ne change par car on est la même année mais a prévoir au cas ou on change d'année

    donc ici 15/11/2007 voila le résultat que je veux avoir et cela grace a la saisie du nombre de mois ici 6

    tu comprend??

  4. #4
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Hello !

    Tu crées un petit code VBA, dans le style de celui ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim Jour    As Integer
    Dim Mois    As Integer
    Dim Annee   As Integer
     
        Jour = Day(Me!txtDate) - 1
        Mois = Month(Me!txtDate) + Me!txtMois
        Annee = IIf(Month(Me!txtDate) + Me!txtMois >= 12, Year(Me!txtDate), Year(Me!txtDate) + 1)
     
        Me!txtResultat = DateSerial(Annee, Mois, Jour)
    Me!txtDate étant le control recevant l'information du jour
    Me!txtMois le nombre de mois à ajouter
    Me!txtResultat.. le résultat

    Suivant l'évènement que tu choisis pour appeler ce code, cela te laisse le champ libre pour modifier manuellement - si besoin - ton control "Me!txtResultat"

  5. #5
    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,

    On peut concevoir dans une requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT tblDateHeure.Date, DateAdd("m",6,[Date]) AS Plus1Trimestre,
     DateAdd("d",6,[Date]) AS Pus6Jours
    FROM tblDateHeure;
    Cordialement.

  6. #6
    Débutant  
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 745
    Points : 202
    Points
    202
    Par défaut
    j'aime bien ta solution mais je rencontre un probleme si on prendre une date 01/01/2007
    pour 3 mois sa fait 31/03/2007 sa marche
    pour 6 mois sa fait 30/06/2007 sa marche aussi
    pour 12 mois sa fait 31/12/2007 sa marche pas
    j'ai pour infor modifier une ligne comme sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        Annee = IIf(Month(Me!DATE_RECEPTION) + Me!NB_MOIS_GP >= 12, Year(Me!DATE_RECEPTION) + 1, Year(Me!DATE_RECEPTION))
    voila mon code complet c ou le probleme???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim Jour    As Integer
    Dim Mois    As Integer
    Dim Annee   As Integer
     
        Jour = Day(Me!DATE_RECEPTION) - 1
        Mois = Month(Me!DATE_RECEPTION) + Me!NB_MOIS_GP
        Annee = IIf(Month(Me!DATE_RECEPTION) + Me!NB_MOIS_GP >= 12, Year(Me!DATE_RECEPTION) + 1, Year(Me!DATE_RECEPTION))
     
        Me!DATE_DEBUT_VERSE_GP = DateSerial(Annee, Mois, Jour)

  7. #7
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Hey... je te signale que 01.01.2007 plus 12 mois moins 1 jour, cela donne 31.12.2007 !

    et... je ne vois pas de problème dans ton code. J'ai testé le mien il fonctionne et tu as simplement modifié les noms des controls...

  8. #8
    Débutant  
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 745
    Points : 202
    Points
    202
    Par défaut
    je comprend pas je te joint le formulaire pour que tu regarde sa marche pas chez moi

  9. #9
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Alors, deux choses...
    1. Il te faut modifier l'ordre de tabulation de ton control "NB_MOIS_GP" qui, étant le dernier du formulaire te mènes à l'enregistrement suivant dès que tu presses "TAB" ou "RETURN"
    2. Le code, sera plus pertinent si tu le colles sur l'évènement "Après MAJ" de ton control "NB_MOIS_GP"
    Tu auras donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Option Compare Database
     
    Private Sub DATE_DEBUT_VERSE_GP_GotFocus() ' A supprimer, ici uniquement pour souligner le "transfert" du code"
    End Sub
     
    Private Sub NB_MOIS_GP_AfterUpdate()
    Dim Jour    As Integer
    Dim Mois    As Integer
    Dim Annee   As Integer
     
        Jour = Day(Me!DATE_RECEPTION) - 1
        Mois = Month(Me!DATE_RECEPTION) + Me!NB_MOIS_GP
        Annee = IIf(Month(Me!DATE_RECEPTION) + Me!NB_MOIS_GP >= 12, Year(Me!DATE_RECEPTION) + 1, Year(Me!DATE_RECEPTION))
     
        Me!DATE_DEBUT_VERSE_GP = DateSerial(Annee, Mois, Jour)
    End Sub
    Dans le code attaché à ton formulaire "LOGEMENT Sous-formulaire"... voir ci-dessous

  10. #10
    Débutant  
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 745
    Points : 202
    Points
    202
    Par défaut
    ok merci sa marche j'ai trouve merci bcp de ton aide

  11. #11
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Et de simplement faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim dte as date
     
       dte = Date
       dte = (Dateadd("m",6,dte) - 1)
    Ca le ferait?

  12. #12
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Hello !

    Oui, c'est une superbe idée !!

    Cela demande néamoins une petite adaptation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim dte As Date
        dte = Me!DATE_RECEPTION
        dte = (DateAdd("m", Me!NB_MOIS_GP, dte) - 1)
        Me!DATE_DEBUT_VERSE_GP = dte
    Merci fold85 !

  13. #13
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Haha, ca fait plaisir. Je cartonne fort pour un premier post

  14. #14
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Citation Envoyé par fold85 Voir le message
    Haha, ca fait plaisir. Je cartonne fort pour un premier post
    Ton pseudo c'est "Popofpopof " ?


  15. #15
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Je ne comprends pas (je suis Québécois tu vois...)

  16. #16
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Ah ok, tu fais référence à mes félicitations !

    OK alors, tu cartonnes TRES fort !!

    ... et bienvenue à toi !

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

Discussions similaires

  1. Ajout/suppression/maj en cascade, comment faire ?
    Par isoman dans le forum Forms
    Réponses: 5
    Dernier message: 30/05/2008, 19h06
  2. Réponses: 2
    Dernier message: 29/08/2007, 13h32
  3. Réponses: 3
    Dernier message: 19/06/2007, 22h34
  4. [XSLT] Tri de date par mois : comment faire ?
    Par sdkddk dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 04/08/2006, 21h37
  5. comment faire pour avoir Date JJ/MM/YYYY
    Par zaoueche dans le forum Débuter
    Réponses: 2
    Dernier message: 27/10/2005, 09h59

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