Januar 19, 2021, 06:17:48

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Benutzersrechte im Access 2019 verwenden

Begonnen von katharina_eckert, Dezember 17, 2020, 09:07:22

⏪ vorheriges - nächstes ⏩

katharina_eckert

Hallo Liebe Access Helfer
Ich habe leider keine Ahnung wie ich weiter machen soll. Es klappt bei mir nicht. Ich will zugriffsrechte erteilen. Anhand einer Tabelle, wo die Benutzer, bzw Benutzername und Kennwort stehen.

Mein Ziel ist es, dass einer, bzw. eine Gruppe von personen, wenn sie die Datenbank öffnen, nur in einer Tabelle eine bestimmte Spalte verändern, bzw. löschen können. Es handelt sich dabei um Ist werte, die im nachhinein eingegeben werden.
Kann mir einer dabei helfen. Ich wäre ihn sehr dankbar dafür.




Option Compare Database
Option Explicit

Private Sub cmdAbbrechen_Click()
 Dim answer As Integer
 
answer = MsgBox("Wirklich Schließen ?", vbQuestion + vbYesNo + vbDefaultButton2, "Message Box Title")
  If answer = vbYes Then
     DoCmd.Quit
'Else
'  MsgBox "No"
End If


End Sub



Private Sub cmdLogin_Click()
Dim lngBenutzerID As Long, var1 As Variant

var1 = DLookup("BenutzerID", _
"tbl_Benutzer", "Benutzername = ''''" _
& Me!cboBenutzername _
& "'''' AND Kennwort = ''''" _
& Me!txtKennwort & "''''")

lngBenutzerID = Nz(var1, 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

Danke im voraus

Mfg

katharina_eckert

Hallo
ich habe das jetzt verbessert. Es findet trotzdem die Benutzer nicht.
MfG


Private Sub cmdLogin_Click()
    Dim lngBenutzerID As Long
    lngBenutzerID = Nz(DLookup("BenutzerID", "tbl_Benutzer", "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

steffen0815

Hallo,
in einem solchen Fall, lässt man sich die Bedingung erst mal "aufgelöst" anzeigen:
debug.print "Benutzername = '" & Me!cboBenutzername & "' AND Kennwort = '" & Me!txtKennwort & "'"Vielleicht findest du in dieser "Ansicht" den Fehler selbst.
Gruß Steffen

derArb

Hallo,
wichtiger Zusatztipp: Mit Strg-G im VBA Editor öffnest du das Direktfenster, um das Ergebnis von
Debug.Print sehen zu können.
Wichtig ist, dass immer nur der Inhalt der gebundenen Spalte ausgewertet wird.
Das ist meistens die erste Spalte des Kombifeldes, auch wenn sie in der Ansicht des Kombifeles ausgeblendet ist.
Es kann ja jeder machen, wie er will, aber bei mir steht in der ersten Spalte immer der Primärschlüssel der
Tabelle/Abfrage und ist vom Datentyp Autowert, Long Integer.


katharina_eckert

Hallo Leute,

Danke für den tollen Tipp.
Habe mein Fehler erkannt und korrigiert. :)

MfG