![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Contribuez Access : Vos contributions. Postez ici vos codes sources, conseils, astuces et autres propositions. Ce forum n'est pas un forum technique mais destiné aux contributions pour www.developpez.com |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre actif
![]() Date d'inscription: avril 2007
Messages: 197
|
Bonjour,
Je développe une base stockée sur un serveur TSE. Je souhaitais avoir une liste des utilisateurs connectés à ma base. Malheureusement tous les codes que j'ai trouvé sur le sujet font une lecture du fichier ldb. Ce qui sur un serveur TSE renvoie "SERVEURTSE, admin" pour chaque connecté ! Dès lors pas évident de différencier les utilisateurs. La petite astuce qui suit permet d'obtenir un résultat plus intéressant : Il faut ajouter une table T_UserConnected avec les champs "DateConnexion" (Date), "User" (texte), "Time" (Date), Connected (Oui/Non) Ensuite il suffit ajouter le code suivant sur les évenements Load et Unload du formulaire de menu. cela permet d'ajouter ou de supprimer des enregistrements dans la table en fonction des connexions ou des déconnexions des utilisateurs. Code :
Private Sub Form_Load() 'suppresion des enregistrements concernant l'utilisateur (dernière déconnexion) DoCmd.SetWarnings False SQL = "DELETE T_UsersConnected.User, T_UsersConnected.Connected " _ & "FROM T_UsersConnected " _ & "WHERE (((T_UsersConnected.User)='" & Environ("UserName") & "') AND ((T_UsersConnected.Connected)=False));" DoCmd.RunSQL SQL 'Ajout d'un enregistrement contenant les informations de connexion SQL = "INSERT INTO T_UsersConnected VALUES ('" & (Date) & "','" & Environ("UserName") & "','" & (Time) & "', True);" DoCmd.RunSQL SQL DoCmd.SetWarnings True End Sub Private Sub Form_Unload() 'Suppression de l'enregistrement contenant les informations de connexion DoCmd.SetWarnings False SQL = "DELETE T_UsersConnected.User, T_UsersConnected.DateConnexion, T_UsersConnected.Connected " _ & "FROM T_UsersConnected " _ & "WHERE (((T_UsersConnected.User)='" & Environ("UserName") & "') AND ((T_UsersConnected.DateConnexion)=Date()) AND ((T_UsersConnected.Connected)=True));" DoCmd.RunSQL SQL 'Ajout de l'enregistrement contenant les informations de déconnexion DoCmd.SetWarnings False SQL = "INSERT INTO T_UsersConnected VALUES ('" & (Date) & "','" & Environ("UserName") & "','" & (Time) & "', False);" DoCmd.RunSQL SQL DoCmd.SetWarnings True Application.Quit End Sub - un bouton bascule - Deux zones de liste (dans l'exemple Lst_NbConnects et Lst_NbRecents) - Deux labels (dans l'exemple Lbl_NbConnects et Lbl_NbRecents) Voici le code associé a ce formulaire : Code :
Option Compare Database Private Sub Bascule5_Click() If Me.Bascule5.Value = -1 Then Me.TimerInterval = 1000 Me.Bascule5.Caption = "Arrèter le scan" Me.Lst_Connectes.RowSource = "SELECT T_UsersConnected.User FROM T_UsersConnected WHERE (((T_UsersConnected.Connected)=-1));" Me.Lst_Recents.RowSource = "SELECT T_UsersConnected.User FROM T_UsersConnected;" Else Me.Bascule5.Caption = "Scan" Me.TimerInterval = 0 End If End Sub Private Sub Form_Open(Cancel As Integer) Me.Lst_Connectes.RowSource = "" Me.Lst_Recents.RowSource = "" End Sub Private Sub Form_Timer() Me.Lst_Connectes.Requery Me.Lst_Recents.Requery Me.Lbl_NbConnectes.Caption = "IL y a : " & Me.Lst_Connectes.ListCount & " personne(s)" Me.Lbl_Recents.Caption = "IL y a : " & Me.Lst_Recents.ListCount & " personne(s)" End Sub A bientôt |
|
|
|
|
|
#2 (permalink) |
|
Membre Expert
![]() Date d'inscription: avril 2006
Messages: 1 000
|
bonjour e040098k,
il existe aussi cette alternative mais il faut référencer <ADODB> : http://support.microsoft.com/default...d=KB;FR;198755 Amicalement, Philippe |
|
|
|
![]() |
![]() |
||
[Astuce]Liste des connectés sans lecture du fichier ldb
|
||
| Outils de la discussion | |
|
|