Forum des développeurs  

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é.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Contribuez

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

Réponse
 
Outils de la discussion
Vieux 13/07/2007, 09h46   #1 (permalink)
Membre actif
 
Avatar de e040098k
 
Date d'inscription: avril 2007
Messages: 197
Par défaut [Astuce]Liste des connectés sans lecture du fichier ldb

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
Ensuite il faut créer un formulaire (voir pièce jointe), contenant :
- 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
 
Voila! En espérants que ce code serve a quelques uns d'entres vous !

A bientôt
Images attachées
Type de fichier : jpg F_Liste_des_connectés.JPG (14,4 Ko, 34 affichages)
e040098k est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/07/2007, 09h17   #2 (permalink)
Membre Expert
 
Date d'inscription: avril 2006
Messages: 1 000
Par défaut

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
philben est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 17/07/2007, 15h19   #3 (permalink)
Membre Confirmé
 
Avatar de alassanediakite
 
Date d'inscription: août 2006
Localisation: Bamako (Mali)
Âge: 31
Messages: 213
Envoyer un message via Yahoo à alassanediakite
Par défaut

Salut
Puis je savoir la signification de TSE?
Merci d'avance
alassanediakite est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 17/07/2007, 22h17   #4 (permalink)
Membre actif
 
Avatar de e040098k
 
Date d'inscription: avril 2007
Messages: 197
Par défaut

Salut,

un petit lien :
http://www.dsi13.fr/article_10214.htm
e040098k est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Contribuez

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide