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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| Option Compare Database
Option Explicit
Private Type Un_Connecté
' --nom PC
PC(1 To 32) As Byte
' --nom utilisateur
User(1 To 32) As Byte
End Type
Public Function WHO_IS() As String
' -- retourne une liste séparée par des points virgules indiquant le nom de l'ordinateur ainsi que
' -- l'utilisateur connecté à la base.
On Error GoTo Err_WHO_IS
Dim Mon_LDB As Integer, i As Integer
Dim Mon_Chemin As String
Dim Mon_Log As String, Ma_Connexion As String
Dim Nom_PC As String, Nom_Utilisateur As String
Dim utilisateur As Un_Connecté
Mon_Chemin = CurrentDb.Name
CurrentDb.Close
' --Aller chercher le LDB
Mon_Chemin = Left(Mon_Chemin, InStr(1, Mon_Chemin, ".")) + "LDB"
Mon_LDB = FreeFile
' --Ouvrir le LDB
Open Mon_Chemin For Binary Access Read Shared As Mon_LDB
' -- Lire le LDB
Do While Not EOF(Mon_LDB)
' -- Chaque enregistrement lu est placé dans la variable utilisateur pour y être traité.
Get Mon_LDB, , utilisateur
With utilisateur
i = 1
Nom_PC = ""
' -- nom du PC
While .PC(i) <> 0
Nom_PC = Nom_PC & Chr(.PC(i))
i = i + 1
Wend
i = 1
Nom_Utilisateur = ""
' -- nom de l'utilisateur
While .User(i) <> 0
Nom_Utilisateur = Nom_Utilisateur & Chr(.User(i))
i = i + 1
Wend
End With
Mon_Log = Nom_PC & " | " & Nom_Utilisateur
If InStr(Ma_Connexion, Mon_Log) = 0 Then
Ma_Connexion = Ma_Connexion & Mon_Log & ";"
End If
Loop
Close Mon_LDB
' --WHO_IS contient la liste des utilisateurs
WHO_IS = Ma_Connexion
MsgBox WHO_IS, vbInformation, "Liste des connectés"
Exit_WHO_IS:
Exit Function
Err_WHO_IS:
MsgBox Err.Number & vbCrLf & Err.Description, vbInformation, "Erreur"
Close Mon_LDB
Resume Exit_WHO_IS
End Function |
Partager