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 :

Gestion des présences en entreprise.


Sujet :

Access

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Gestion des présences en entreprise.
    Bonjour,

    Je me réfère à ce tutoriel : Création d'un planning pour la gestion des présences en entreprise.

    Merci pour ce développement, serait-il possible de modifier directement les données dans le tableau, ceci sans utiliser les R_Presence ? En d'autres termes, peut-on créer un tableau de la sorte afin de préparer un planning à l'avance avec plusieurs codes différents (C = Congé, J = 08h00-18h00, V = Vacances, etc.).

    Merci pour votre aide

    Florian

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 268
    Points : 19 438
    Points
    19 438
    Billets dans le blog
    63
    Par défaut
    Salut,

    Si j'ai bien compris ta demande:
    Il te faut créer une table (T_Code) pour enregistrer tes différents codes:
    (C = Congé, J = 08h00-18h00, V = Vacances, etc.).

    Dans la table T_Presence, tu remplaces Presence par CodeJ

    et après dans le formulaire F_Saisie tu remplaces la case à cocher par une liste déroulante basé sur le champ [B]CodeJ/B] du type texte...

    Tu peux t'inspirer des bases Planningv1.1 et Planningv3.1 dans ce fichier:
    Plannings


    En fait, tout dépend de ton niveau
    Il faut connaître un minimum les requêtes et le code VBA...
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Hello,

    Merci beaucoup pour ces infos, je pense que je vais m'en sortir, car j'ai déjà bien utilisé ton fichier Planning mensuel des présences. J'y ai ajouté un contrôle des heures sup tenant compte des heures devant être accomplies selon le Code de service. J'ai toutefois un problème lorsque je double-clic pour ouvrir F_Saisie (sur ma base ainsi que sur la tienne).

    J'ai un message d'erreur (cf. printscreen joint, erreur à la ligne DoCmd.OpenForm "F_Saisie", , , "[NB]=" & NB & " and [DateD]<=" & FDateUs(DateJ) & " and [DateF]>=" & FDateUs(DateJ) et je ne sais pas comment corriger. Cela est peut-être dû au fait que je travaille avec Access 2007 SP3 ...

    Florian
    Images attachées Images attachées  

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 598
    Points : 34 282
    Points
    34 282
    Par défaut
    salut,
    le format de date doit être #MM/DD/YYYY# et non pas #MM.DD.YYYY#
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci pour le renseignement,

    Après quelques heures j'ai identifié la cause :

    FDateUs = "#" & Format(vDate, "m/d/yy") & "#" et non

    FDateUs = "#" & Format(vDate, "mm/dd/yyyy") & "#"

    Maintenant que cela fonctionne bien, j'ai identifié un dernier "bug" par rapport à ce que je voulais faire. En effet, lorsque l'on fait une modification sur le planning, il ne corrige pas l'enregistrement correspondant dans la table T_Presence, mais en ajoute un nouveau. Je ne peux donc pas travaillé avec ces lignes facilement car j'ai des doublons pour un même jour/personne. C'est embêtant car j'ai ajouté dans ma table T_Presence les heures d'arrivée / de départ, les repas prix (oui/non) et un champs commentaires afin que chaque collègue puissent tenir son propre décompte. Ainsi si le CodeJ change, il va perdre les autres infos et aucun calcul ne pourra être fait car il faut un enregistrement par personne/date.

    J'imagine que l'amélioration doit se faire au niveau de l'appel du F_Saisie et de sa gestion. Je suis toutefois largué. Si quelqu'un peut m'aider ce serait sympa (Je suis parti de PlanningV1.1).

    Florian

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 268
    Points : 19 438
    Points
    19 438
    Billets dans le blog
    63
    Par défaut
    Salut,

    Peux-tu joindre ta base au format 2000, il faudrait que je vois ce que tu as modifié parce que à priori quand tu modifies l'enregistrement dans le formulaire F_Saisie, ça ne doit pas ajouter un nouvel enrg. comme dans ton cas...

    Il serait mieux de mettre le format des dates dans les paramètres régionaux avec des "/" au lieu des "."

    (Panneau de configuration windows -> Options régionales date...->)
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Salut,

    Je ne crois pas que j'ai modifié quelque-chose à ce sujet. Il m'est toutefois important de pouvoir modifier les CodeJ car cela change souvent dans mon service.

    Pour ce qui est des paramètres régionaux, je vais voir si je peux le faire, mais je ne suis pas admin de mon poste.

    Merci pour le coup de main, je pense que cela pourra servir à d'autres utilisateurs.
    Fichiers attachés Fichiers attachés

  8. #8
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 268
    Points : 19 438
    Points
    19 438
    Billets dans le blog
    63
    Par défaut
    Re,

    Tu as changé le champ NB de la table présence en type Texte

    Donc dans la fonction d'ouverture du formulaire F_Saisie il te faut mettre des quotes (') entre NB:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "[NB]='" & NB & "' and [DateJ]=" & FDateUs(DateJ)
    La fonction devient donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Sub OuvrirFormSaisie(NB As Long, j As Integer)
    Dim DateJ As Date
     
    DateJ = DateSerial(Forms!F_Planning!An, Forms!F_Planning!Mois, j)
     
    DoCmd.OpenForm "F_Saisie", , , "[NB]='" & NB & "' and [DateJ]=" & FDateUs(DateJ)
     
    Forms!F_Saisie!NB.Value = NB
    Forms!F_Saisie!Jour.Value = DateJ
     
    End Sub

    D'autre part,
    Dans le formulaire de F_Saisie au champ CodeJ
    tu as mis pour valeur par défaut "J3":

    Je te conseille de ne rien mettre comme valeur par défaut comme cela tu verras si tu ajoute un nouvel enrg. (champ CodeJ vide) ou pas...

    Dans ce même formulaire quand tu cliques sur ok tu ajoutes un nouvel enrg. ou modifie celui en cours.
    Si tu veux juste consulter alors appuies sur annuler.


    Enfin,

    pour les dates, changes les paramètres dates de ta machine en français(France) et utilise le format:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function FDateUs(vDate As Date) As String
    FDateUs = "#" & Format(vDate, "mm/dd/yyyy") & "#"
    End Function
    Sinon,

    Essaie ce format:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function FDateUs(vDate As Date) As String
    FDateUs = "#" & Format(vDate, "m-d-yyyy") & "#"
    End Function
    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Salut,

    Merci pour ces corrections, j'avais dû mettre le champs NB en typetexte car mes NB sont formés de 3 lettres suivis de 3 chiffres. J'ai finalement retenu que les chiffres car j'ai vu que cela coinçait plus loin.

    Pour en revenir au formulaire F_Saisie, je ne suis pas d'accord avec toi. S'il y a un enregistrement et que l'on presse OK, il en crée un nouveau et ne le modifie pas. J'ai testé avec ta bd planningv1 et on constate (voir sur le fichier joint)qu'il y a par exemple trois enregistrements pour le NB 1006 à la date du 4.12.2009. Ce n'est pas un problème en soit, mais si l'on veut ensuite compter le nombre de valeurs, c'est plus embêtant.

    Amicalement

    Quelques heures plus tard ... après avoir bidouillé dans tous les sens, je m'en suis finalement sorti (problème du format heure). Je me suis encore imprégné de planningv1 (matin / après-midi) pour créer un planning parallèle ou mes collègues indiquent leurs désiratas. Je peux ensuite facilement établir mon planning, car j'ai tout sous les yeux. J'ai aussi ajouter des comptages à droite du planning pour compter le nombre de codeJ et en haut pour déterminer le nombre de personnes à disposition chaque jour, je n'arrive toutefois pas à aligner/contrôler pour ces derniers, les cases jours (1-31) car je suis dans l'entête du formulaire. Bref, si cela t'intéresse, je peux te joindre mon petit développement.

    A+
    Images attachées Images attachées  

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 173
    Points : 75
    Points
    75
    Par défaut
    bonjour

    j'ai egalement une petite question ce ce planning
    je souhaiterai ajouter deux textbox apres les jour du mois et effectuer un calcul
    je m'explique:
    chaque fois que je preste 23.56 heures j'ai un jour de recuperation (rtc) et je souhaiterai que dans une textebox affiche le nombres de trc pour les employés et chaque fois que l'on note un rtc pour le jour ca le décompte et pour les va aussi je souhaiterai partir sur une base de 24 va annuel et déduire du nombre chaque fois que l'on note un va pris

    est ce possible et comment

    merci

  11. #11
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 268
    Points : 19 438
    Points
    19 438
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    Si tu as un champ Heures dans ta table source T_Presence, il faut ajouter ce champ aux requêtes sources, et dans la requête Analyse croisée, en en-tête de lignes ajouter le champ rtc:
    En sql:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select ..., Sum(R_Presence.Heures)/23.56 As rtc
    ...

    En mode création de la requête analyse croisée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Champ:... rtc: Somme(R_Presence.Heures)/23.56
    Opération:... expression
    Analyse:... En-tête de ligne
    Et après ajouter un textbox, lié au champ rtc, à la fin dans le planning ...

    Je n'ai pas tout compris ta demande mais le principe est le même, à toi de l'adapter à ton cas.

    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 173
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par User Voir le message
    Bonjour,

    Si tu as un champ Heures dans ta table source T_Presence, il faut ajouter ce champ aux requêtes sources, et dans la requête Analyse croisée, en en-tête de lignes ajouter le champ rtc:
    En sql:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select ..., Sum(R_Presence.Heures)/23.56 As rtc
    ...

    En mode création de la requête analyse croisée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Champ:... rtc: Somme(R_Presence.Heures)/23.56
    Opération:... expression
    Analyse:... En-tête de ligne
    Et après ajouter un textbox, lié au champ rtc, à la fin dans le planning ...

    Je n'ai pas tout compris ta demande mais le principe est le même, à toi de l'adapter à ton cas.

    A+
    merci pour l'info

    en fait ce que je cherche a faire
    une journée complète de travail = 8h00
    toute les 23.56 heures prestée j'ai droit à un rtc ( repos de travail compensatoir)
    donc je voudrais que chaque fois que je une journée complète dans le planning c'est heures s'additionnent et me donne dans un champ le nombre de rtc que j'ai droit
    soit 3 jours de travail me donne droit à = 1 rtc,
    je ne sait pas si je me suis bien exprimé cette fois ci
    par contre j'ai appliqué tes conseil ci dessus et maintenant lorsque j'encode une valeur dans le planning j'ai une fenetre me demandant " entrer une valeur de parametre"
    merci pour aide

  13. #13
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 268
    Points : 19 438
    Points
    19 438
    Billets dans le blog
    63
    Par défaut
    bonjour,

    Tu dois te servir de ce qu'on te propose pour solutionner ton problème, mais c'est à toi de faire la démarche:

    Une petite aide en fonction de ce que tu as donné:

    Si tu as un champ Pres dans ta requête R_Presence, tu peux ajouter en en-tête de lignes le champ rtc dans ta requête analyse croisée:

    Soit, en mode création de la requête analyse croisée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Champ:... rtc: Compte([R_Presence].[Pres])\3
    Opération:... expression
    Analyse:... En-tête de ligne

    ce qui te fait en mode SQL:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    SELECT ..., Count([R_Presence].[Pres])\3 AS rtc
    ...


    Donc comme tu le vois on compte les jours de présence pour le mois et pour chaque employé et on divise par 3 pour avoir les rtc...
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 25/11/2020, 13h19
  2. [AC-2003] probleme avec Planning pour la gestion des présences en entreprise
    Par kesamba dans le forum VBA Access
    Réponses: 19
    Dernier message: 30/10/2010, 22h06
  3. Gestion des présences/congès.
    Par papagei2 dans le forum Modélisation
    Réponses: 11
    Dernier message: 17/10/2007, 00h16
  4. gestion des stages en entreprise
    Par nautilus dans le forum Access
    Réponses: 3
    Dernier message: 30/06/2006, 23h03

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