online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon dirkp vom 11.09.2019, 09:18 Options

Passwort-Schutz Access

Na guten Morgen!

also ich habe folgendes Problem:

Ich habe eine sehr umfangreiche DB programmiert und nun will ich das ganze mit Passwörtern schützen, dass nicht ausversehen ein user etwas ändert oder gar zerstört.

kann ich wenn ich das hauptformular (startbildschirm) in access starte gleich eine passwort abfrage starten? es sollte einen admin geben, der alles ändern darf und dann ein paar user die nur einen teil der tabellen ändern dürfen? ist sowas über vba möglich? habe noch nicht sonderlich viel erfahrung mit vba, aber hab ja schon gegoogelt u auch bisschen was gefunden, aber so richtig hat es nicht gepasst u ich hab nur bahnhof verstanden....über eure hilfe würde ich mich sehr freuen!

viele grüße dirk


Antwort schreiben

Antwort 1 von lleopard vom 11.09.2019, 10:01 Options

Hallo Dirk,

man kann alles.

Also den besten Schutz vor Veränderung deiner Datenbank erzielst du, wenn du eine MDE erstellst. Dann ist der komplette Sourcecode unveränderbar.

WICHTIG: Vorher eine Kopie erstellen. Diese kannst du weiterentwickeln und dann immer wieder eine Kopie als MDE den Clients zur Verfügung stellen.

Ein anderer Weg, wäre das Öffnen mit Shift zu unterbinden (normalerweise kann man so alle Datenbanken von Access so öffnen, daß man Änderungen vornehmen kann) und die Datenbank mit einem Kennwort zu versehen. Wie das geht findest du in der Hilfe. Man kann aber auch seine eigene Password - Routine schreiben und das in einem Startformular unterbringen.

Wie gesagt, mit Access geht vieles.

Gruß Leo

Antwort 2 von dirkp vom 11.09.2019, 15:33 Options

danke sehr,

wie würde denn so eine passwort routine aussehen, wenn ich die in einem startformular unterbringe?
sprengt das hier den rahmen, oder is die vba programmierung noch relativ einfach?? habt ihr zufällig einen link wo so etwas schon mal aufgeschrieben ist?? hab schon gesucht, aber noch nichts gefunden.

grüße dirk

Antwort 3 von lleopard vom 12.09.2019, 08:23 Options

Hallo Dirk,

so eine kleine Routine ist zwar nicht sehr sicher, aber leicht zu schreiben... und das kennwort kann man ja auch öfter mal ändern.

Du kannst ein Kennwort-Formular anlegen. Ein Bezeichnungsfeld bekommt als Prüfwert den Namen des Users, ein anderes, welches man mit Kennwort (*****) verschlüsselt, als Prüfwert das ... Kennwort.

Zusätzlich hinterlegst du eine Befehls-Schaltfläche "Anmelden" oder "OK" ... und dort hinterlegst du nun eine kleine Routine die dann in etwa so aussehen könnte:

Private Sub Ok_OnKlick (...)
if Username.Value = "Admi" and Kennwort.Value="1234" then
'Alles richtig eingegeben? Ja, dann:
DoCmd.OpenForm "Auswertung"
DoCmd.Close acForm "Kennwort"
else
'Alles Falsch? Ja dann:
Msgbox "Falsche Eingabe", vbCritical, "Anmeldedaten falsch"
'Und weil wir nette Menschen sind, setzen wir die Felder zurück:
Username.Value = ""
Kennwort.Value = ""
'Und sonst passiert nix...
end if
End Sub

Das ganze kann man jetzt auch mit einer zusätzlichen Bedingung ergänzen, indem man einen Zähler einfügt, der - wenn die dritte falsche Eingabe getätigt wurde - dann einfach die Datenbank beendet... das leiden hat ein Ende :-D

Gruß leo

Antwort 4 von dirkp vom 12.09.2019, 09:14 Options

guten morgen,

danke das probier ich gleich mal aus!!

grüße

Antwort 5 von dirkp vom 12.09.2019, 10:07 Options

so hab es jetzt mal ausprobiert, hier der code von dir (bisschen auf mich geändert):

Private Sub Befehl4_Click()

If UserName.Value = "Admi" And Kennwort.Value = "1234" Then

DoCmd.OpenForm "frmstart"
DoCmd.Close acForm "frmKennwort"

Else
'Alles Falsch? Ja dann:
MsgBox "Falsche Eingabe", vbCritical, "Anmeldedaten falsch"
'Und weil wir nette Menschen sind, setzen wir die Felder zurück:
UserName.Value = ""
Kennwort.Value = ""
'Und sonst passiert nix...
End If
End Sub

in der 4. Zeile bei --> DoCmd.Close acForm "frmKennwort" kommt immer fehler beim kompilieren: Erwartet: Anweisungsende?? in der hilfe hab ich auch nicht gefunden, was da falsch sein könnte. wenn ich nun die zeile komplett lösche funktioniert der code, nur wird das formular nicht geschlossen, was ja der code machen soll. muss man den anders eingeben??

dann noch eine andere frage, wie kann ich das kennwort welches in das textfeld eingegeben wird mit den sternchen **** verschlüsseln, dass es nicht normal angezeigt wird??

kann man dann noch einem user schreibzugriff auf die formulare geben und den anderen usern nur lesezugriff??

grüße und danke an euch

Antwort 6 von lleopard vom 13.09.2019, 07:58 Options

moin dirk

Private Sub Befehl4_Click()

If UserName.Value = "Admi" And Kennwort.Value = "1234" Then

DoCmd.OpenForm "frmstart"
DoCmd.Close acForm "frmKennwort"
exit sub '<= Neu: Probier mal hier auszusteigen,,,
Else
'Alles Falsch? Ja dann:
MsgBox "Falsche Eingabe", vbCritical, "Anmeldedaten falsch"
'Und weil wir nette Menschen sind, setzen wir die Felder zurück:
UserName.Value = ""
Kennwort.Value = ""
'Und sonst passiert nix...
End If
End Sub

Oder du probierst es mal so:
DoCmd.Close acForm "frmKennwort" läßt du weg und schreibst stattdessen

me.visible = false

Nach dem Öffnen des Startformulars baust du dann die close-anweisung für das Kennwortformular... es gibt ja immer viele Wege.

Verschlüsseln so daß **** angezeigt werden: Textfeld anzeigenformat = Kennwort. Dann sieht der User nur ****

Lese-/Schreibzugriff:
Normalerweise kann man das unter windows schon, aber dann entscheidest du schon genau wer Änderungen vornehmen darf und wer nicht. Jeder kann dann nur Leserechte haben, Admins dann auch schreibzugriff... aber ich denke was du meinst ist was anderes...

Angenommen du hinterlegst dein Passwort-Form über Extras -Start als Startformular, dann kannst du erstmal anklicken, welche Menüs angezeigt werden sollen, ob das Datenbankfenster sichtbar sein soll....

In deinem Kennwortformular kannst du ja auch unterschiedliche User hinterlegen. Dann Prüfst du zB über Select case welcher User sich angemeldet hat. Amin darf alles, sieht alles und zB User Dirk kann nur daten sehen. Das erreichst du indem du nach der Anweisung

DoCmd.OpenForm "frmstart"

nun in dem Formular die Felder für Eingaben sperrst...

Forms!frmstart.eingabe.Locked = true

Näheres zu Select Case findest du auch in der Access - hilfe.

Gruß Leo

Ähnliche Themen

DB-Passwort Access
Danke11  03.05.2007 - 772 Hits - 2 Antworten

passwort schutz
felix.111  17.05.2007 - 102 Hits - 2 Antworten

Passwort Schutz Computer
pille1  26.12.2007 - 87 Hits - 1 Antwort

Excel Arbeitsblätter mit Makro schützen
xxxx  27.02.2008 - 74 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 09:21:55 2026