Neuigkeiten:

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

Mobiles Hauptmenü

Probleme mit Select Case (MSAccess 2003)

Begonnen von gats1966, Oktober 13, 2013, 19:16:34

⏪ vorheriges - nächstes ⏩

gats1966

Hallo,
in einem Anmeldeformular soll ein Benutzer seinen Benutzernamen auswählen und sein Passwort eintragen, das dann mit den Daten in der Tabelle tblBenutzer verglichen wird, mit ensprechender Rückmeldung. Mit If funktioniert das Ganze, mit Select Case nicht, da erhalte ich, wenn im Feld txtPAsswort nichts eingetragen wird, die Meldung "Unzulässige Verwendung von Null".
Wenn das richtige Passwort eingetragen wird, passiert gar nichts.
Leider haben mir die drei Select Case - Einträge hier im Forum nicht geholfen, auch nicht die Tipps und Tricks.
Hier der Code:

Private Sub cmd_Name_Passwort_Click()

Dim strgPasswort As String
strgPasswort = DLookup("BEN_Passwort", "tblBenutzer", "BEN_Name= [cboName]")

Select Case strgPasswort

Case strgPasswort = Me.txtPasswort
    MsgBox "Passwort richtig"

Case Me.txtPasswort <> strgPasswort
    MsgBox "Passwort falsch"

Case IsNull(Me.txtPasswort)
    MsgBox "Passwort eintragen"

End Select

'If strgPasswort = Me.txtPasswort Then MsgBox "Passwort korrekt"
'If IsNull(Me.txtPasswort) Then MsgBox "Passwort eintragen"
'If Me.txtPasswort <> strgPasswort Then MsgBox "Passwort falsch"

End Sub

Es wäre toll, wenn mir jemand erklären könnte, warum es mit if funktioniert und mit Select Case nicht.

DF6GL

#1
Hallo,

es funktioniert deswegen nicht, weil Select case völlig falsch angewendet wird.





Private Sub cmd_Name_Passwort_Click()

Dim strgPasswort
strgPasswort = DLookup("BEN_Passwort", "tblBenutzer", "BEN_Name= '" & Me![cboName] & "'")

Select Case strgPasswort

Case Me!txtPasswort

MsgBox "Passwort richtig"

Case Else
MsgBox "Passwort falsch"

End Select



End Sub




Access ist nicht case-sensitive, d. h. der =-Operator nimmt keine Rücksicht auf Groß-Kleinschreibung im Passwort-String.

Der Einsatz der Strcomp() -Funktion ist anzuraten.

MzKlMu

Hallo,
oder so, wenn auch keine Eintrag gemeldet werden soll:

Private Sub cmd_Name_Passwort_Click()
Dim strgPasswort As String
    strgPasswort = DLookup("BEN_Passwort", "tblBenutzer", "BEN_Name= [cboName]")
        Select Case Nz(Me.txtPasswort, "")
            Case ""
                MsgBox "Passwort eintragen"
            Case strgPasswort
                MsgBox "Passwort richtig"
            Case Is <> strgPasswort
                MsgBox "Passwort falsch"
        End Select
End Sub
Gruß Klaus

gats1966

Vielen Dank für die schnelle Antwort. Leider bekomme ich nun immer die Meldung "Paswort falsch".

DF6GL

#4
Hi,


"Dim strgPasswort As String"

in diesem Fall darf aber nicht nz() um Dlookup vergessen werden, wenn es ein kann, dass der gewählte Name in der Tabelle nicht existiert..


PS:  Bist Du sicher, ein richtiges Passwort eingegeben zu haben?

Setz einen Haltepunkt an den Codeanfang und überprüf mit Einzelschritt, welchen Inhalt die Variablen haben.

gats1966

Vielen  Dank an MzKlMu - es funktionert !   8) :)