Recuperer le nom de l'utilisateur ACCESS

BdeSancho Messages postés 13 Statut Membre -  
 anonym -
Bonjour,
Je suis en train de creer un BDD sur ACCESS 2000 et j'ai creer une table T_user avec un formulaire pour identifier l'utilisateur.

Tout ca marche tres bien mais j'aimerai dans un autre formulaire afficher deja l'utilisateur en cours dans une boite text ou autre
Et j'aimerai l'enregistrer dans une table

Bon pour l'enregistrer je fais normalement
[la table]![le champ].value =txt235.value
lors du chargement du formulaire

seulement j'arrive pas a mettre le login ou nom dans ma boite txt235

Ci quelqu'un aurai une idée?
Je remercie d'avance

Cordialement
sancho

11 réponses

  1. blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Salut,

    tu cherches le login de connexion ou l'utilisateur ACCESS courant (administrateur par défaut) ?

    A+ Blux
     "Les cons, ça ose tout.
    C'est même à ça qu'on les reconnait"
    0
  2. BdeSancho Messages postés 13 Statut Membre
     
    re
    je cherche le login de connexion
    l'utilisateur entre un login et mot de pass
    et c'est ca que je veux recupérer dans mon autre formulaire

    ++
    0
  3. blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Alors tu crées un module et tu mets les lignes suivantes dedans :
    Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, NSize As Long) As Long
    Public UsrName As String


    Puis dans ton code, tu mets :
    Dim Buff As String * 255
    Dim NSize As Long
    Dim Ret As Long
    ...
    NSize = Len(Buff)
    Ret = GetUserName(Buff, NSize)
    UsrName = Left(Buff, NSize)
    UsrName = Left(UsrName, Len(UsrName) - 1)
    MsgBox UsrName

    et hop ! ;-)

    A+ Blux
     "Les cons, ça ose tout.
    C'est même à ça qu'on les reconnait"
    0
    1. BdeSancho Messages postés 13 Statut Membre
       
      re
      Bon j'ai pas vraiment compris
      Ok j'ai créer un module (c'est pour qu'il soit partout dans le code c'est ca je suppose)

      Ensuite voila mon code que j'ai mis lorsque je clique sur =mon bouton "connexion"
      rivate Sub BtConexion_Click()
      Me.Requery
      Dim sql, User_id, User_groupe As String
      Dim Rs As DAO.Recordset
      Static i As Byte
      sql = "SELECT * FROM T_USER WHERE Nom_U = '" & Me.txt_user & "' AND PASWD ='" & Me.txt_pass & "';"
      Set Rs = CurrentDb.OpenRecordset(sql)
      If Not Rs.EOF Then
        DoCmd.OpenForm "MENU_PRINCIPAL", acNormal, , , , acWindowNormal
        DoCmd.Close acForm, "F_connexion"
        User_id = Rs("Nom_U").Value
        User_groupe = Rs("GROUPE").Value
      Else
        MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
        i = i + 1
      End If
      If i = 3 Then
      MsgBox "Vous avez dépassé le nombre de tentatives autorisés", vbCritical
      DoCmd.Quit
      End If
      End Sub
      



      ce que je veux recupérer c'est "User_id" je le remplace par usr_Name ?

      merci
      0
    2. LolaBunny Messages postés 6 Statut Membre
       
      Bonjour Blux,
      Bonjour à tous,

      Le module et le script fonctionne bien mais j'aimerais passer le nom de l'utilisateur autre que l'administrateur de la machine, il me met toujours administrator ! J'ai réussi un seul coup... Maintenant il me dit qu'il ne peut plus modifier la fiche.
      En plus j'aimerais le mettre dans une variable pour le récupérer à la fiche. Ça me fait un "modifié par".

      Voici mon code :
      'Nom de l'utilisateur
      Private Sub Form_Current()
      
      Dim Buff As String * 255
      Dim NSize As Long
      Dim Ret As Long
      Dim VUtil As String
      
      NSize = Len(Buff)
      Ret = GetUserName(Buff, NSize)
      UsrName = Left(Buff, NSize)
      UsrName = Left(UsrName, Len(UsrName) - 1)
      VUtil = UsrName
      [MenuUtil] = VUtil
      
      End Sub
      'Fin de nom de l'utilisateur


      Qui me fait un This Recordset is not updateable.

      Windows XP
      Access 2003

      Je ne sais pas si je suis très clair...
      Où ai-je erreur ? Il n'aime pas le form current ? Parce que si je le met dans mes sous-formulaires en "Form_Dirty(Cancel As Integer)" ça fonctionne bien qu'il ne mette qu'Administrator.

      Merci de m'aider ;-)
      0
  4. blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Je n'avais pas compris ta demande :

    pour affecter une valeur a un contrôle, utilise la méthode .text (ou .value) :
    txt235.TEXT = la_valeur_que_tu_veux_mettre

    Le code que je t'ai donné permet de récupérer le nom d'utilisateur windows (dans le cas d'une connexion via un PDC). Il ne t'es pas utile dans ce cas...

    A+ Blux
     "Les cons, ça ose tout.
    C'est même à ça qu'on les reconnait"
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. BDEsancho
     
    salut
    bon merci d'avoir repondu c'est sympa
    C'est bien ce que je me disai j'arrivai pas a comprendre le code que tu m'avai filer

    Dans mon code
    sql = "SELECT * FROM T_USER WHERE Nom_U = '" & Me.txt_user & "' AND PASWD ='" & Me.txt_pass & "';"


    je prend la valeur qu'il y a dans une boite texte (txt.user)
    j'aimerai savoir comment recupérer cette valeur dans un autre formulaire
    Es ce que je dois creer une variable ?
    ou es ce que je peux recuperer grace a Nom_U?

    Voila j'ai jamais programmé en VB donc c'est pour ca que j'ai un peu de mal

    Je te remercie d'avance si t'a une idée.
    Sancho
    0
  7. blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Dans ton autre formulaire, tu crées une zone de texte et tu mets ce code :
    mazone.text = me.text.user

    Mais il faut que cette mise à jour ait lieu lorsque l'on change la valeur de me.text.user, c'est pourquoi ce code est à mettre dans l'évènement "sur changement" dans la zone text.user du foemulaire principal....

    A+ Blux
     "Les cons, ça ose tout.
    C'est même à ça qu'on les reconnait"
    0
  8. BdeSancho Messages postés 13 Statut Membre
     
    je te remerci beaucoup
    mais malgré tout ca j'ai pas reussi

    Bon oki je suis peu etre un peu mancho

    J'ai fais un petit module vite fai la en flash pour montrer ce que je veux faire
    je te donne mon adresse: rodeo69@free.fr
    ecrit moi si tu veux que je te l'envoi

    Merci d'avance
    Sancho
    0
    1. blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      Ma demande est partie...

      A+ Blux
       "Les cons, ça ose tout.
      C'est même à ça qu'on les reconnait"
      0
  9. blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Bon alors, c'est pas très simple !

    Il faut que la zone utilisateur soit mise à jour dès que l'authentif est correcte.

    Il faut donc mettre le code dans le test du bouton Btconexion,avec :
    txt60.text = txt_user.value
    mais le problème, c'est qu'ACCESS n'autorise pas la mise à jour d'un formulaire, s'il n'est pas ouvert...

    Donc ton formulaire doit être ouvert avant saisie du mot de passe (et c'est pas cool...)

    Donc problème !

    Plusieurs solutions :

    - gérér l'authentification de manière externe (avec le user windows, par exemple, code que j'ai envoyé au début du post). Peut être gênant si les postes sont en libre service...

    - mettre toutes les données sur le même formulaire (avec des onglets) et utiliser les propriétés visible/non visible pour masquer les champs tant que l'authentification n'est pas correcte...

    - mettre le formulaire d'authentification en fenêtre modale et sur tout l'écran (ce qui évite que l'on voie dessous)...

    Je peux t'envoyer vite fait un ch'tit exemple, si tu veux...

    A+ Blux
     "Les cons, ça ose tout.
    C'est même à ça qu'on les reconnait"
    0
  10. BdeSancho Messages postés 13 Statut Membre
     
    oki je vois

    Bon j'avais pensé a deux solution comme tu disai mettre dans ma table en plus un indicateur genre connecter ou pas (OUI/NON)

    Ou sinon avec une variable global qui renverai le nom de l'utilisateur

    oki bon je vais voir ce que je peux faire alors
    Je te remercie encore pour tout

    ++
    sancho
    0
  11. blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Je t'envoie un ch'tit exemple avec des onglets...

    A+ Blux
     "Les cons, ça ose tout.
    C'est même à ça qu'on les reconnait"
    0
  12. BdeSancho Messages postés 13 Statut Membre
     
    oki je te remercie

    Super sympa de m'avoir aidée j'ai reussi c'est bon je vais pouvoir continuer ma creation

    ++
    0
    1. anonym
       
      Blux, merci beaucoup, génial ton petit code !!
      Je désespérais pouvoir enregistrer des données utilisateur à chaque ouverture d'une base pour pouvoir faire des stats sur son utilisation, c'est chose possible maintenant :)
      0