Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Comment connaître le nom de l'utilisateur connecté ?
auteur : Team Access

La propriété CurrentUser de l'objet Access.Application retourne le nom de l'utilisateur de la base de données.


Exemple :

Msgbox Application.CurrentUser
lien : Gestion de la sécurité - Niveau utilisateur
lien : Comment connaître le nom de l'utilisateur courant ?
lien : Récupérer le nom d'un utilisateur Novel

Comment connaître le nom de l'utilisateur courant ?
auteur : Cafeine
Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
    "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Function fOSUserName() As String
 ' Retourne le nom d'usager fourni lors du branchement au réseau.
Dim lngLen As Long, lngX As Long
Dim strUserName As String
    strUserName = String$(254, 0)
    lngLen = 255
    lngX = apiGetUserName(strUserName, lngLen)
    If lngX <> 0 Then
        fOSUserName = left$(strUserName, lngLen - 1)
    Else
        fOSUserName = ""
    End If
End Function
lien : Comment obtenir le nom de l'utilisateur de Windows ?
lien : Comment connaître le nom de l'utilisateur connecté ?
lien : Récupérer le nom d'un utilisateur Novel

Comment utiliser une variable Type utilisateur ?
auteur : Drosera
On défnit le type :
    
Type Patient 

    dtmdrc As Date   'date création 

    strIPP As String 'numéro d'IPP 

    strNom As String 'Nom 

    strNjf As String 'Nom de jeune fille 

    strPre As String 'Prénom 

    dtmDdn As Date   'Date de naissance 

    strGro As String 'Groupe sanguin 

    strRhe As String 'Rhésus 

    strAdr As String 'Adresse 

    strCpo As String 'Code postal 

    strVil As String 'Ville 

    strTel As String 'Téléphone 

    lngCjt As Long   'numéro de conjoint attaché à la fiche adminstrative 

End Type 
dans le code on déclare la variable :
Dim udtPatient As Patient  
et on utilise :
    udtPatient.dtmdrc = #12/10/1968# 

    udtPatient.strIPP = "021584" 

    udtPatient.strNom = "LA GAFFE" 

    udtPatient.strNjf = "" 

    udtPatient.strPre = "Gaston"

Comment savoir si la personne connectée est administrateur ou non ?
auteur : Drosera
Pour faire ça il faut faire appel au groupe Administrateur en tant que groupe d'appartenance de l'utilisateur par :
DBEngine.Workspaces(0).Users(strUser).Groups("admins").Name
Si pas d'erreur l'utilisateur appartient au groupe administrateur. Si Err.Number = 3265 élément non trouvé dans cette collection, l'utilisateur n'est pas administrateur.

Exemple :
Dim esp As Workspace 
Dim strUser As String 

On Error Resume Next 
strUser = Application.CurrentUser 
Set esp = DBEngine.Workspaces(0) 
'L'instruction suivante provoque ou non une erreur 
strUser = esp.Users(strUser).Groups("admins").Name 
    
If Err.Number = 3265 Then    
    'élément non trouvé dans cette collection, l'utilisateur n'est pas administrateur 
ElseIf Err.Number > 0 Then  
   'autre erreur 
ElseIf Err.Number = 0 Then  
   'l'utilisateur appartient au groupe 'administrateur' 
End If

Récupérer le nom d'un utilisateur Novel
auteur : Argyronet
Normalement, un UserName sous Novell est loggé avec son nom de Login Windows... Il faut donc utiliser l'api GetUserName :
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Function fGetUserName() As String
  Dim strUserName As String
  strUserName = String(100, vbNullChar)
  GetUserName strUserName, 100
  strUserName = Left$(strUserName, InStr(strUserName, vbNullChar) - 1)
  fGetUserName = strUserName
End Function
lien : Comment connaître le nom de l'utilisateur connecté ?

Permettre à l'utilisateur de changer son mot de passe
auteurs : Tofalu, Lou Pitchoun
Utilisez le code VBA suivant :

With DBEngine.Workspaces(0)
 .Users(.UserName).NewPassword "ancienmotdepasse", "nouveaumotdepasse"
End With

Voici un exemple complet d'utilisation dans un Formulaire :

Composition du Formulaire :
  • 4 zones de textes indépendantes : une pour récupérer l'utilisateur courant, 1 pour l'ancien mdp et 2 pour le nouveau mdp (choix+confirmation).
  • 2 boutons : 1 valider et un annuler.
Private Sub CmdAnnuler_Click()
    On Error GoTo err
    
    DoCmd.Close
    
err:
    Select Case err
        Case 0
        Case Else
            MsgBox err.Description & vbLf & err.Source
    End Select
    
End Sub
 
Private Sub CmdValider_Click()
    On Error GoTo err
 
    If Me.OldPwd = Me.NewPwd Then
        MsgBox "Le nouveau mot de passe est identique à l'ancien." & vbLf & _
            "Veuillez choisir un autre mot de passe.", vbOKOnly + vbExclamation, "Nouveau mot de passe invalide"
        Me.NewPwd = ""
        Me.ConfNewPwd = ""
        DoCmd.GoToControl Me.NewPwd
        Else
        If Me.NewPwd <> Me.ConfNewPwd Then
            MsgBox "Le mot de passe entré en confirmation" & vbLf & _
                "ne correspond pas au nouveau mot de passe.", vbOKOnly + vbExclamation, "Erreur de confirmation"
            Me.NewPwd = ""
            Me.ConfNewPwd = ""
            DoCmd.GoToControl Me.NewPwd
            Else
            With DBEngine.Workspaces(0)
                .Users(.UserName).NewPassword Me.OldPwd, Me.NewPwd
            End With
            MsgBox "Le mot de passe a été changé.", vbOKOnly + vbInformation, "Confirmation"
            DoCmd.Close
        End If
    End If
 
err:
    Select Case err
        Case 3033
            MsgBox "L'ancien mot de passe saisi n'est pas valide.", vbOKOnly + vbExclamation, "Ancien mot de passe incorrect"
            Me.OldPwd = ""
            Me.NewPwd = ""
            Me.ConfNewPwd = ""
            DoCmd.GoToControl ("OldPwd")
        Case 0
        Case Else
            MsgBox err.Description & vbLf & err.Source
    End Select
    
End Sub
 
Private Sub Form_Load()
    On Error GoTo err
    
    Me.UtilCourant = "Utilisateur courant : " & DBEngine.Workspaces(0).UserName
 
err:
    Select Case err
        Case 0
        Case Else
            MsgBox err.Description & vbLf & err.Source
    End Select
    
End Sub
Voici ce que cela donne


precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2004  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com