Access: créer un journal des sessions d'utilisateurs d'une base Access
Un tutoriel de Denis Hulo
Le 2020-07-22 16:31:10, par User, Rédacteur/Modérateur
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é.
Bonne lecture
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.
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.
-
Pierre FauconnierResponsable Office & ExcelMerci Denis pour ce nouveau tutole 28/07/2020 à 9:29
-
nico84Expert confirmé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 : 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Private 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
le 22/07/2020 à 19:31 -
UserRédacteur/ModérateurBonjour 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/?page=Forms#inactifUti
Avec en cas d'inactivité un :Code : DoCmd.Quit()
Cdlt,le 22/07/2020 à 19:56 -
UserRédacteur/ModérateurPas de quoi
On croit toujours avoir épuisé tous les sujets, mais au bout du compte on trouve toujours une nouvelle idée à développerle 28/07/2020 à 12:08 -
Ric500Membre éprouvé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 : 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25Option 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
le 29/07/2020 à 10:30 -
nico84Expert confirmé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'applicationle 29/07/2020 à 10:35 -
UserRédacteur/ModérateurMerci 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,le 29/07/2020 à 11:16 -
Pierre FauconnierResponsable Office & Excelle 29/07/2020 à 11:21