Nom d’utilisateur et autres informations utiles

Comment obtenir dans Access le nom de l’utilisateur qui a démarré la session Windows ? Peut-on obtenir d’autres infos ?

La fonction Environ()

Sur les systèmes NT (Windows NT, Windows 2000, Windows XP et suivants), il est possible d’obtenir différentes infos sur votre configuration grâce à la fonction VBA Environ().

Par exemple, Environ("USERNAME") donne le nom de la personne actuellement connectée (le nom tapé lors de l’ouverture de la session Windows). De la même manière, Environ("COMPUTERNAME") donne le nom de l’ordinateur. Vous pouvez en fait obtenir d’autres informations par ce biais, comme l’illustre le tableau ci-dessous (la liste n’est pas exhaustive).

USERNAME Nom de l’utilisateur ayant ouvert la session Windows.
USERDOMAIN Nom du domaine auquel appartient l’utilisateur.
USERPROFILE Chemin pointant vers le dossier où est stocké le profil (les réglages divers comme le fond d’écran, les icônes, les paramètres de logiciels) de l’utilisateur.
ALLUSERSPROFILE Chemin pointant vers le dossier « Documents partagés », sous Windows XP.
APPDATA Chemin pointant vers le dossier « Application » de l’utilisateur.
Sous Windows XP, il s’agit d’un dossier nommé Application Data résidant le dossier profil de l’utilisateur. C’est dans ce dossier que sont stockés les réglages de vos logiciels (pour un utilisateur donné, donc).
COMPUTERNAME Nom de l’ordinateur.
HOMEDRIVE Nom du disque où se trouve le dossier personnel de l’utilisateur.
HOMEPATH Chemin – sans le nom du disque (HOMEDRIVE) pointant vers le dossier personnel de l’utilisateur.
LOGONSERVER Serveur ayant identifié l’utilisateur lors de l’ouverture de la session. Il peut s’agir de la machine elle-même.
OS Nom du système d’exploitation.
PATH Différents chemins définis par défaut.
PATHEXT Différentes extensions prises en compte par le système.
SYSTEMDRIVE Nom du disque où se trouve le système d’exploitation.
Exemple : C:
SYSTEMROOT Chemin pointant vers le dossier contenant le système d’exploitation.
Exemple : C:WINDOWS
TEMP Nom du dossier temporaire de l’utilisateur.
TMP Variante du précédent.
NUMBER_OF_PROCESSORS Nombre de micro-processeurs sur la machine.
PROCESSOR_ARCHITECTURE Type d’architecture du processeur.
Exemple : x86 pour les processeurs Intel.
PROCESSOR_IDENTIFIER Identifiant plus détaillé du processeur.
PROCESSOR_LEVEL Niveau du processeur.
PROCESSOR_REVISION Numéro de révision du processeur.
Note
Si vous tentez de lire une variable d’environnement qui n’existe pas sur votre machine, vous ne générez pas une erreur. Vous obtenez simplement une chaîne vide («  »).

Un exemple ?

Voici un petit exemple de programme qui affiche dans une seule boîte de dialogue toutes les variables listées ci-dessus.
Recopiez-le dans un module standard d’Access, puis exécutez-le grâce à l’icône Exécuter Sub/UserForm.

Note
Environ("USERNAME") n’a pas de rapport avec l’identifiant tapé à l’entrée d’Access, lorsque vous avez mis en place la « sécurité utilisateur » (la protection spécifique à Access). Dans ce cas, le nom d’utilisateur Access vous est donné par CurrentUser().

Vous aimerez aussi...

18 réponses

  1. Chebbi Syrine dit :

    bonjour,
    je suis débutante sur Access 2010 et je voudrais bien savoir comment obtenir le nom de l’utilisateur de Access ou meme de l’ordinateur dans un champ d’un formulaire dès que cet utilisateur ouvre ce formulaire à remplir.
    merci d’avance

    • Hervé Inisan dit :

      En tapant par exemple :

      dans la propriété Source d’une zone de texte, on obtient le nom de l’utilisateur Windows.
      Les autres valeurs données dans l’article permettent d’obtenir d’autres infos comme le nom de l’ordinateur.
      A noter qu’avec cette approche, l’info sera affichée mais pas stockée.

  2. Cléoline dit :

    Bonjour,
    Je cherche à ouvrir un formulaire à l’ouverture de l’application selon l’utilisateur qui ouvre l’application.
    J’ai créé une Macro AutoExec pour ouvrir le formulaire, et j’ai essayé de rajouter une condition Where selon l’utilisateur en cours avec UtilisateurEnCours() et avec Environ() et cela ne marche pas.. Peut être que je l’utilise mal, ou peut être qu’il y a une autre solution…
    Si quelqu’un a une idée, je suis preneuse. Merci d’avance!
    Cléoline

  3. Hervé Inisan dit :

    mc > Pas forcément. Par contre, est-ce que la base est partagée en « monofichier » sur le réseau, ou est-ce qu’elle est scindée en une frontale / dorsale ? Dans le second cas, on limite les problèmes.

  4. mc dit :

    Sur des bases multi-utilisateurs sur un réseau, certains bloquent l’accès à la base par une mauvaise sortie.
    Est il possible de les déloguer proprement?

  5. Hervé Inisan dit :

    Yeo > Dans la boîte Fichier/Ouvrir, il suffit de cliquer sur le triangle à droite du bouton Ouvrir. Dans les options qui se déroulent figure une option « Ouvrir en exclusif« .

  6. yeo dit :

    Je ne sais pas comment ouvrir ma BD en MODE EXCLUSIF.
    je vous remercie

  7. Hervé Inisan dit :

    Yeo > Si c’est juste un unique mot de passe, tu peux utiliser le menu Outils / Sécurité / Mot de passe. Si c’est pour un nom et un mot de passe par utilisateur (et avec toute la sécurité qui va avec), il faut plutôt passer par la « sécurité utilisateur » (voir sur cette page).

  8. YEO dit :

    SALUT;
    je voudrais savoir comment créer un nom d’utilisateur et mot de passe pour une base de données en reseau?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *