cp-com
Goto Top

Benutzerrechte in Access

Ich erstelle zurzeit eine Datenbank in Access 2010 und möchte dort mit Benutzergruppen arbeiten.

Sobald die Datenbank aufgerufen wird muss der User Benutzername und Passwort auswählen. Ist dieses erfolgreich soll der User je nachdem in welcher Benutzergruppe ein Formular, zum Bearbeiten der Datensätze angezeigt bekommen oder nur ein Bericht sehen dürfen. Ich hab das im Prinzip nach dieser Anleitung gelöst 1 (Man muss den Newsletter abonnieren um diesen komplett einsehen zu können, aber ich denke das ist in diesem Fall nicht notwendig).
Tabellen habe ich folgende:
  • tblDaten (beinhaltet die Daten für das Formular)
  • tblBenutzer (BenutzerID, Name, Vorname, Kennwort, BenutzergruppeID)
  • tblBenutzergruppe (BenutzergruppeID, Benutzergruppe)
Formulare:
  • frmLogin (Anmelde-Formular) Die Überprüfung ob Benutzername und Kennwort übereinstimmen erfolgt beim klicken auf den Button cmdLogin:
Private Sub cmdLogin_Click()
    Dim lngBenutzerID As Long
    lngBenutzerID = Nz(DLookup("BenutzerID", "tblBenutzer", "Benutzername = '" & Me!cboBenutzername & "' AND Kennwort = '" & Me!txtKennwort & "'"), 0)  
    If lngBenutzerID = 0 Then
        MsgBox "Benutzername und/oder Kennwort sind falsch."  
        Me!txtKennwort.SetFocus
    Else
        MsgBox "Anmeldung erfolgreich!"  
        DoCmd.Close acForm, Me.Name
        DoCmd.OpenForm "Formular"  
    End If
End Sub
  • Formular
Bericht:
  • BerichtVonFormular

Was hier angezeigt wird funktioniert alles gut. Was muss ich nun an dem VBA?-Code ändern um die Benutzergruppen mit einzubeziehen?

Bin leider kein großer Access experte...Also bitte entschuldigt wenn ich fachlich mal daneben trete ;)

Content-Key: 174855

Url: https://administrator.de/contentid/174855

Ausgedruckt am: 28.03.2024 um 15:03 Uhr

Mitglied: SlainteMhath
SlainteMhath 18.10.2011 um 15:50:50 Uhr
Goto Top
Moin,

evtl. sowas in der Art (auch wenn select...case nicht besonders elegant ist face-smile )

lngGruppenID = Nz(DLookup("BenutzergruppeID", "tblBenutzer", "Benutzername = '" & Me!cboBenutzername & "'), 0)   
select case lngGruppenID
  case is = 1
    docmd.openform "Formular 1"  
  case is = 2
    docmd.openform "Formular 2"  
  case else
    ...
end select

als Ersatz für deine Zeile 10.

Oder versteh ich die Frage falsch? face-smile

lg,
Slainte
Mitglied: cp-com
cp-com 19.10.2011 um 09:53:46 Uhr
Goto Top
Nein du verstehst mich genau richtig! Vielen dank.

LG