Toon posts:

[Access] Gebruiker opvragen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil in een Access 2000 Applicatie bij het opslaan van data de usewrname van de persoon die ingelogd is toevoegen.

hoe kan ik deze gebruikersnaam opvragen? De volgende oplossingen zijn niet geschikt:

- User uit LDB-file halen.
- User zelf ingeven bij opstarten Db.

Wie helpt me verder, want de search (access en GOT) helpt ook niet echt.

[ Voor 42% gewijzigd door Verwijderd op 03-12-2002 14:44 ]


  • whoami
  • Registratie: December 2000
  • Nu online
Vaag topic.... Lees even de P&W Quickstart

https://fgheysels.github.io/


Verwijderd

Topicstarter
Zo beter?

  • Bu588
  • Registratie: Maart 2000
  • Laatst online: 22-12-2025
Zoek eens naar de functie CurrentUser().... De Help (F1) wil ook nog wel eens werken ;)

Nothing is fool-proof to a sufficiently talented fool...


Verwijderd

Topicstarter
Ahhhhh.... dat werkt!

Alleen een detail, "Msgbox CurrentUser" geeft als resultaat "Admin"!! Niet echt slecht voor gewoon een gebruiker van het netwerk.

Maar ik ben ingelogd onder TSEC26 en dat is de naam die ik graag wil zien!

Maakt niet uit welke inlognaam ik gebruik, hij blijft Admin geven.....

Hoe krijg ik wel de juiste username te zien??? of pakt hij gewoon de eerste als het er meerdere zijn (in de LDB staan Admin en TSEC26 als ingelogde users)

;) en als je de syntax niet weet krijg je met F1 ook niet veel terug. :O

  • Againzender
  • Registratie: Maart 2002
  • Laatst online: 11:23
Je wilt de NT-login zien. Ik heb een keer ergens dit stukkie code gevonden, waarschijnlijk hier. Staan wel meer handige dingen.
Resumerend:
Plak dit in een module:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
    "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Function fOSUserName() As String
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


En met fOSUsername kan je vervolgens de NT-login opvragen

Verwijderd

Topicstarter
Againzender schreef op 03 December 2002 @ 15:08:

code:
1
2
Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
    "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Op dit deel geeft hij bij het compileren de melding

"Only comments may appear after End Sub, End Function or End Property"

dit is wel vaker het geval, ik weet (help, F1 ( ;) Remy) dat de Private Declare binnen de functie moet vallen etc. etc. maar hij geeft deze meldingen bij alle code die ik met knippen en plakken in een module zet.

Ik heb het al een aantal keer proberen te verhelpen, maar zonder resultaat.

  • Againzender
  • Registratie: Maart 2002
  • Laatst online: 11:23
Je moet dit of in een nieuwe module gooien, of helemaal bovenaan een bestaande module zetten, dus direct onder je 'Option compare database' en 'Option Explicit'
Dan moet het toch echt werken.

Verwijderd

Topicstarter
Dat was ik net vergeten erbij te zetten, dat werkt wel, maar dan zit ik wel met een zooi modules met maar een beetje code erin. Niet echt wenselijk.

Bedankt trouwens voor dat stukje code, werkt wel!!

En voorlopig zet ik alles wel in losse modules, het is toch "maar" deel van een afstudeeropdracht. Hoef het onderhoud etc. zelf niet te doen 8)

PS GEEN afstuderen in de richting Informatica ofzow, maar dat bleek al denk ik ;)

Verwijderd

Ok, de NT inlognaam laten zien is wel cool. Alleen, hier hebben we een aantal users die tegelijkertijd op meerdere werkstations ingelogd mogen zijn. In de .ldb staan deze werkstations ook vermeld (ws1605 etc.). Iemand enig idee hoe je die kunt opvragen?
Pagina: 1