Récupérer la liste des utilisateurs loggés sur une base access

Contenu du snippet

Cette procédure vous permet de récupérer, pour une base Access donnée (ici le fichier porte le même nom que l'EXE) l'ensemble des utilisateurs qui y sont connectés grâce à la lecture du fichier de verrous .LDB

Source / Exemple :


Public Function GetDBCurrentUsers(pDataBasePath as String, pUsersList As Control, Optional ByVal pClearListFirst As Boolean = False)
    Dim rep As Long, LDBFile  As String
    Dim FileID As Long, Buffer As String * 300
    Dim pos1 As Long, pos2 As Long
    
    'On Error GoTo GetDBCurrentUsersError
    
    If pClearListFirst Then pUsersList.Clear
    
    'Chemin du fichier de verrous de la base
    LDBFile = pDataBasePath & "\" & App.EXEName & ".LDB"

    'Envoi de l'erreur dans le fichier d'erreur de l'application
    FileID = FreeFile
    
    Open LDBFile For Binary Access Read As FileID
    
    'Lecture complète du fichier dans la structure
    Get FileID, , Buffer
    pos1 = 1
    Do
        pos2 = InStr(pos1 + 1, Buffer, Chr$(0))
        If pos2 > 0 Then If InStr(Mid$(Buffer, pos1, pos2 - pos1), " ") = 0 And pos2 - pos1 > 1 Then pUsersList.AddItem Mid$(Buffer, pos1, pos2 - pos1)
        pos1 = pos2 + 1
    Loop While pos1 > 0 And pos2 > 0
    Close FreeFile

GetDBCurrentUsersError:
    Exit Function
End Function

Conclusion :


Attention : certains utilisateurs peuvent être doublés s'ils ont ouvert implicitement plusieurs pages sur la base de données. Pour avoir une liste distincte, il faut mieux alors passer par un tableau avant de tout afficher dans la liste.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.