Jump to content
Sign in to follow this  
TruckerTom

Access 2010: If Environ("Username") <> ...

Recommended Posts

ok, er nimmt mir nicht das "If" übel sondern

 

"Private Sub Form_Close()"

 

Habe ich gerade gemerkt. Muss ich mal schauen, wieso das.

 

Danke für den Tipp Cybquest

Share this post


Link to post

Suchst Du den angemeldeten Windows Benutzer?

 

Function fOSUserName() As String
On Error GoTo err_fOSUserName:

    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

exit_fOSUserName:
   Exit Function
err_fOSUserName:
   MsgBox "Fehler: " & Err.Number & " " & Err.Description & " " & mModName & ".fOSUserName() As String"
   fOSUserName = ""
   Resume exit_fOSUserName
End Function

 

Und den oben gefundenen Benutzernamen in den lokalen Benutzergruppen suchen:

 

Public Function MemberInGroup(strUser As String) As String
On Error GoTo ErrHandler

Dim oADSI As Object
Dim oGroup As Object
Dim sDomain As String
Dim oMember As Object

' lokaler PC
sDomain = "."

' ADSI Container-Objekt erstellen
Set oADSI = GetObject("WinNT://" & sDomain)

' Benutzergruppen filtern
oADSI.Filter = Array("Group")

' alle Benutzergruppen auflisten
For Each oGroup In oADSI
   'Debug.Print oGroup.Name
   For Each oMember In oGroup.members
       If strUser = oMember.Name Then
           If Left(oGroup.Name, 2) = "AD" Then
               ' Bei der ersten gefundenen Gruppenmitgliedschaft wird die Funktion verlassen!
               MemberInGroup = oGroup.Name
               Exit Function
           End If
       End If
   Next
Next


exit_MemberInGroup:
   Exit Function
ErrHandler:
 ' Objekte zerstören
 Set oGroup = Nothing
 Set oADSI = Nothing
End Function

 

Der Aufruf kann so aussehen:

 

 Dim Security As String
 'Lokale Benutzergruppe des Windows Benutzer auslesen
 Security = MemberInGroup(fOSUserName) 

Share this post


Link to post
ok, er nimmt mir nicht das "If" übel sondern

 

"Private Sub Form_Close()"

 

Habe ich gerade gemerkt. Muss ich mal schauen, wieso das.

 

Dann fehlt meistens ein End If. ;)

Share this post


Link to post
Suchst Du den angemeldeten Windows Benutzer?

 

Ja, den suche ich. Aber nur, damit er die Access-Auswertung NICHT zumacht, wenn ich der Benutzer bin, aber sonst immer.

Hatte das darüber gelöst. Muss ich nachher mal austesten, ob das mit "End If" gelöst ist.

Gruß

Thomas

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...