Identification dans Access

thedavix Messages postés 466 Statut Membre -  
blux Messages postés 27848 Date d'inscription   Statut Modérateur Dernière intervention   -
J'aimerai savoir si c'est possible de chopper le user qui s'est logué dans windows 2000 (par ex) dans access afin de faire des droits personalisé pour les différents formulaires

" Le vrai savant n'est pas celui qui apprend,
mais celui qui comprend... " =;o)

7 réponses

turtur#1
 
Dim util As Strind
util= Environ("USERNAME")

20fois plus simple non ??
3
blux Messages postés 27848 Date d'inscription   Statut Modérateur Dernière intervention   3 360
 
Voui, mais il a fallu attendre 7 ans pour avoir une solution 20x plus simple...
0
blux Messages postés 27848 Date d'inscription   Statut Modérateur Dernière intervention   3 360
 
Voui, t'as raison, avec les APIs :

Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, NSize As Long) As Long

' Attention si Buff trop petit => Plantage
Dim Buff As String * 255
Dim NSize As Long
Dim Ret As Long
Dim UsrName As String

NSize = Len(Buff)
Ret = GetUserName(Buff, NSize)
UsrName = Left(Buff, NSize)
UsrName = Left(UsrName, Len(UsrName) - 1)
MsgBox UsrName

Et voilà !

Fais gaffe si tu veux faire une authentification avec ça, car si une personne se loggue sur un poste avec le nom d'un user sans se faire authentifier par un serveur de nom de domaine (*.pwl) et ben elle peut se faire passer pour qui elle n'est pas...

Tu peux aussi avoir le nom du PC avec :

Public Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, NSize As Long) As Long

A+
Blux

"Les cons, ça ose tout.
C'est même à ça qu'on les reconnait..."
2
thedavix Messages postés 466 Statut Membre 35
 
Merci beaucoup tu me rends un énorme service¨!!!!!
Je vais essayer de le mettre en place et je te tien au courant


" Le vrai savant n'est pas celui qui apprend,
mais celui qui comprend... " =;o)
0
thedavix Messages postés 466 Statut Membre 35
 
Dit moi je peux le mettre dans un module directement le code? ou dois je le mettre dans le formulaire?

" Le vrai savant n'est pas celui qui apprend,
mais celui qui comprend... " =;o)
0
blux Messages postés 27848 Date d'inscription   Statut Modérateur Dernière intervention   3 360
 
Comme tu veux !

Moi, je fais les déclarations dans un module en public, comme ça les variables sont accessibles dans tous les objets.
Et j'appelle la fonction à l'ouverture du premier formulaire (SurOuverture).

Pour des infos sur les APIs, tu fais une recherche google de WIN32.HLP, c'est le fichier qui décrit toutes les APIs 32 bits.

Je ne crois pas qu'il soit chez Kro$oft, mais il doit être chez Borland (livré avec DELPHI). Attention, il fait 7 Mo, le bougre !

A+
Blux

"Les cons, ça ose tout.
C'est même à ça qu'on les reconnait..."
0
thedavix Messages postés 466 Statut Membre 35 > blux Messages postés 27848 Date d'inscription   Statut Modérateur Dernière intervention  
 
J'ai mit le bou de code dans un module et quand j'appelle le module il me dit "invalid outside procedure" sur Buff est ce que j'ai fait qqch de faux? ou faut il programmer qqch a coté?

" Le vrai savant n'est pas celui qui apprend,
mais celui qui comprend... " =;o)
0
Phil
 
Je ne pense pas qu'il soit possible de récupérer le login de windows. Par contre, ce que tu peux faire c'est créer une form de démarrage dans ton appli Access qui demande un login et un mot de passe. Tu créé une table qui contient les logins, mdp et profils à appliquer puis c'est parti ! Tu utilise ensuite ce login pour faire ce que veux.
Voilà !

Phil.
0
thedavix Messages postés 466 Statut Membre 35
 
c'est ce que je pensais aussi, mais j'avais entendu dire par un réseau "master" que c'était possible enfin bref.. je verrai merci


" Le vrai savant n'est pas celui qui apprend,
mais celui qui comprend... " =;o)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
si c'est possible, sais plus comment mais c'est possible, soit recours API ou plus simple, j'ai oublié, sûrement API mais je suis certain d'avoir déjà vu ça...

vas toujours voir sur http://www.mvps.org/accessfr/ des fois que ce soit là que je l'ai vu... j'ai oublié où c'est mais ça doit se trouver....

kinder.surprise,
le maton du matou
0
Utilisateur anonyme
 
très belle intervention de blux trouvé-je modestement!

faudra pas perdre l'uérelle de ce post...

kinder.surprise,
le maton du matou
0
blux Messages postés 27848 Date d'inscription   Statut Modérateur Dernière intervention   3 360
 
On récapitule :

tu crées un module que tu appelles API (Par exemple)

tu recopies ça dedans :

Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal
lpBuffer As String, NSize As Long) As Long

Ensuite, dans ton formulaire (car j'espère que tu bosses avec des formulaires). Tu crées un bouton.
Sur ce bouton tu attaches le code suivant dans la propriété 'SurCLic' :

' Attention si Buff trop petit => Plantage
Dim Buff As String * 255
Dim NSize As Long
Dim Ret As Long
Dim UsrName As String

NSize = Len(Buff)
Ret = GetUserName(Buff, NSize)
UsrName = Left(Buff, NSize)
UsrName = Left(UsrName, Len(UsrName) - 1)
MsgBox UsrName

Et comme ça, quand tu ouvres ton formulaire, et que tu appuies sur le bouton,
tu vois affiché le score de France-Danemark.

Meeeeuuuuuu nooooooooooon , j'déconne...

T'as d'la chance que je puisse te répondre au boulot, sinon, t'étais bon pour une nuit d'attente !!!

A+
Blux

PS : Kinder, arrête, tu me fais fondre... ;-))))))) (86°, pour gsx)
Le forum il est là pour ça, non ?
et pas que pour les délires...
Donc y faut qu'on mette une page avec les adresses des meilleures contribs.
Jeeeeffffffffff... ?!

"Les cons, ça ose tout.
C'est même à ça qu'on les reconnait..."
0
thedavix Messages postés 466 Statut Membre 35
 
Ouai!!! j'aurai attendu toute la nuit..
enfin merci. je vais faire ce que tu m'as dit merci grand maitre!!!


" Le vrai savant n'est pas celui qui apprend,
mais celui qui comprend... " =;o)
0
thedavix Messages postés 466 Statut Membre 35
 
Merci!!!!!!!!!!!! je viens de voir 2-0 pour le Danemark..... dès que j'ai appuyé sur le bouton!!
Ca marche c'est cool merci pour tes lumières..
juste si tu peux répondre. .mais c'est pas pressant ca marche avec windows 98 ce truc? car j'ai vu sur un site web un bou de code comme le tien (mais qui marche pas.. héhé) et qui marche que pour nt xp et 2000


" Le vrai savant n'est pas celui qui apprend,
mais celui qui comprend... " =;o)
0
blux Messages postés 27848 Date d'inscription   Statut Modérateur Dernière intervention   3 360
 
Alors, je te confirme :

ça tourne régulièrement là où je travaille :

en Win95, Win98, Win98 SE, Win NT...

pas testé sur ME, 2000 ni XP (ni VAX), mais vu que tu confirmes...

Ce sont les APIs Win32, donc depuis Win95 (et même 3.11 avec win32s), ça tourne.

TOUS les programmes y font régulièrement appel (y compris windows lui-même !)

A+
Blux

"Les cons, ça ose tout.
C'est même à ça qu'on les reconnait..."
0