Recuperer le nom de l'utilisateur ACCESS

Fermé
BdeSancho Messages postés 13 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 12 juillet 2004 - 22 juin 2004 à 16:44
 anonym - 24 nov. 2015 à 16:14
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

blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
22 juin 2004 à 16:55
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
BdeSancho Messages postés 13 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 12 juillet 2004
22 juin 2004 à 16:58
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
blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
22 juin 2004 à 17:03
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
BdeSancho Messages postés 13 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 12 juillet 2004
22 juin 2004 à 17:14
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
LolaBunny Messages postés 6 Date d'inscription mardi 5 janvier 2010 Statut Membre Dernière intervention 8 janvier 2010
8 janv. 2010 à 23:34
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
blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
23 juin 2004 à 09:44
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

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 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
blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
23 juin 2004 à 11:43
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
BdeSancho Messages postés 13 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 12 juillet 2004
24 juin 2004 à 11:03
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
blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
24 juin 2004 à 11:17
Ma demande est partie...

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
24 juin 2004 à 11:55
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
BdeSancho Messages postés 13 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 12 juillet 2004
24 juin 2004 à 11:59
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
blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
24 juin 2004 à 12:26
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
BdeSancho Messages postés 13 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 12 juillet 2004
24 juin 2004 à 15:33
oki je te remercie

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

++
0
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