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 :

Date des congés annuels


Sujet :

Access

  1. #121
    Membre habitué
    Homme Profil pro
    administartion
    Inscrit en
    Avril 2017
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : administartion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2017
    Messages : 349
    Points : 135
    Points
    135
    Par défaut
    Citation Envoyé par EricDgn Voir le message
    Bonjour,

    En fait l'état "tAgtDOC4" (résultat d'une analyse croisée) n'a plus grand chose à voir avec ce qui est affiché dans le formulaire "CngAgtListe" (liste simple). Il faut donc supprimer la dernière partie de l'instruction et la réduire à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        DoCmd.OpenReport "tAgtDOC4", acViewPreview
    On pourrait tout au plus tenir compte de la direction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub btnPrint_Click()
        If "" & Me.cbDir = "" Then
            DoCmd.OpenReport "tAgtDOC4", acViewPreview
        Else
            DoCmd.OpenReport "tAgtDOC4", acViewPreview, , "[AgtDirection]='" & Me.cbDir & "'"
        End If
    End Sub
    Cordialement.
    bonjour,

    j'ai rajouté un filtre de situation agent(opérationnel; non opérationnel) en respectant les requêtes mais je ne comprend pas pour le résultat de l'état ne filtre pas !!!!!!!!!!! ou est l'erreur.
    cordialement.
    Nom : parsituation.jpg
Affichages : 220
Taille : 382,2 Ko


    je viens tester ceci en laissannt filtrer et DoCmd.OpenReport "tAgtDOC4", acViewPreview, , Me.Filter comme ceci et ca marche:.........

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub btnPrint_Click()
     
        Filtrer
     
        DoCmd.OpenReport "tAgtDOC4", acViewPreview, , Me.Filter
     
     
        If "" & Me.cbDir = "" Then
            DoCmd.OpenReport "tAgtDOC4", acViewPreview
        Else
            DoCmd.OpenReport "tAgtDOC4", acViewPreview, , "[AgtDirection]='" & Me.cbDir & "'"
        End If
    End Sub
    Fichiers attachés Fichiers attachés

  2. #122
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 239
    Points : 5 610
    Points
    5 610
    Par défaut
    Bonjour,

    Pour cet ajout, le filtre est à compléter. Une façon de faire:
    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
    Private Sub btnPrint_Click()
        'Filtrer    '--- utile pour les états CngAgtListeDoc et CngAgtListeDoc2, inutile pour tAgtDOC4
        'Debug.Print Me.Filter
        'DoCmd.OpenReport "CngAgtListeDoc", acViewPreview, , Me.Filter
        'DoCmd.OpenReport "CngAgtListeDoc2", acViewPreview, , Me.Filter
     
        Dim sFiltreDOC As String
        sFiltreDOC = ""
        If "" & Me.cbDir <> "" Then
            sFiltreDOC = sFiltreDOC & " AND [AgtDirection]='" & Me.cbDir & "'"
        End If
        If "" & Me.sitagttxt <> "" Then
            sFiltreDOC = sFiltreDOC & " AND [Agtsituation]='" & Me.sitagttxt & "'"
        End If
        If sFiltreDOC = "" Then
            DoCmd.OpenReport "tAgtDOC4", acViewPreview
        Else
            DoCmd.OpenReport "tAgtDOC4", acViewPreview, , Mid(sFiltreDOC, 6)
        End If
    End Sub
    Cordialement.

  3. #123
    Membre habitué
    Homme Profil pro
    administartion
    Inscrit en
    Avril 2017
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : administartion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2017
    Messages : 349
    Points : 135
    Points
    135
    Par défaut
    Bonjour,

    donc pour avoir les autres états faut il faire comme suit?????:

    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
    23
    24
    25
    26
    27
    28
    Private Sub btnPrint_Click()
        'Filtrer    '--- utile pour les états CngAgtListeDoc et CngAgtListeDoc2, inutile pour tAgtDOC4
        '-------                              ---------------   ---------------  ---------------------
        'Debug.Print Me.Filter
        'DoCmd.OpenReport "CngAgtListeDoc", acViewPreview, , Me.Filter
        'DoCmd.OpenReport "CngAgtListeDoc2", acViewPreview, , Me.Filter
     
        Dim sFiltreDOC As String
        sFiltreDOC = ""
        If "" & Me.cbDir <> "" Then
            sFiltreDOC = sFiltreDOC & " AND [AgtDirection]='" & Me.cbDir & "'"
        End If
     
        If "" & Me.TXTSITAgt <> "" Then
            sFiltreDOC = sFiltreDOC & " AND [Agtsituation]='" & Me.TXTSITAgt & "'"
        End If
        If sFiltreDOC = "" Then
            DoCmd.OpenReport "tAgtDOC4", acViewPreview
            DoCmd.OpenReport "CngAgtListeDoc", acViewPreview
            DoCmd.OpenReport "CngAgtListeDoc2", acViewPreview
            DoCmd.OpenReport "CngAgtListeDoc3", acViewPreview
        Else
            DoCmd.OpenReport "tAgtDOC4", acViewPreview, , Mid(sFiltreDOC, 6)
            DoCmd.OpenReport "CngAgtListeDoc", acViewPreview, , Mid(sFiltreDOC, 6)
            DoCmd.OpenReport "CngAgtListeDoc2", acViewPreview, , Mid(sFiltreDOC, 6)
            DoCmd.OpenReport "CngAgtListeDoc3", acViewPreview, , Mid(sFiltreDOC, 6)
        End If
    End Sub
    SVP LA LECTURE DE IF :

    si le champ  situation agent est vide ou différent 
       filtrer selon le contenu de votre choix 
    fin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If "" & Me.TXTSITAgt <> "" Then
            sFiltreDOC = sFiltreDOC & " AND [Agtsituation]='" & Me.TXTSITAgt & "'"
    End If

    CORDIALEMENT.

  4. #124
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 239
    Points : 5 610
    Points
    5 610
    Par défaut
    Bonjour,

    Pour avoir les différents états:
    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
    Private Sub btnPrint_Click()
        Filtrer    '--- utile pour les états CngAgtListeDoc et CngAgtListeDoc2, inutile pour tAgtDOC4
        'Debug.Print Me.Filter
        DoCmd.OpenReport "CngAgtListeDoc", acViewPreview, , Me.Filter
        DoCmd.OpenReport "CngAgtListeDoc2", acViewPreview, , Me.Filter
        DoCmd.OpenReport "CngAgtListeDoc3", acViewPreview, , Me.Filter
     
        Dim sFiltreDOC As String
        sFiltreDOC = ""
        If "" & Me.cbDir <> "" Then
            sFiltreDOC = sFiltreDOC & " AND [AgtDirection]='" & Me.cbDir & "'"
        End If
        If "" & Me.TXTSITAgt <> "" Then
            sFiltreDOC = sFiltreDOC & " AND [Agtsituation]='" & Me.TXTSITAgt & "'"
        End If
        If sFiltreDOC = "" Then
            DoCmd.OpenReport "tAgtDOC4", acViewPreview
        Else
            DoCmd.OpenReport "tAgtDOC4", acViewPreview, , Mid(sFiltreDOC, 6)
        End If
    End Sub
    Cordialement.

  5. #125
    Membre habitué
    Homme Profil pro
    administartion
    Inscrit en
    Avril 2017
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : administartion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2017
    Messages : 349
    Points : 135
    Points
    135
    Par défaut
    Bonjour,
    Merci je l'ai testé c'est ok.
    Cordialement.

  6. #126
    Membre habitué
    Homme Profil pro
    administartion
    Inscrit en
    Avril 2017
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : administartion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2017
    Messages : 349
    Points : 135
    Points
    135
    Par défaut
    Citation Envoyé par EricDgn Voir le message
    Bonjour,

    Pour avoir les différents états:
    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
    Private Sub btnPrint_Click()
        Filtrer    '--- utile pour les états CngAgtListeDoc et CngAgtListeDoc2, inutile pour tAgtDOC4
        'Debug.Print Me.Filter
        DoCmd.OpenReport "CngAgtListeDoc", acViewPreview, , Me.Filter
        DoCmd.OpenReport "CngAgtListeDoc2", acViewPreview, , Me.Filter
        DoCmd.OpenReport "CngAgtListeDoc3", acViewPreview, , Me.Filter
     
        Dim sFiltreDOC As String
        sFiltreDOC = ""
        If "" & Me.cbDir <> "" Then
            sFiltreDOC = sFiltreDOC & " AND [AgtDirection]='" & Me.cbDir & "'"
        End If
        If "" & Me.TXTSITAgt <> "" Then
            sFiltreDOC = sFiltreDOC & " AND [Agtsituation]='" & Me.TXTSITAgt & "'"
        End If
        If sFiltreDOC = "" Then
            DoCmd.OpenReport "tAgtDOC4", acViewPreview
        Else
            DoCmd.OpenReport "tAgtDOC4", acViewPreview, , Mid(sFiltreDOC, 6)
        End If
    End Sub
    Cordialement.
    bonjour,

    je voudrai .....
    Prendre en considération les congés pris par mois et aussi le reste des tris (direction, motif 2020/2021, 2021/2022…etc)
    Si je cherche l’évolution des congés pris en mois de janvier 01/01/2022 au 31/01/2022 sue l’état s’affiche :
    Comme suit :
    CrNbJ =15 pour amine
    CuNbJ = 5 pour amine
    Solde = 3
    Et les totaux restent.

    Sur Excel je ferai les évolutions mensuelles exemple :
    Le mois de janvier 5/15 = 33.33 %
    cordialement
    Nom : var congés.png
Affichages : 193
Taille : 121,6 Ko

  7. #127
    Membre habitué
    Homme Profil pro
    administartion
    Inscrit en
    Avril 2017
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : administartion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2017
    Messages : 349
    Points : 135
    Points
    135
    Par défaut
    bonjour,

    le pricipe dans les congés c'est d'appuer l'exercice précédant et suite l'encours.
    2020/2021 = 13 (reliquat)
    2021/2022 = 30 (en cous)
    si l'agent prend 20 jours de congé(actuellement je défalques les 13 en suite je defalques 7 jours
    le mieux c'est d'avoir un un champ qui fait le total = 43 et à partir de ce 43 il défalque des 13 + 7
    donc Motif : Annuel 2020/2021 = 0 et Annuel 2021/2022 = 23 serait il possible de le faire.

    cordialement.
    Fichiers attachés Fichiers attachés

  8. #128
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 239
    Points : 5 610
    Points
    5 610
    Par défaut
    Bonjour,

    Oui, il faut faire comme cela, en 2 fois: épuiser le congés d'une année, puis retirer les congés dans l'autre année.
    Il est certainement possible de faire ce que vous demandez, mais pour moi c'est vraiment se mettre des complications pour vraiment pas grand chose.

    Cordialement.

  9. #129
    Membre habitué
    Homme Profil pro
    administartion
    Inscrit en
    Avril 2017
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : administartion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2017
    Messages : 349
    Points : 135
    Points
    135
    Par défaut
    Citation Envoyé par EricDgn Voir le message
    Bonjour,

    Oui, il faut faire comme cela, en 2 fois: épuiser le congés d'une année, puis retirer les congés dans l'autre année.
    Il est certainement possible de faire ce que vous demandez, mais pour moi c'est vraiment se mettre des complications pour vraiment pas grand chose.

    Cordialement.
    bonjour,

    je suis tout à fait d'accord avec vous mais dans ce cas et j'ai d'autres cas qui ne me donne pas le même résultat du retour du congé voir image ci-dessous:

    peut être qu'il faut ajouter une autre condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Weekday(tmpDate, vbSunday) < 6 And DCount("*", "tJF", "JFDate=" & CDbl(tmpDate)) = 0 Then
    cordialement.


    Nom : reaprtition-congé.jpg
Affichages : 141
Taille : 232,9 Ko

  10. #130
    Membre habitué
    Homme Profil pro
    administartion
    Inscrit en
    Avril 2017
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : administartion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2017
    Messages : 349
    Points : 135
    Points
    135
    Par défaut
    bonjour,

    si je supprime ce code ça marche par rapport à ce que j'ai constaté dans mon message précèdent est ce que c'est correcte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CuDDbt_BeforeUpdate(Cancel As Integer)
        If Weekday(Me.CuDDbt, vbSunday) > 5 Then
            MsgBox "Non admis: un congé ne peut commencer un vendredi ou un samedi.", , "Annulé"
            Me.Undo
            Cancel = True
        ElseIf DCount("*", "tJF", "JFDate=" & CDbl(Me.CuDDbt)) > 0 Then
            MsgBox "Non admis: un congé ne peut commencer un jour férié.", , "Annulé"
            Me.Undo
            Cancel = True
        End If
    End Sub

  11. #131
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 239
    Points : 5 610
    Points
    5 610
    Par défaut
    Bonjour,

    C'est plus compliqué que cela. En fait vous voulez traiter le cas particulier où l'on prend un long congé "calendrier" sur des droits à congé obtenus pour 2 années différentes. Cela peut se faire ainsi:
    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
    23
    Private Sub CuDDbt_BeforeUpdate(Cancel As Integer)
        Dim CuNum As Long, IsCC As Boolean
        '--- congé précédent de type calendrier ?
        IsCC = False
        CuNum = Nz(DMax("CuN°", "rCuAgt", "Cr_AgtN°=" & Me.Cr_AgtN° & " And CuN°<" & Me.CuN°), 0)
        If CuNum > 0 Then
            IsCC = DLookup("MtfCC", "rMtfAgt", "CrN°=" & Me.Cu_CrN°)
        End If
        '---
        If IsCC Then
            '--- pas de restriction, le congé qui précède étant du type "jours calendrier"
        Else
            If Weekday(Me.CuDDbt, vbSunday) > 5 Then
                    MsgBox "Non admis: un congé ne peut commencer un vendredi ou un samedi.", , "Annulé"
                    Me.Undo
                    Cancel = True
            ElseIf DCount("*", "tJF", "JFDate=" & CDbl(Me.CuDDbt)) > 0 Then
                MsgBox "Non admis: un congé ne peut commencer un jour férié.", , "Annulé"
                Me.Undo
                Cancel = True
            End If
        End If
    End Sub
    où la requête rCuAgt est la suivante:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT tCu.CuN°, tCu.Cu_CrN°, tCu.CuNbJ, tCu.CuDDbt, tCr.Cr_AgtN°, tCr.Cr_MtfN°, tCr.CrDate, tCr.CrNbJ, tCu.CuDoc, tCu.CuNote
    FROM tCr RIGHT JOIN tCu ON tCr.CrN° = tCu.Cu_CrN°;
    A vérifier.
    Cordialement.
    Fichiers attachés Fichiers attachés

  12. #132
    Membre habitué
    Homme Profil pro
    administartion
    Inscrit en
    Avril 2017
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : administartion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2017
    Messages : 349
    Points : 135
    Points
    135
    Par défaut
    Bonjour,

    après vérification ..ça fonctionne parfaitement merci pour votre aide.

    Cordialement

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/07/2020, 09h55
  2. Réponses: 2
    Dernier message: 26/03/2008, 14h47
  3. pose des congés annuel
    Par philippe24 dans le forum Congés
    Réponses: 2
    Dernier message: 19/02/2008, 18h16
  4. Gestion des congés sous access
    Par squalito dans le forum Access
    Réponses: 1
    Dernier message: 09/08/2006, 23h34
  5. Thème: gestion des congés
    Par rosah dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 31/08/2005, 13h10

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