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

IHM Discussion :

calcul de l'âge année, mois


Sujet :

IHM

  1. #1
    Membre du Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 64
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2008
    Messages : 79
    Points : 63
    Points
    63
    Par défaut calcul de l'âge année, mois
    Bonsoir,
    Dans un formulaire, je désire calculer l'ancienneté du personnel du type :
    "X" années "Y" mois.
    Dans une zone de texte je calcule l'année :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Ent((Date()-[Date_Entr])/365,25)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     =DiffDate("yy";[Date_Entr];Date())
    Je voudrais inscrire dans une autre zone de texte les mois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DiffDate("yymm";[Date_Entr];Date())
    Je n'arrive pas à obtenir le calcul des mois. J'avais lu que "yymm" permettez d'obtenir les mois restant de l'année ?

    Par avance, merci

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,
    pour te documenter vois ceci :http://access.developpez.com/faq/?pa...alcDureeSoustr

    pour ton cas précis

    si tu entres la date comme ceci
    pour exprimer un date d'embauche le 1er août de l'an passé,

    la fonction suivante (à loger dans un module)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Function Anciennete(Embauche As Date) As String
    Dim diff As Double, NbreAns As Integer, NbreMois As Integer
    diff = Date - Embauche  ' diff en jour
    NbreAns = diff / 365
    NbreMois = (diff - (NbreAns * 365)) / 30
    Anciennete = NbreAns & " année(s) et " & NbreMois & " mois"
    te donnera le résultat :
    1 année(s) et 2 mois

  3. #3
    Membre du Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 64
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2008
    Messages : 79
    Points : 63
    Points
    63
    Par défaut
    Merci ! Je vais mettre en application mais j'avoue que je n'ai encore jamais utiliser de module. Je me contente d'installer dans mon formulaire un "champ texte" et d'inscrire une formule dans "données"-"source contrôle" ou dans "évènement" installer un code.
    Quel est l'usage d'un module ?

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Rassure-toi, ce n'est pas un gros mot !

    C'est l'endroit où loger du code.

    Tu cliques sur "Modules" dans la fenêtre Access
    une fenêtre va s'ouvrir avec
    Option Compare Database
    Option Explicit


    Tu y ajoutes le code
    A la fermeture de la DB, Access te propose de sauver ... tu dis "oui" et c'est fait.

  5. #5
    Membre du Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 64
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2008
    Messages : 79
    Points : 63
    Points
    63
    Par défaut
    J'ai crée ce module nommé "anciennete". Je comprends la formulation. Mais je ne sais pas comment l'installer dans le formulaire.
    Je crée une "zone texte" pour faire apparaitre le résultat, mais comment relier ce module avec cette zone ?

  6. #6
    Membre du Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 64
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2008
    Messages : 79
    Points : 63
    Points
    63
    Par défaut
    Si tous les gros-mots étaient de ce type, nous aurions fait un grand pas dans notre "bétise". . . . .

  7. #7
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Tu as mis cette fonction dans un module.
    Cette fonction est maintenant disponible dans ton application par exemple pour le champ calculé d'une requête, ... dans n'importe quel formulaire ou état.
    Dans ton cas : la source de ta zone de texte est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Anciennete(-ici la valeur de la date d'embauche-)

  8. #8
    Membre du Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 64
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2008
    Messages : 79
    Points : 63
    Points
    63
    Par défaut
    Lorsque j'ouvre la formulaire j'ai un message d'erreur "erreur de compilation" et le code du module s'ouvre avec (Anciennete = NbreAns & " année(s) etc..) NbreAns stabilosé en jaune.
    Pour infos : J'ai un champs au dessus dans lequel on inscris la date d'embauche. Je l'ai nommé DateEmb. J'ai modifié votre code ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Function Anciennete(DateEmb As Date) As String
     
    Dim diff As Double, NbreAns As Integer, NbreMois As Integer
    diff = Date - DateEmb  ' diff en jour
    NbreAns = diff / 365
    NbreMois = (diff - (NbreAns * 365)) / 30
    Anciennete = NbreAns & " année(s) et " & NbreMois & " mois"

  9. #9
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Désolé, je dois préparer le repas !
    Peux-tu poster un extrait de ta DB en version compatible [Access2000].
    J'examinerai vers 14:00)

  10. #10
    Membre du Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 64
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2008
    Messages : 79
    Points : 63
    Points
    63
    Par défaut
    Merci encore de votre aide mais je ne peux pas vous poster ma BD en version compatible 2000, et je dois m'absenter aussi. Je vais refaire une tentative ce soir. Si j'ai bien compris le principe d'un module, on créé le module puis on peut "l'appeler" depuis un formulaire, une requête. C'est le même principe pour un état ?

  11. #11
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Le module sert à loger du code par exemple des fonctions et des routines (sub).
    Parce que, dans notre exemple la fonction est "Public" , elle peut être utilisée dans une requête, formulaire, état ... et même dans une autre fonction !
    Ce que tu appelles, c'est la fonction et non pas le module.
    Dans le module, positionne ton curseur à l'intérieur du mot "function" et enfonce la touche <F1>, l'aide Access s'ouvre à la bonne page.

    Dans ton formulaire si tu as un contrôle nommé "DateEmbauche" qui affiche la date qui nous occupe. Crée une nouvelle zone de texte et indique comme propriété Source contrôle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =anciennete([DateEmbauche])
    et tu constateras le résultat.

Discussions similaires

  1. Comment calculer l'age en année mois et jours en vb6 avec dtpicker
    Par abfalog dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 21/05/2013, 22h39
  2. Calculer l'âge en année, mois et jour
    Par Shaco dans le forum C#
    Réponses: 14
    Dernier message: 23/10/2012, 16h10
  3. Calcul d'écart de date (année, mois, jour,etc)
    Par le.dams dans le forum Access
    Réponses: 7
    Dernier message: 08/01/2011, 17h47
  4. [V6] Calcul d'une durée en année mois jours
    Par herve rennes dans le forum Deski
    Réponses: 7
    Dernier message: 11/02/2009, 23h37
  5. Calcul de date en années ET mois
    Par priest69 dans le forum Access
    Réponses: 2
    Dernier message: 26/09/2005, 18h53

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