Zum Inhalt springen

Benutzernamen in Access VBA auslesen mit Win XP


Empfohlene Beiträge

Geschrieben

Hallo Leute,

hab ein Problem. Und zwar habe ich in einer Datenbank folgendes Modul:

Option Compare Database


'Hier die benötigten API-Deklarationen

Declare Function GetUserName Lib "advapi32.dll" _

  Alias "GetUserNameA" (ByVal lpBuffer As String, _

  nSize As Long) As Long


'Die Prozedur ermittelt den angemeldeten

'Benutzernamen

Public Function GetBenutzer() As String

  Dim UserName As String

  Dim Result As Long


  UserName = Space$(256)

  Result = GetUserName(UserName, Len(UserName))


  If InStr(UserName, Chr$(0)) > 0 Then _

    UserName = Left$(UserName, InStr(UserName, Chr$(0)) - 1)


  UserName = UCase(Mid(UserName, 1, 1)) & Mid(UserName, 2)

  GetBenutzer = UserName

End Function

Bisher hat das auch alles einwandfrei funktioniert. Aber jetzt hat ein Kollege von mir seinen Rechner auf Win XP migriert bekommen und es funktioniert bei ihm nicht. Vorher haben nur Rechner mit Win 2000 mit der Datenbank gearbeitet. Access Version ist 2002.

Gibt es da eine andere DLL? Oder wie müsste ich die o.g. Funktion anpassen, dass es auch unter XP funktioniert?

Danke Euch!

Geschrieben

Hilfreich für Zeitgenossen ohne Kristallkugel wäre eine etwas genauere Erläuterung von "funktioniert nicht".

Die API-Funktion unter der benutzten dll arbeitet jedenfalls auch unter XP.

Interessant wäre der Rückgabewert; dein result.

Ist er 0, so ist in der API Funktion ein Fehler aufgetreten.

Geschrieben
Original geschrieben von maxim_42

Hilfreich für Zeitgenossen ohne Kristallkugel wäre eine etwas genauere Erläuterung von "funktioniert nicht".

Die API-Funktion unter der benutzten dll arbeitet jedenfalls auch unter XP.

Interessant wäre der Rückgabewert; dein result.

Ist er 0, so ist in der API Funktion ein Fehler aufgetreten.

Also...

Die Funktion liest den Windows-Anmeldenamen des Benutzers aus. Bei den Windows 2000 Nutzern funktioniert es ohne Probleme. Bei dem Windows XP User bringt er eine Parameterabfrage.

Geschrieben

Alternativ (geht zumindest unter XP und 2000) kannst du mit

current_user = Environ$("UserName")

den aktuellen Benutzer ermitteln. Dabei wird allerdings auf eine Umgebungsvariable zugegriffen, die der Anwender ändern kann.

Über API müßte ich @home schauen, da hab ich sowas am laufen, aber noch nicht unter XP getestet.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...