CURRENTUSER |
Utilisateur courant |
|---|---|
| Access 2019, Access 2016, Access 2013, Access 2010, Access 2007, Access 2003, Access XP, Access 2000 | Microsoft Access |
Syntaxe
| CurrentUser() |
Description
Cette fonction permet de demander l'utilisateur courant, soit le nom de l'utilisateur Access actuel. C'est donc l'équivalent du nom de l'utilisateur connecté dans une base de données sécurisé.
Remarques
- La fonction retourne le nom de l'utilisateur Access actuellement connecté : La fonction CurrentUser() permet d'obtenir le nom de l'utilisateur reconnu par le système de sécurité de Microsoft Access. Le résultat est retourné sous la forme d'une chaîne de caractères. Cette information peut ensuite être utilisée dans le code VBA, les requêtes ou les formulaires.
- Elle ne possède aucun paramètre : Contrairement à de nombreuses fonctions d'Access, CurrentUser ne nécessite aucun argument. Son appel s'effectue simplement avec CurrentUser(), ce qui la rend très facile à utiliser. La fonction détermine automatiquement l'identité de l'utilisateur actif au moment de son exécution.
- Dans une base de données non sécurisée, elle retourne généralement «Admin» : Dans les bases de données Access classiques qui n'utilisent pas le système de sécurité des utilisateurs, CurrentUser() retourne généralement la valeur "Admin". Il s'agit du compte utilisateur par défaut des anciennes versions d'Access. Cette valeur ne représente donc pas nécessairement l'utilisateur Windows connecté.
- Son comportement dépend du système de sécurité utilisé par Access : Lorsque la base de données est protégée à l'aide du système de sécurité utilisateur des anciennes versions d'Access (User-Level Security), CurrentUser() retourne le nom du compte ayant ouvert la base. Si ce système de sécurité n'est pas utilisé, la fonction fournit une information beaucoup moins pertinente. Il est donc important de comprendre le contexte dans lequel elle est employée.
- Elle ne retourne pas le nom de l'utilisateur Windows : Il est fréquent de confondre CurrentUser() avec les fonctions permettant d'obtenir le nom de l'utilisateur Windows. En réalité, cette fonction retourne uniquement le nom de l'utilisateur Access et non celui de la session Windows. Pour récupérer le nom du compte Windows, il est généralement préférable d'utiliser Environ("USERNAME") ou une API Windows.
- Elle est utile pour la journalisation des actions : Dans les applications utilisant la sécurité d'Access, CurrentUser() peut servir à enregistrer quel utilisateur a créé, modifié ou supprimé un enregistrement. Cette information peut être conservée dans une table d'audit afin de faciliter le suivi des opérations. Elle contribue ainsi à améliorer la traçabilité des données.
- La fonction peut être utilisée dans les requêtes et dans le code VBA : CurrentUser() est disponible dans les modules VBA, mais également dans les requêtes, les formulaires et les états. Elle permet par exemple d'afficher automatiquement le nom de l'utilisateur dans un formulaire ou d'inscrire cette information dans un champ lors de l'ajout d'un enregistrement. Son utilisation est donc très flexible.
- Son intérêt est limité dans les versions modernes d'Access : Depuis la disparition du système de sécurité par utilisateur dans les formats récents (.accdb), CurrentUser() retourne généralement toujours "Admin". Dans les applications modernes, cette fonction est donc rarement utilisée pour identifier un utilisateur réel. Les développeurs privilégient souvent des mécanismes d'authentification externes ou le compte Windows.
- Elle peut être combinée avec d'autres fonctions d'information : CurrentUser() est souvent utilisée avec des fonctions comme Now(), Date(), Time() ou CurrentDb.Name afin d'enregistrer des informations complètes sur une opération. Il devient alors possible de savoir qui a effectué une action, à quel moment et dans quelle base de données. Cette combinaison est particulièrement utile pour les journaux d'événements.
- La fonction est compatible avec toutes les versions de Microsoft Access, mais son comportement a évolué : CurrentUser() est présente depuis les anciennes versions d'Access, notamment Access 2000, Access XP, Access 2003, Access 2007, Access 2010, Access 2013, Access 2016 et Microsoft 365. Toutefois, son utilité dépend fortement du modèle de sécurité employé par la base de données. Dans les bases modernes utilisant le format .accdb, elle retourne généralement "Admin", ce qui limite son intérêt pour l'identification des utilisateurs.
Exemple de code VBA
La fonction CurrentUser peut être utilisée dans le code VBA de Microsoft Access.
Par exemple :
Dim LUser As String
LUser = CurrentUser()
Dans cet exemple, la variable appelée LUser contiendrait désormais le nom de l'utilisateur actuellement connecté à la base de données Access.
Dernière mise à jour : Mardi, le 28 juillet 2015