Office: (Office 2016) Benutzerverwaltung

Helfe beim Thema Benutzerverwaltung in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, ich möchte eine Benutzerverwaltung erstellen. Hierbei sollen definierte Benutzer bestimmte Daten in den Formularen bearbeitet werden können.... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Oelis, 2. Februar 2020.

  1. Benutzerverwaltung


    Hallo,

    ich möchte eine Benutzerverwaltung erstellen.

    Hierbei sollen definierte Benutzer bestimmte Daten in den Formularen bearbeitet werden können.
    Diese Benutzer sollen jedoch die Tabellen nicht manipulieren können.

    Andere Benutzer sollen jedoch die Berechtigung haben können, etwas in den Tabellen (sprich Werte) ändern zu können.

    Wie kann ich das erstellen bzw. wie kann ich berechtigungen für Tabellen/formulare vergeben?

    :)
     
  2. Hi Oelis,
    wie ist es um Deine VBA-Kenntnisse bestellt? Ohne lässt sich das nicht lösen.

    Im Prinzip würde ich so vorgehen:

    1. Eine Benutzertabelle, in der Anmeldenamen (könnte mit dem Windows-User identisch sein) verwaltet werden. Eine Tabelle für das Anlegen von Benutzergruppen (Admin, Leser, Schreiber). Jeder Benutzer wird dann in der Benutzertabelle einer dieser Gruppen zugeordet.

    2. Beim Starten der Datenbank wird über einen VBA-Code der Benutzername abgefragt und ermittelt, zu welcher Gruppe derjenige gehört. Diese Info wird entweder in eine Tabelle, oder verdeckt in ein Formularfeld geschrieben.

    3. Öffnet der Benutzer dann ein Formular werden beim Laden des Formulars die entsprechenden Rechte gesetzt.

    Direkt in Tabellen würde ich Benutzer nie "reinlassen", die Datenbearbeitung findet in Formularen statt. Nur dort können auch wie oben beschrieben, die entsprechenden Recht gesetzt werden. Lässt Du einen Benutzer in eine Tabelle, darf er dort grundsätzlich "Alles".
     
    ReginaR, 4. Februar 2020
    #2
  3. Hi Regina,

    danke für die Info

    Hast Du evtl. eine DB wo ich das anschauen kann?
    Wie würde der VBA Code aussehen?
     
  4. Hallo Oelis,
    ich abe mal eine kleine Beispiel-DB angehängt.

    Beim Starten öffnet sich das Formular frm_start. Dum usst dann mal Deinen Benutzernamen in die tbl_Benutzer eintragen. Je nach Gruppenzugehörigkeit wird dann über die Schaltfläche "Formular Daten" das Formular als "nur lesen" oder "auch schreiben" geöffnet.

    Die Codes befinden sich in beiden Formularen im Form_Load-Ereignis.

    Das Ganze ist nur ein kleines Beispiel, ohne Fehlerbehandlung. Aber cih denke, das Prinzip wird daraus klar.
     
    ReginaR, 4. Februar 2020
    #5
  5. Hallo Regina,

    Ich möchte auch lernen, eine Benutzerverwaltung einzurichten und bin noch bei den ersten Schritten dazu. Aus Deinem tollen Beispiel, das ich heruntergeladen habe, konnte ich schon viel erkennen und lernen.

    Über die Menüpunkte Erstellen - Schaltfläche Visual Basic öffnet sich ein Fenster mit den Titel "Microsoft Visual Basic for Applications"
    Über die Menüpunkte Ansicht - Projekt-Explorer werden (neben Modulen und Klassenmodulen) Microsoft Access Klassenobjekte dargestellt. Bei "Form_form_daten" habe ich den VBA-Code gefunden, der die Lese- und Schreibrechte regelt:

    Code:
    Meine Fragen dazu:
    Wie ist der Ausdrucksteil "Me." im oben dargestellten Code zu verstehen? Ist das der Verweis/die Adressierung, damit der Code genau auf das Microsoft Access Klassenobjekt angewendet wird, dem der Code zugeordnet wurde (nämlich "Form_frm_daten") Und würde bei einer Anwendung von VBA-Code-Teilen auf ein anderes Objekt (z.B. tbl_Benutzer die Anweisung dann z.B. "Table_tbl_Benutzer.XYZABC... " lauten?
    Wie sind die Ausrufungszeichen z.B. in "Forms!frm_start!txt_gruppe" zu verstehen? Warum sind dort Ausrufungszeichen eingefügt bzw. was bedeuten/bewirken diese?

    Ich freue mich auf eine Antwort von Dir aber auch von jedem anderen, der hier weiterhelfen kann.
    Viele Grüße vom "Datenkneter"
     
    Datenkneter1, 30. September 2020
    #6
  6. Hallo Datenkneter,

    zu Deinen Fragen:

    Me steht hier für das aktuelle Objekt, in dem sich der Code befindet. Stattdessen kann man auch den Namen des Fomulars verwenden, allerdings ohne Fomr davor, also z.B. form_daten.
    Bei Anwendung innerhalb eines anderen Objektes, z.B. eines Berichtes könnte es dann entweder Me oder report_daten heißen. In Tabellen kann kein Code hinterlegt werden.

    Das ! steht in Access VBA für den Übergang von einer Hierarchieebene zur nächsten, d.h. mit Forms!frm_start!txt_gruppe wird
    in der Objektgruppe der Formulare das Formular frm_start angesprochen und auf dem Formular frm_start das Steuerelement txt_gruppe.

    Ich hoffe, die Erklärungen tragen zur Erhellung bei, ansonsten gerne nochmal nachfragen. Ich finds prima, wenn jemand nicht nur Code übernimmt, sondern daran auch lernt. Das ist der Sinn von Forumsarbeit *Smilie
     
  7. Benutzerverwaltung

    Die Überschrift sagt schon alles. Ich hatte bereits nach dem Ausdruck "Me" in VBA bei Access im Internet gesucht, aber keine verwertbaren oder für mich verständlichen Informationen gefunden. Irgendwann kam dann bei mir der Verdacht auf, dass damit ein "Bezug auf das aktuelle Objekt, dem der Code zugeordnet ist", geschaffen wird, was Du mir dann ja auch bestätigt hast. (Sorry, wenn meine Ausdrücke vielleicht noch nicht vollständig korrekt sind, weil ich eben noch Anfänger bin.) Sehr hilfreich fand ich auch Deinen Zusatz für das formell richtige Vorgehen, wenn man explizit auf das "Objekt" verweist.

    Und auch die Erläuterung mit den Ausrufungszeichen war mir eine große Hilfe.

    Ich habe das Gefühl: "Ich bin jetzt auf dem Weg." - Dir nochmals ein großes "Danke" für die "Wegweiser", die mir helfen, die richtige Richtung zum erfolgreichen Anwenden von VBA in Access zu finden.
    *top
     
    Datenkneter1, 30. September 2020
    #8
  8. Ohrkester, 1. Oktober 2020
    #9
  9. OT: Bang Operator

    Hallo,

    - fwiw-

    frei übersetzt aus den VBA-Whitepapers:
    Ulrich
     
    knobbi38, 1. Oktober 2020
    #10
  10. Ohrkester, 1. Oktober 2020
    #11
  11. Hallo Regina,

    ich habe das Beispiel nicht nur weitestgehend nachvollziehen können, sondern auch beinahe "von Anfang an" mit anderen Tabellennamen, Formularnamen, Befehlsnummern etc. eine eigene funktionsfähige Struktur erstellen können.

    mit dem Code
    Code:
    wird mit dem ausgelesenen Windows-Nutzernamen die Gruppen_ID aus der Tabelle tbl_Benutzer ausgelesen und in die Variable lng_Gruppe geschrieben.

    Kannst Du die Syntax zu diesem Code-Schnipsel / zu dieser Funktion erklären?

    Ich würde gerne einen weiteren Schritt versuchen, nämlich anhand des Windows-Nutzernamens den zugehörigen Inhalt/Wert des Feldes Gruppe (Admin/Schreiber/Leser) zu diesem Nutzer auslesen. (Zwei Schritte: mit dem Windows-Nutzernamen wird die Gruppen_ID ermittelt DANN wird mit der Gruppen_ID die Gruppe ermittelt. Diese Gruppeninformation (Admin/Schreiber/Leser) soll auf dem Start-Formular (frm_start) mit ausgeben werden. Das ist zwar keine für mich zwingend notwendige Funktion, hilft mir aber dabei, über Datenbeziehungen über mehrere Tabellen hinweg nutzen zu können.

    Ich würde mich über eine Erläuterung freuen!
    Liebe Grüße vom Datenkneter
     
    Datenkneter1, 1. Oktober 2020
    #12
  12. Benutzerverwaltung

    ...ok, dann versuche ich das Mal.

    DLookup gehört zu den sogenannten Dom (Domain)-Wertfunktionen, womit man einzelne Werte aus Tabellen auslesen kann. So kann man mit DMAx den höchsten Wert aus einem Feld auslesen oder mit DMin den niedrigsten Wert. Mit DLookup kann man genau einen Wert auslesen, der durch ein Kriterium bestimmt werden kann.

    In dem Codeschnipsel wird aus der Tabelle tbl_Benutzer aus dem Feld Gruppen_ID ein Wert ausgelesen. Um den richtigen Datensatz zu finden, wird ein Kriterium übergeben. Dieses lautet:

    Nimm den Datensatz in dem im Feld Benutzernamen genau der gleiche String steht wie in der Variablen str_benutzer

    Da das Kriterium hier aus einem String besteht muss der Vergleichswert in einfache Hochkommata eingeschlossen werden.

    Ich hoffe, das hilft Dir weiter.
     
    ReginaR, 1. Oktober 2020
    #13
  13. Herzlichen Dank an alle, die mir auf meine Fragen Antworten, Denkanstöße und Hinweise auf weiterführende Infos gegeben haben(@ReginaR, @Ohrkester, @knobbi38). Ich werde mich damit jetzt eingehender beschäftigen.

    Ich habe noch viele Fragen, aber zu viele Fragen und Antworten auf einmal verwirren nur, daher werde ich Schritt für Schritt vorgehen.

    Der Hinweis auf den Einsatz von Hochkommata bei String-Werten konnte ich schon produktiv umsetzen. Jetzt kann ich neben der Angabe der Berechtigungsstufe auch schon die Berechtigung in Worten (Admin / Schreiber / Leser) mit ausgeben (nachgeschlagen über ein Kriterium in Form eines Long-Wertes, daher ohne Hochkommata) und sehe daran, wie ich zwar langsam, aber dennoch Schritt für Schritt vorankomme. Ich kann jetzt gut weitermachen und melde mich wieder, wenn ich irgendwo "steckenbleibe". (Was sicherlich bald der Fall sein wird.)
    Danke an alle, schönes Wochenende und viele Grüße vom Datenkneter.
     
    Datenkneter1, 2. Oktober 2020
    #14
  14. Loreen22 Neuer User
    Hallo zusammen! Ich weiß, es ist fast 3 Jahre her.... aber ich hätte soooo gerne die Datei, die Regina angehängt hatte.
    Kann man die nochmal hier einstellen?
    Vielen, vielen lieben Dank!!!!! Und schöne Grüße
     
    Loreen22, 17. Mai 2023
    #15
Thema:

Benutzerverwaltung

Die Seite wird geladen...
  1. Benutzerverwaltung - Similar Threads - Benutzerverwaltung

  2. Benutzerverwaltung bringt Fehler

    in Microsoft Access Hilfe
    Benutzerverwaltung bringt Fehler: Guten Morgen zusammen, ich wollte die Benutzerverwaltung von der Seite Benutzerverwaltung - Access im Unternehmen verwenden was sowiet auch klappt bis auf folgende Fehler beim klicken des login...
  3. Benutzerverwaltung mit Environ("username")

    in Microsoft Access Hilfe
    Benutzerverwaltung mit Environ("username"): Hallo! ich versuche gerade Environ("username") in meine DB einzubauen. Und zwar möchte ich eine Abfrage filtern nach dem jeweils angemeldeten User. Dazu habe ich in Kriterium Environ("username")...
  4. VBA Benutzerverwaltung

    in Microsoft Access Hilfe
    VBA Benutzerverwaltung: Hallo zusammen, brauche Eure Hilfe. Haben eine Datenbank erstellt mit Benutzerverwaltung, das Passwort und der Benutzername stehen in einer Tabelle (tblBenutzer). Über ein Formular (Login) wird...
  5. Sicherheit und Benutzerverwaltung

    in Microsoft Access Hilfe
    Sicherheit und Benutzerverwaltung: Hallo, ich habe aktuell unter Access 2003 ein Frontend als mde welches über eine mdw gestartet wird. Da es die Benutzerverwaltung in Form der mdw unter Access 2010 nicht mehr gibt habe ich mir...
  6. Sicherheit / Benutzerverwaltung

    in Microsoft Access Hilfe
    Sicherheit / Benutzerverwaltung: Hallo Zusammen, ich habe folgendes Problem und bin aus diversen Foren-Beiträgen auch noch nicht wirklich schlauer geworden. Ich habe eine Access-Datenbank mit Acc2010 aufgebaut, also eigentlich...
  7. Benutzerverwaltung erstellen

    in Microsoft Access Hilfe
    Benutzerverwaltung erstellen: Hallöchen, ich bin nicht so die Leuchte was Access angeht, aber ich bemühe mich sehr. Ich benutze Access 2007 und soll ein Auftragsbuch erstellen, wo nur bestimmte User Zugriff haben. Als...
  8. Back/Front-End und Benutzerverwaltung

    in Microsoft Access Hilfe
    Back/Front-End und Benutzerverwaltung: Guten Morgen, Ich hätte ein paar generelle Fragen zu der Access Front-End und Back-End Lösung. Ich habe meine Datenbank soweit fertig und nun beginnt die Testphase. Dazu habe ich die DB mit dem...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden