OVH Cloud OVH Cloud

Qui est connecté

3 réponses
Avatar
Ludow59
Bonjour,

Question : Comment récupérer et stocker dans une table les différents
usagers d'une base réseau ?
A partir de certaines réponses et liens trouvés sur ce site, j'au pu me
procurer le code ci dessous, mais je ne parviens pas obtenir de résultats...

Que dois je faire ?


Option Compare Database
Option Explicit

Private Type EnrUsager
ElemPC(1 To 32) As Byte ' Les octets 1 - 32 contiennent le nom du PC,
remplisage par la valeur Null
ElemUsager(1 To 32) As Byte ' Les octets 33 - 64 contiennent le nom de
l'usager, remplissage par Null
End Type

Public Function QuiEstConnecté() As String

'Cette fonction retourne une liste séparée par des points virgules indiquant
le nom de l'ordinateur ainsi que
'l'utilisateur connecté à une bdd. Idéal en qualité de RowSource d'une zone
de liste.
'Fenêtre de Débogage: ?QuiEstConnecté() donne la liste des usagers connectés.

On Error GoTo Err_QuiEstConnecté
Dim intFichierLDB As Integer, intDébut As Integer, i As Integer
Dim strChemin As String, strTest As String
Dim sLogStr As String, strConnexions As String
Dim strNomPC As String, strNomUsager As String
Dim rUsager As EnrUsager ' type utilisateur pour l'enregistrement du fichier
.ldb

' Les utilisateurs d'une bdd sont référencés dans le
' fichier .ldb du même nom dans le même répertoire que la bdd active
strChemin = CurrentDb.Name
CurrentDb.Close

'Il faut donc remplacer l'extension mdb par ldb
strChemin = Left(strChemin, InStr(1, strChemin, ".")) + "ldb"

'Teste si le chemin d'accès et le nom du fichier .ldb sont corrects (est-il
ouvert ?)
strTest = Dir(strChemin)
intFichierLDB = FreeFile

'Renvoie une valeur de type Integer représentant le prochain
'numéro de fichier pouvant être utilisé par l'instruction Open.
Open strChemin For Binary Access Read Shared As intFichierLDB

'Lit les enregistrements du fichier .LDB pour en extraire les noms des PC et
des usagers connectés
Do While Not EOF(intFichierLDB)

' Chaque enregistrement lu est placé dans la variable rUsager pour y être
traité.
Get intFichierLDB, , rUsager
With rUsager
i = 1
strNomPC = ""

' Extraction des caractères utiles du nom du PC
While .ElemPC(i) <> 0
strNomPC = strNomPC & Chr(.ElemPC(i))
i = i + 1
Wend
i = 1
strNomUsager = ""

'Extraction des caractères utiles du nom de l'usager
While .ElemUsager(i) <> 0
strNomUsager = strNomUsager & Chr(.ElemUsager(i))
i = i + 1
Wend
End With
sLogStr = strNomPC & " -- " & strNomUsager
If InStr(strConnexions, sLogStr) = 0 Then
strConnexions = strConnexions & sLogStr & ";"
End If
Loop
Close intFichierLDB
QuiEstConnecté = strConnexions
' QuiEstConnecté contient la liste des utilisateurs

Exit_QuiEstConnecté:
Exit Function
Err_QuiEstConnecté:
If Err = 68 Then
MsgBox "Le fichier " & strChemin & " n'existe pas", vbCritical, "Erreur
chemin d'accès"
Else
MsgBox "Erreur: " & Err.Number & vbCrLf & Err.Description
Close intFichierLDB
End If
Resume Exit_QuiEstConnecté

End Function

3 réponses

Avatar
3stone
Salut,

"Ludow59"
| Question : Comment récupérer et stocker dans une table les différents
| usagers d'une base réseau ?


Va regarder ceci :
http://users.skynet.be/accesshome/ah_administration_listeutilisateurs.htm



| A partir de certaines réponses et liens trouvés sur ce site,

ceci est un forum (newsgroup) et non un site ;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Ludow59
Merci bcp :-)
Si j'osais... je demanderai comment faire pour y inlure le nom de
l'utilisateur ?


Salut,

"Ludow59"
| Question : Comment récupérer et stocker dans une table les différents
| usagers d'une base réseau ?


Va regarder ceci :
http://users.skynet.be/accesshome/ah_administration_listeutilisateurs.htm



| A partir de certaines réponses et liens trouvés sur ce site,

ceci est un forum (newsgroup) et non un site ;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw




Avatar
Bonjour,

Dans ce cas il faut gérer un table de correspondances entre login et nom de l'utilisateur.
Et au même titre que tu retournes le user, tu vas chercher son nom
Un dlookup("NomUtilisateur","LaTable","Login ='" & fusername() & "'") fera l'affaire


--
Arnaud
-----------------------------------
http://users.skynet.be/mpfa/
-----------------------------------

"Ludow59" a écrit dans le message de news:

| Merci bcp :-)
| Si j'osais... je demanderai comment faire pour y inlure le nom de
| l'utilisateur ?
|
|
| > Salut,
| >
| > "Ludow59"
| > | Question : Comment récupérer et stocker dans une table les différents
| > | usagers d'une base réseau ?
| >
| >
| > Va regarder ceci :
| > http://users.skynet.be/accesshome/ah_administration_listeutilisateurs.htm
| >
| >
| >
| > | A partir de certaines réponses et liens trouvés sur ce site,
| >
| > ceci est un forum (newsgroup) et non un site ;-)
| >
| >
| > --
| > A+
| > Pierre (3stone) Access MVP
| > Perso: http://users.skynet.be/accesshome/
| > Conseils MPFA: http://users.skynet.be/mpfa/
| > Email : http://www.cerbermail.com/?Xfg61Z3IQw
| >
| >