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 :

fonction jours360


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut fonction jours360
    Salut tout le monde,

    Bon, J'ai l'habitude de travailler sur Excel, mais actuellement je suis entrain de préparer une base de donnés sur Access pour la gestion des congés des employés.

    J'ai besoin de calculer :
    * L'age, L'ancienneté et le nombre de jours de travail de chaque employé.


    Sur Excel j'utilise la fonction JOURS360.

    Alors que sur Access, j'arrive pas à trouver cette fonction.

    J'ai essayé la soustraction de deux dates et aussi la fonction DateDif, mais le résultat est différent que celui donné par Excel

    Pour Excel année = 360 jours, alors que pour Access année = 365 ou 364 jours.

    Le résultat de Access influence le calcul de l'age, l'ancienneté, le nombre de jour de travail et ainsi le congé qui est en fonction de ces trois paramètres.

    Merci de bien vouloir m'aider pour la solution de ce problème.

    Est-ce possible d'importer la fonction JOURS360 de Excel et qu'elle fonctionne correctement en Access ?


    Dans l'attente de vos aimables réponses.

    Merci d'avance.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    bonsoir et bienvenu,
    tu peux importer ta function Excel dans ACCESS,
    dans VBA,
    cocher la référence qui correspond à ta version Exel et Access puis utiliser
    WorksheetFunction.Days360

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function DateEcart()
    Date1 = #7/1/2008#
    Date2 = #8/1/2008#
    Dim j As Double
     
     j = WorksheetFunction.Days360(Date1, Date2, 1)
     
    Debug.Print j
     
    End Function
    bonne continuation

  3. #3
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut JOURS360 SUR ACCESS
    Cher le vieux,

    D'abord, merci beaucoup pour votre réponse.

    Puis, je vous serais très reconnaissante de bien vouloir m'éclairssir les choses, car j'ai pas une expérience en VBA:

    - SVP, comment lier la function que vous m'avez envoyer avec le champ qui va calculer le nombre de jours (sur la base de 360 jours) qui est égale au champs [Date2] - [Date1] ??

    Merci bien pour votre aide.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    le code donné etait pour te permettre de vérifier,
    une fois la référence établie une fonction du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function DateEcart(Date1, Date2 As Date) As Integer
    DateEcart = WorksheetFunction.Days360(Date1, Date2, 1)
     
    End Function
    peut être appelée d'une zone de texte d'un formulaire,
    d'un champ d'une requête,
    tout dépend de ce que tu veux et de la construction de ta base.
    il s'agit d'une fonction propre à la base et dans le générateur d'expression il faut aller la chercher dans fonction, nom de ta base, et lui passer les paramêtres Date1 et Date2 qui sont soit sur des champs de ton formulaire soit dans les champs de ta requête ça ressemble beaucoup à ce que l'on fait dans l'assistant formule d'exel.
    je sais, je sais, c'est pas facile pour une débutante, mais faut pas se décourager, il faut chercher un peu, tester, et si tu n'y arrives pas on sera encore là.....
    pardon si je tutois, c'est pas obligatoire, ni probablement pas une règle, mais c'est courant sur le forum et c'est plus sympa, enfin tu fais comme tu veux,
    à +

  5. #5
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut JOURS360 SUR ACCESS
    Salut vieux,

    Bon, pas de problème pour le tutoiment, c'est plus sympa comme tu l'a dit! D'ailleurs, en anglais c'est plus magique, il y a seulement YOU qui = tu et vous!!

    Tu as raison, ce n'est pas facile, il faut juste comprendre et aller step by step pour y arriver.

    Je vais juste te poser une seule question:

    Dans générateur d'expression j'ai cherché sous fonction, nom de la base mais aucune trace de ma base!!

    Est ce que tu as un idée pour cela??

    de ton aide et a+!!

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    bonsoir,
    as tu, entré ta fonction dans un module d'abord, pour la voir il faut d'abord la créer,
    ensuite il faut l'appeler et la traiter comme n'importe quelle fonction
    on clique dessus elle s'ouvre dans la case de saisie il n'y a plus qu'a lui ajouter les champs dans ce cas Date1 et Date2 :
    vois le doc joint : un dessin vaut souvent mieux qu'un long discours
    bonne continuation,
    à bientôt,

  7. #7
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut JOURS360 SUR ACCESS
    Salut vieux,

    Merci beaucoup pour ton aide! la fonction marche proprement ,

    Pour le moment, je ne vais pas te poser de question parce que je viens juste de commencer à étudier Access Development.

    Si tu connaît des sites offrant des tutoriaux en VBA Access n'hésite pas à me les envoyer.

    Merci encore, c'est très gentil et A+!

  8. #8
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    Sans être chauvin, enfin presque !!! Je dirai que tu es sur le meilleur site concernant les tutoriels, FAQ, et aller même forums concernant Access, donc quand tu arrives sur la page d’accueil du site, n’hésite pas, pose ta question, tu vas surement trouver pour quelqu’un qui débute pratiquement tout ce dont tu as besoin, pour aider les autres j’ai très souvent trouver dans notre site le résultat, soit parce que certains oublie de chercher, n’en ont pas envie (mais là les modérateurs veillent) soit parce que quand on débute on ne sait pas toujours ce que l’on cherche exactement ou on ne pose pas la bonne question dans ce cas le forum est fait pour ça.
    Un lien regroupant les principaux tutoriels parmi tant d’autres pour commencer :
    http://access.developpez.com/

  9. #9
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Erreur dans le champ vide
    Salut le vieux,

    la fonction fonctionne à la merveille, mais il y'a un petit problème:

    quand les champs Date1 et Date2 sont vides, le champ calculé donne "Erreur".

    y'a t-il un moyen (des paramètres à ajouter à la fonction) pour que ce champs n'affiche pas "Erreur" même si les champs Date1 et date2 sont vides.

    Merci pour ton

  10. #10
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    salut
    fait une recherche sur la fonction nz
    exemple

  11. #11
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    bonsoir,
    bien sur qu'on peut, avec VBA on va,
    1) explication didactique !!! ouf n'ai pas peur je ne suis pas prof
    C’est normal que ton champ calcul affiche erreur, à l’ouverture du formulaire on lui demande de faire un calcul sans lui en donner les moyens,
    mais bien sur on peut faire autrement /
    2) A l’ouverture on ne lui demande rien ----> supprimer l’appel à la fonction en l’effaçant dans sa propriété "source contrôle".

    3) Appeler la fonction à partir d’un évènement sur un autre contrôle :

    Exemple sur l’évènement « Après mise à jour » du contrôle Date2. Clic sur les 3 petits points
    Générateur de code et on insère le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Date2_AfterUpdate()
    Me.Texte4.Value = DateEcart(Date1, Date2)
     
    End Sub
    C’est Date2 qui appelle la fonction dès qu’il est mis a jour.
    Le calcul se fera dès qu’on aura entré la date2 et qu’on passe au champ qui affiche le résultat.
    et plus d'erreur affichée
    OK !
    A plus

  12. #12
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut fonction si
    Salut le Vieux,

    D’abord, désolée de ne pas répondre si tôt, j'était très occupée! Et merci pour ta réponse, c’était très utile et intéressant.
    1000 merci.

    Ben, j’ai un autre problème: Dans ma base, j’ai les champs suivants:

    [Age]; [Anciennte]; [JoursTravail]; [CongeDu]

    J’ai besoin de calculer (comme en Excel) le congé dans le champ [CongeDu] qui est en fonction des autres champs:

    [Conge Du] = Si([Age]<18; [JoursTravail]*24/360; si([Anciennte]<5; [JoursTravail]*18/360; si([Anciennte]<10; [JoursTravail]*19.5/360 ;si([Anciennte]<15; [JoursTravail]*21/360; si([Anciennte]<20; [JoursTravail]*22.5/360; si([Anciennte]<25; [JoursTravail]*24/360;[JoursTravail]*26/360))))))

    Je n’ai pas trouvé la fonction Si (ou If ou IIf)en Access.
    Comment pourrais –je la déclarer pour pouvoir l’utiliser dans toute ma base.

    Merci infiniment pour ton aide et ton soutien.

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

Discussions similaires

  1. [XL-2003] Fonction JOURS360 et SI
    Par Katell dans le forum Conception
    Réponses: 2
    Dernier message: 03/02/2015, 14h23
  2. Fonction JOURS360 dans BO
    Par winnie0931 dans le forum Débuter
    Réponses: 0
    Dernier message: 08/12/2014, 10h39
  3. utilisation fonction jours360
    Par ninicab dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/07/2008, 19h44
  4. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 11h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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