Liebe Community,
ich habe eine Datenbank erstellt, welche aus mehreren Tabellen und Formulare besteht. Ich möchte nun Frontend und Backend erstellen. Danach möchte ich dass wenn der Benutzer sich einloggt, dann nur die Rechte hat die er zugeteilt bekommt, das klappt grad noch nicht so bei mir. Könnte mir jemand dabei helfen ?
Mfg
Hallo,
mit Deinen dürftigen Angaben ist keine Hilfe möglich.
Was hast du denn versucht?
Hat jeder User sein eigenes Frontend auf seinem Rechner?
Wie erfolgt das einloggen?
Wie erfolgt die Zuteilung der Rechte?
Hi
Ja jeder hat seine FE auf seinem Rechner
Das Einloggen erfolgt anhand einer _AutoEX. Man muss sich erstmal einloggen sonst schließt sich die Datei.
lg
Hallo,
sorry, aber mit Deinen Angaben ist nichts, absolut nichts anzufangen.
Und was willst Du mit dem nichtssagenden Bildchen ?
Und beantworte bitte alle Fragen, aber ausführlich.
Was macht z.B. das Autoexec Makro ?
Welchen Code gibt es ?
Hi Klaus
tut mir leid...
Option Compare Database
Option Explicit
Private Sub cmdAbbrechen_Click()
If MsgBox("Dies beendet die Anwendung. Fortsetzen?", vbYesNo + vbExclamation, "Anwendung beenden") = vbYes Then
DoCmd.Quit
End If
End Sub
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!"
OptionEinstellen "CurrentUserID", CStr(lngBenutzerID)
DoCmd.Close acForm, Me.Name
End If
End Sub
Private Sub Form_Load()
' Me.Modal = True
End Sub
Hallo,
und wo und wie werden Rechte zugewiesen ?
Nachtrag:
Deine Kennwortabfrage unterscheidet nicht zwischen Groß und Kleinschreibung was für ein Kennwort unüblich ist.
KennWort=kennwort=KENNWORT=Kennwort
Ist Dir das klar ?
Hi Klaus
da hast du recht! Das ist mir eben beim probieren auch eingefallen, dass er Groß- & Kleinschreibung nicht unterscheidet.
Wie behebe ich denn das Problem?
Ich habe die Benutzerverwaltung mithilfe dieser Website erstellt -> https://access-im-unternehmen.de/Benutzerverwaltung/ <-
Ich erkläre dir jetzt alles. Ich brauche eigentlich eine Benutzerverwaltung, die sich auf einzelne & bestimmte Felder bezieht.
Ich habe eine Tabelle aus verschieden Kenngrößen wie zum beispiel Projektnummer, Seriennummer, Name, Ort, etc.
Ich will 4 Benutzergruppen erstellen. Eine Gruppe von den kann nichts an der Tabelle verändern, jedoch ein bestimmtes Feld wie zum Beispiel IST-Werte Daten einfügen und verändern können. Und die andere Gruppe kann auch nur 2 Spalten bzw Felder aus der Tabelle verändern, bzw hinzufügen und löschen. Und ich will dass es noch eine Gruppe gibt, die neue Datensätze erstellen kann und die Daten die die anderen beiden Gruppen hinzufügen können, dürfen von ihr nicht gelöscht werden dürfen.
Es ist sehr kompliziert, ich bin auch nicht der beste im erklären haha#
Ich gib mein Bestes
Jeder kann aber auf die Suchmaske zugreifen.
Ich bin jetzt so vorgegangen dass ich noch einen Formular erstellt habe , wo die Spalten drinne Stehen, die bearbeitet werden können.
Jede Gruppe würde ein Formular bekommen, wo diese dann ihr Daten füttern könnten.
MFG
DANKE IM VORRAUS!:)
Hallo,
ich befürchte, die Aufgabe
Zitateine Benutzerverwaltung, die sich auf einzelne & bestimmte Felder bezieht.
erfordert ein klein wenig mehr an Konzeptionierung als es jetzt den Anschein hat.
Zitatnichts an der Tabelle verändern, jedoch ein bestimmtes Feld wie zum Beispiel IST-Werte Daten einfügen und verändern können
Zunächst: Tabellenfelder als solche( und so verstehe ich jetzt den Sinn dieses Satzes) je nach Rolle zu verändern, bzw. einzufügen, ist ein Irrweg.
Bei einer Benutzerrechte-/Rollensteuerung sind lediglich Formulare gefragt, Tabellen bleiben außen vor. Die haben die User so oder so nicht zu Gesicht zu bekommen.
Mein Vorschlag:
Tabellen allesamt komplett mit allen vorkommenden Feldern erstellen, Beziehungen mit ref. Integrität erstellen und die "Logik" der Datenverhältnisse prüfen.
Die gezeigte Login-Steuerung kann prinzipiell so verwendet werden.
Um nun auch darauf aufbauend eine Benutzerrollen-Steuerung zu implementieren, könnte solches Vorgehen zielführend sein:
Prinzipiell wird die Form-, bzw. Steuerelement-Eigenschaft "TAG" ("Marke") dazu verwendet , um für genau dieses betreffende Objekt die Berechtigung dafür zu definieren.
Soll heißen, ein Token (String-Code), z.B
\1H, wird in die Marke-Eigenschaft eines Textfeldes geschrieben.
\1H bedeutet, dass für einen User mit Rolle 1 das Textfeld unsichtbar (Hidden) gesetzt wird.
Diese Einstellung der Visible-Eigenschaft geschieht mittels einer Prozedur, die bei Öffnen des Forms ausgeführt wird.
\1H\2L\3H\4H
bedeutet demzufolge: Unsichtbar für Rolle 1,3 und 4, gesperrt für Rolle 3.
Solche Token können für alle möglichen Steuerungsaufgaben definiert werden.
Für die Form-Marke-Eigenschaft bietet sich z. B. "\NO" an, die das Öffnen des Form verhindert.
Um die Möglichkeit zum Löschen von Datensätzen rollenabhängig zu steuern, ist in den entsprechenden Tabellen ein Feld "Berechtigung" mit zuführen, in das ein entspr. definierter Token eingesetzt wird. Z. B.: "\3ND", wenn Rolle 3 diesen DS nicht löschen darf. Die Überprüfung dieses Tokens geschieht in der "Beim Löschen"- oder "Vor Löschbestätigung"-Ereignisprozedur im Formular.
Weiterhin wird für das dynamische (nicht über den Formularentwurf gehende) Einstellen der einzelnen Marke-Eigenschaften ein bisschen "Komfort" benötigt. Dazu werden alle Steuerelemente aus allen betroffenen Formularen und deren "Marke"-Inhalt ausgelesen und in ein Tabelle geschrieben. Zusätzliche Felder dienen zur Speicherung des jeweiligen Tokens für ein Steuerelement bzw. für das Form.
Mittels Prozedur werden nach der "Pflege" der einzelnen Formulare die Token in die Marke-Eigenschaft der Steuerelemente geschrieben.
ZitatJede Gruppe würde ein Formular bekommen, wo diese dann ihr Daten füttern könnten.
Das ist nicht zielführend. Die Berechtigungen und gewissermaßen auch das Layout werden allesamt per Code eingestellt.
Die DB wird anfänglich so aufgebaut, als dass sie ohne diese Berechtigung vollständig und korrekt abläuft.
Die durch die Rollen beschränkten Möglichkeiten werden durch die o. g. Prozedur beim Öffnen des Form definiert.
PS: Schau Dir in der Hilfe die StrComp()-Funktion für den Passwort-Vergleich an...
Hallo Franz,
danke für dein langen, mühevollen und auch tollen Beitrag.
Ich hab nicht so ganz alles verstanden, aber ich denke das wichtigste.
Ich habe eine Passwortabfrage erstellt und auch berechtigungen erteilt. ich kann dir ja mal eine beispieldatei von mir schicken wenn du möchtest .
Mfg
Hallo,
Du kannst die DB hier hochladen, datenreduziert, aber lauffähig, komprimiert/repariert und gezippt.
Wenn Du konkrete und direkte Unterstützung willst, dann siehe hier:
https://www.access-o-mania.de/forum/index.php?topic=6969.0
Wie gesagt, allein Berechtigungen zu definieren, reicht nicht. Die Berechtigungen müssen auch angewendet werden.
Hallo Franz,
Ich habe dir eine Mail geschickt. Hier im anhang findest du auch meine beispieldatenbank
Danke !
MFG
Hallo,
bis jetzt ist keine Mail eingegangen. Prüfe nochmal die Mail-Adresse..
An der DB fehlt noch Einiges an Tabellen und Beziehungen.
Zudem ist die Beziehung zwischen den "Maschinen_Typ"-Feldern grundsätzlich falsch. Beziehungen werden über Schlüsselfelder (Primärschlüssel, Fremdschlüssel) gesetzt.
Hi
können sie mich vielleicht bitte kurz kontaktieren
Email gelöscht. MzKlMu
MFg
Hallo,
dacht ich mir es doch. Die Ähnlichkeit war mir aufgefallen.
https://www.ms-office-forum.net/forum/showthread.php?t=372016
Warum fängst Du in 2 Foren unabhängig das gleiche Thema an ?
Das gehört sich nicht und ist auch gemäß den Regeln unerwünscht.
Im anderen Forum wird auch klar, dass das ganze Vorhaben noch unausgegoren ist. Da stimmen noch nicht die grundlegenden Zusammenhänge.
Bitte keine echten Email hier zeigen. In Deinem eigenen Interesse. Emailaustausch nur per PN. Die Email oben habe ich gelöscht.
Danke Klaus dass du es gelöscht hast.
Tut mir leid ...
kann ich einen beitrag auch irgendwie löschen ? oder geht das nicht