Recuperer le nom de l'utilisateur ACCESS
BdeSancho
Messages postés
13
Statut
Membre
-
anonym -
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
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
-
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"
-
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
++ -
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"
-
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 -
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 ;-)
-
-
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"
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 codesql = "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 -
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"
-
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 -
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"
-
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 -
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"
-
oki je te remercie
Super sympa de m'avoir aidée j'ai reussi c'est bon je vais pouvoir continuer ma creation
++