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 :

Vérifier si la période des congés est activée ou pas


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Homme Profil pro
    Employer
    Inscrit en
    Août 2015
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Employer
    Secteur : Santé

    Informations forums :
    Inscription : Août 2015
    Messages : 127
    Par défaut Vérifier si la période des congés est activée ou pas
    Bonjour,

    Les période de congé s'active a partir du 01 juin de chaque année.

    Les 30 jours ne se rajoute aux fonctionnaire sauf si la date de la demande est égale ou supérieur a la date du 01/06/année (année 2025).

    Je voulait qu'access m'affiche la dernière date de l'année au condition suivante :
    Si [01/06/2025] > Date 'Exp : Date = #01/02/2025#
    alors il affiche #31/12/2024# '00 jours ajouter pour l'année 2025

    Si [01/06/2025] < Date 'Exp : Date = #08/08/2025#
    #31/12/2025# '30 jour sera ajouter pour l'année 2025

    Le calcule du congés sera crédité avec la fonction (Diffdate) :
    [Date de recutement]-[Nombre des Jour pris des Congé]+[Jour Congé pour l'année]-[Congé sans sold]


    Alors j'ai réaliser un module avec le code suivant :

    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
    17
    18
    19
    20
    21
    22
    Sub ComparerDates()
        Dim Texte84 As Date
        Dim Texte87 As Date
        Dim Texte89 As Date
        Dim Texte91 As Date
        Dim Texte90 As Date
        Dim DateCreationConges As Date
     
        ' Initialisation des dates (exemple
        Texte84 = "01/06/" & Year(Date) - 1 'Ce qui nous donne 01/06/2024
        Texte87 = "01/06/" & Year(Date) 'Ce qui nous donne 01/06/2025
        Texte89 = "31/12/" & Year(Date) - 1 'Ce qui nous donne 31/12/2024
        Texte91 = "31/12/" & Year(Date) 'Ce qui nous donne 31/12/2025
     
        If Texte87 > Date Then
            MsgBox "Le ''Texte87'' est postérieure à la date ''Date''."
        ElseIf Texte87 < Date Then
            MsgBox "Le ''Texte87'' est antérieure à la date ''Date''."
        Else
            MsgBox "Les deux dates sont égales."
        End If
    End Sub
    Le résultat est juste (#01/06/2025# < #08/08/2025#)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     MsgBox "Le ''Texte87'' est antérieure à la date ''Date''."
    1/- J'ai essayer d'afficher la date #01/06/2025# au lieu de " Texte87" et #08/08/202# au lieu de "Date" du message, je n'est pas d'idée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox "La date du "&[Texte87]&" est postérieure à la date "&[Date]&"."
    2/- Je voulait afficher le résultat de la variable "Texte90" du module, automatiquement dans un champ nommé [Texte90] qui ce trouve dans un formulaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If Texte87 > Date Then
            Texte90=Texte89 'Le Texte90 est un champ date qui existe dans le formulaire
        ElseIf Texte87 < Date Then
            Texte90=Texte91 'Le Texte90 est un champ date qui existe dans le formulaire
        Else
            Texte90=Texte91
        End If
    Je me suis poncher sur un module, car j'ai essayer avec le VBA classique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If Me.Texte87 >= Date Then
    Me.Texte90=Me.Texte89
    Else
    Me.Texte90=Me.Texte91
    End If
    Il m'affiche un résultat faux :

    01/06/2025 > 08/08/2025

    Comment je peut afficher la date dans selon la condition trouver dans un champ existant dans un formulaire ?

    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 148
    Par défaut
    Bonjour,
    En VBA les dates sont toujours au format anglosaxon.

    Ainsi :
    1/6/2025 en dehors de vba (form, report, query) c'est le 1er Juin
    alors qu'en VBA c'est le 6 janvier.

    Partant de cette règle il faut agir en conséquence avec les fonctions de date et Format().

    Ceci est valable pour toutes les dates qui sont antérieures au 13 de chaque mois.

    13/12/2025 sera toujours le 13 décembre
    mais
    12/1/2025 pourra être les 1 décembre ou le 12 janvier.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

Discussions similaires

  1. comptage des congés quand on travaille pas le jeudi
    Par clavier12AZQSWX dans le forum Congés
    Réponses: 3
    Dernier message: 11/01/2023, 12h11
  2. Réponses: 7
    Dernier message: 10/10/2015, 14h56
  3. [XL-2007] Vérifier si le mode "protégé" d'intranet est activé ou pas.
    Par lenovo49 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 16/11/2011, 20h27
  4. Imposer des congés quand on est démissionaire
    Par longbeach dans le forum Démission
    Réponses: 1
    Dernier message: 15/09/2010, 17h39
  5. Valeur par défaut dans un champ dès qu'il est activé
    Par picatchou dans le forum Access
    Réponses: 5
    Dernier message: 27/08/2006, 13h36

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