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
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
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
Sunny61 833 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)
Sunny61 833 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. ;)
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden