TruckerTom 10 Geschrieben 19. Juli 2010 Melden Geschrieben 19. Juli 2010 Hallo Kollegen, wieso meckert mir Access 2010 das an (kommt von Access 2003). If Environ("USERNAME") <> ... Gruß Thomas Zitieren
Cybquest 36 Geschrieben 19. Juli 2010 Melden Geschrieben 19. Juli 2010 Was meckert Access denn? Schau Dir mal das an: Environ-Funktion (Umgebung) - Access - Microsoft Office Zitieren
TruckerTom 10 Geschrieben 19. Juli 2010 Autor Melden Geschrieben 19. Juli 2010 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 Zitieren
Sunny61 816 Geschrieben 19. Juli 2010 Melden Geschrieben 19. Juli 2010 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) Zitieren
Sunny61 816 Geschrieben 19. Juli 2010 Melden Geschrieben 19. Juli 2010 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. ;) Zitieren
TruckerTom 10 Geschrieben 20. Juli 2010 Autor Melden Geschrieben 20. Juli 2010 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 Zitieren
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.