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

  1. #1
    Rédacteur/Modérateur
    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2004
    Messages
    6 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2004
    Messages : 6 937
    Points : 15 738
    Points
    15 738
    Billets dans le blog
    21
    Par défaut [Tutoriel] Créer un journal des sessions utilisateurs
    Bonjour à tous,

    Je vous présente un nouveau tutoriel en complément du précédent (créer un journal d'activité des utilisateurs) :

    Créer un journal des sessions utilisateurs

    Je souhaite dans celui-ci expliquer comment enregistrer les sessions ou périodes d'activité des utilisateurs pour ensuite estimer le total des heures effectuées par mois par l'employé,
    ou encore pour savoir qui est connecté à un moment donné.

    « En informatique et en télécommunication, une session est une période délimitée pendant laquelle un appareil informatique est en communication et réalise des opérations au service d’un client - un usager, un logiciel ou un autre appareil. »

    Dans un précédent article, j’ai essayé d’expliquer comment créer un journal d'activité des utilisateurs.
    L’objectif est maintenant d’apprendre à créer un journal des sessions utilisateurs, dans lequel on enregistre uniquement la période d’activité de l’utilisateur de la base.
    Bonne lecture
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information en abondance, 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


    Portez-vous bien

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    mai 2008
    Messages
    2 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 2 951
    Points : 4 943
    Points
    4 943
    Par défaut
    Bonjour,

    J'ai déjà ça (sur des bases similaires), malheureusement beaucoup d'utilisateurs ne se déconnectent pas en partant
    Une idée pour savoir qui travaille vraiment ?

    En attendant mieux je force la déconnexion le soir grâce à une routine dans la fenêtre cachée :
    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
    Private Sub Form_Timer() 'fermeture automatique à 23h01
    If Not Mode_debug Then On Error GoTo err
    100 If Not Mode_admin Then
    110   If TimeValue(Now()) >= TimeValue("23:00:00") Then
            'comme tout le monde va se faire virer je l'écris une fois pour toutes
    111     cnx.Execute "UPDATE parametres set users=0 WHERE ligne=1", dbFailOnError 
    112     cnx.Execute "UPDATE personnel set nb_log=0 where nb_log>0", dbFailOnError 
            'procédure de fermeture habituelle avec écriture dans le journal
    113     Call Form_menu.quitte_Click 
    114   ElseIf TimeValue(Now()) >= TimeValue("22:55:00") Then
    116     DoCmd.OpenForm "choix", , , , , , "FERMETURE AUTOMATIQUE DANS 5'"
        End If: End If
        Exit Sub
    err: Call message("Erreur " & err.Number & "/" & Erl & " dans ac_log.timer : " & err.description)
    End Sub
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Rédacteur/Modérateur
    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2004
    Messages
    6 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2004
    Messages : 6 937
    Points : 15 738
    Points
    15 738
    Billets dans le blog
    21
    Par défaut
    Bonjour Nico,

    et merci pour ton commentaire.

    Comme je le mentionne au début le journal des sessions va en complément du journal d'activité, mais entre la théorie et la pratique...

    Pour répondre à ta question, j'imagine de mettre sur le timer du formulaire en arrière plan (F_Session) le code de la faq pour détecter l'inactivité de l'utilisateur et déclencher alors la fermeture de l'application :

    https://access.developpez.com/faq/?p...rms#inactifUti

    Avec en cas d'inactivité un :

    Pour le moment je n'ai rien de mieux.

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information en abondance, 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


    Portez-vous bien

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 258
    Points : 49 767
    Points
    49 767
    Billets dans le blog
    92
    Par défaut
    Merci Denis pour ce nouveau tuto
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Rédacteur/Modérateur
    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2004
    Messages
    6 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2004
    Messages : 6 937
    Points : 15 738
    Points
    15 738
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Merci Denis pour ce nouveau tuto
    Pas de quoi

    On croit toujours avoir épuisé tous les sujets, mais au bout du compte on trouve toujours une nouvelle idée à développer
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information en abondance, 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


    Portez-vous bien

  6. #6
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2004
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2004
    Messages : 908
    Points : 1 091
    Points
    1 091
    Par défaut Créer un journal des sessions utilisateurs
    Bonjour à tous !

    @User
    Merci pour ce tuto que je vais me dépêcher de regarder avec soin !

    @nico84
    J'avais effectivement le même souci avec une application traçant l'activité des utilisateurs dont certains trouvaient malin de quitter l'appli par la croix.
    J'ai pu y palier grâce au forum où j'ai trouvé ce module qui permet d'inactiver ou ré-activer cette croix à volonté:

    Dans un module:
    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
    Option Compare Database
     
    Private Declare Function GetSystemMenu Lib "user32" _
            (ByVal hWnd As Long, ByVal bRevert As Long) As Long
    Private Declare Function RemoveMenu Lib "user32" _
            (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
    Public Const SC_CLOSE = &HF060&
    Public Const MF_BYCOMMAND = &H0&
     
    Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
     
    Public Sub DesacFermeture()
        Dim hSysMenu As Long
     
        hSysMenu = GetSystemMenu(Application.hWndAccessApp, False)
        RemoveMenu hSysMenu, SC_CLOSE, MF_BYCOMMAND
     
    End Sub
     
     
    Public Sub ReactiveFermeture()
        Dim hSysMenu As Long
        hSysMenu = GetSystemMenu(Application.hWndAccessApp, True)
        DrawMenuBar hSysMenu
    End Sub
    Si çà peut résoudre ton souci...
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  7. #7
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    mai 2008
    Messages
    2 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 2 951
    Points : 4 943
    Points
    4 943
    Par défaut
    Citation Envoyé par Ric500 Voir le message
    J'ai pu y palier grâce au forum où j'ai trouvé ce module qui permet d'inactiver ou ré-activer cette croix à volonté:
    Merci Ric j'ai déjà désactivé la croix, ce n'est pas suffisant car certains utilisateurs ont pour habitude de fermer avec un clic droit [fermer la fenêtre] sur l'icone dans la barre d'outils
    Ceci dit la procédure form_close de ma fenêtre cachée les voit partir quand même

    Le souci c'est ceux qui partent le soir sans arrêter l'application
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  8. #8
    Rédacteur/Modérateur
    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2004
    Messages
    6 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2004
    Messages : 6 937
    Points : 15 738
    Points
    15 738
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par Ric500 Voir le message
    Bonjour à tous !

    @User
    Merci pour ce tuto que je vais me dépêcher de regarder avec soin !

    @nico84
    J'avais effectivement le même souci avec une application traçant l'activité des utilisateurs dont certains trouvaient malin de quitter l'appli par la croix.
    J'ai pu y palier grâce au forum où j'ai trouvé ce module qui permet d'inactiver ou ré-activer cette croix à volonté:

    Dans un module:
    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
    Option Compare Database
     
    Private Declare Function GetSystemMenu Lib "user32" _
            (ByVal hWnd As Long, ByVal bRevert As Long) As Long
    Private Declare Function RemoveMenu Lib "user32" _
            (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
    Public Const SC_CLOSE = &HF060&
    Public Const MF_BYCOMMAND = &H0&
     
    Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
     
    Public Sub DesacFermeture()
        Dim hSysMenu As Long
     
        hSysMenu = GetSystemMenu(Application.hWndAccessApp, False)
        RemoveMenu hSysMenu, SC_CLOSE, MF_BYCOMMAND
     
    End Sub
     
     
    Public Sub ReactiveFermeture()
        Dim hSysMenu As Long
        hSysMenu = GetSystemMenu(Application.hWndAccessApp, True)
        DrawMenuBar hSysMenu
    End Sub
    Si çà peut résoudre ton souci...
    Merci Ric pour cette idée intéressante

    C'est en effet une possibilité, dans mon cas j'utilise un formulaire en arrière plan, ouvert durant toute la session avec une procédure sur fermeture, peut-être plus facile à mettre en place pour les débutants, à voir.

    Cordialement,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information en abondance, 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


    Portez-vous bien

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 258
    Points : 49 767
    Points
    49 767
    Billets dans le blog
    92
    Par défaut
    Citation Envoyé par User Voir le message
    Dans mon cas j'utilise un formulaire en arrière plan, ouvert durant toute la session avec une procédure sur fermeture, peut-être plus facile à mettre en place pour les débutants, à voir.
    +1. Ca évite les API
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/06/2020, 21h51
  2. Faire un compteur pour des sessions utilisateurs
    Par liverbird dans le forum C++Builder
    Réponses: 55
    Dernier message: 21/06/2006, 15h37

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