Hallo Gemeinde,
ich hab ein kleines Problem ::)
Und zwar möchte eine neue DB aufsetzen, da die Bestehende programmierseitig von 3 Leuten aufgebaut wurde und entsprechend im Hintergrund aussieht, was Änderung recht schwer macht.
U.a. gibt es für den Einstieg den Einstieg verschiedene Passwörter welche ich gerne abschaffen würde,... da bei einer Weitergabe des PW "B" ein User der Gruppe A auch die Inhalte von Gruppe B sehen könnte.
Mein Wunsch wäre den Einstieg über eine Tabelle Userverwaltung zu regeln, mit den hinterlegten Daten der zugelassenen User und einer Spalte mit der die Rechte deklariert sind z.B. Admin / User / xxx.
Ich habe schon einen Baustein gefunden mit welchem sich die Windowskennung auslesen lässt nur bin ich programmierseitig nicht wirklich hochbegabt und hab aiuch nichts gefunden wie das weiter angehen soll. ::)
Private Sub ()
Dim Netzwerk As Object
Set Netzwerk = CreateObject("wscript.network")
MsgBox Netzwerk.UserName
Kann mir hierbei vielleicht jemand helfen?
VG Neuhauser
Hallo,
die Windows-Kennung erhältst du ganz einfach über Environ("Username").
Hallo Maggie,
Danke für die schnelle Antwort!
Glaube ich hab ich anfangs etwas missverständlich ausgedrückt, Sorry!
Den Usernamen hab ich ja schon, nur wie kann den ausgelesenen Usernamen entsprechend nutzen um den Einstieg einzuschränken.
Ich bräuchte einen Baustein der mir die ausgelesene Userkennung mit der Userverwaltung vergleicht und entsprechend der Rechte die DB öffnet.
Sprich ist User XY ist "Admin" öffne Formular "1" bzw. User AB ist "extern" öffne Formular "2"
VG
Um dir dabei helfen zu können, müsstest du erstmal ein konkretes Konzept vorstellen, denn so einfach wird es ja wohl nicht sein:
ZitatUser XY ist "Admin" öffne Formular "1" bzw. User AB ist "extern" öffne Formular "2"
Du hast ja sicher mehr als zwei Formulare und weitere Funktionalitäten im Angebot, oder?
Denkbar wäre eine Tabelle mit den Userdaten (Account und Rolle) und eine weitere mit den Objekten (Objekt, Objekttyp, Rolle). Dazu ein Startformular, das die verfügbaren Funktionen benutzerspezifisch anbietet.
Oder wie hast du dir das vorgestellt?
Hi,
Ich bin noch ziemlich am Anfang, bisher habe ich hauptsächlich die Tabellen angelegt und 2-3 Formulare.
Wollte erstmals den Einstieg hinbekommen bevor ich weitere Formulare oder Abfragen anlege.
...In der aktuellen DB befinden sich ca. 60 Formulare/Unterformulare einige sind aber überholt, wurde halt nie gesäubert.
Das klingt gut genau in die Richtung möchte ich :D
Wenn der User im Startformular "Anwendung starten" klickt soll er entsprechend der zugewiesenen Rolle auf das entsprechende Formular kommen.
Dann muss ich noch eine Tabelle mit (Objekt, Objekttyp, Rolle) erstellen.
Wie bekomme ich den Abgleich der Tabellen hin?
VG
Was genau meinst du mit "Abgleich"?
Wie das im Detail umgesetzt werden kann, hängt stark von der Art der Anwendung und der implementierten Benutzerführung ab. Gibt es bereits ein Start-Menü bzw. eine Funktionsübersicht? Oder wie kommt der Anwender von A nach B?
Ich meine den Befehl welcher den ausgelesenen User mit der in der Liste zugewiesen Rolle das entsprechende Fomular öffnet.
sowas meine ich,... hoffe es verständlich genug beschrieben sonst weis ich nicht mehr wie es beschreiben soll.
'If Netzwerk.UserName And "Workbook.Sheets(Userverwaltung).Cells(1,6).Value" Is "admin" Then DoCmd.OpenForm "Gesamt"
Nein die DB ist eigentlich noch ziemlich blank, es gibt noch kein wirkliches Startmenü oder Funktionsübersicht,
Die Usergruppen werden eigentlich so unterschieden die einen haben nur eine Ansichtsformular und andere eines wo die Bearbeitungen Datensätze mit Unterformlaren stattfinden.
Zum Zugriff auf abellenfelder kann die DLookUp-Methode eingesetzt werden (näheres siehe Access-Hilfe).
Den Netzwerk.Username solltest du dir bei Programmstart in einer globalen Variablen speichern, um immer wieder darauf zugreifen zu können.
Der "Abgleich" könnte dann bspw. so aussehen:
Dim strRolle As String
strRolle = NZ(DLookUp("Rolle","tblUser","User='" & gblUser & "'"),"")
Select Case strRolle
Case "Admin"
DoCmd.OpenForm "frmAdmin"
Case "User"
DoCmd.OpenForm "frmUser"
Case Else
MsgBox "Unbekannter Benutzer!"
End SelectZitatNein die DB ist eigentlich noch ziemlich blank
Ich dachte, du willst eine bestehende Anwendung neu schreiben, da weißt du doch was auf dich zukommt.
Hallo MaggieMay,
Vielen vielen Dank! ;D
Es funkioniert bereits und braucht nur noch eingewisses Feintuning 8)
VG Neuhauser