TruckerTom 10 Geschrieben 19. Juli 2010 Melden Teilen Geschrieben 19. Juli 2010 Hallo Kollegen, wieso meckert mir Access 2010 das an (kommt von Access 2003). If Environ("USERNAME") <> ... Gruß Thomas Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 19. Juli 2010 Melden Teilen Geschrieben 19. Juli 2010 Was meckert Access denn? Schau Dir mal das an: Environ-Funktion (Umgebung) - Access - Microsoft Office Zitieren Link zu diesem Kommentar
TruckerTom 10 Geschrieben 19. Juli 2010 Autor Melden Teilen 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 Link zu diesem Kommentar
Sunny61 809 Geschrieben 19. Juli 2010 Melden Teilen 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 Link zu diesem Kommentar
Sunny61 809 Geschrieben 19. Juli 2010 Melden Teilen 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 Link zu diesem Kommentar
TruckerTom 10 Geschrieben 20. Juli 2010 Autor Melden Teilen 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 Link zu diesem Kommentar
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.