Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: gats1966 am Oktober 13, 2013, 19:16:34

Titel: Probleme mit Select Case (MSAccess 2003)
Beitrag von: gats1966 am Oktober 13, 2013, 19:16:34
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.
Titel: Re: Probleme mit Select Case (MSAccess 2003)
Beitrag von: DF6GL am Oktober 13, 2013, 19:39:38
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.
Titel: Re: Probleme mit Select Case (MSAccess 2003)
Beitrag von: MzKlMu am Oktober 13, 2013, 19:47:14
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
Titel: Re: Probleme mit Select Case (MSAccess 2003)
Beitrag von: gats1966 am Oktober 13, 2013, 19:51:02
Vielen Dank für die schnelle Antwort. Leider bekomme ich nun immer die Meldung "Paswort falsch".
Titel: Re: Probleme mit Select Case (MSAccess 2003)
Beitrag von: DF6GL am Oktober 13, 2013, 19:52:29
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.
Titel: Re: Probleme mit Select Case (MSAccess 2003)
Beitrag von: gats1966 am Oktober 13, 2013, 19:55:25
Vielen  Dank an MzKlMu - es funktionert !   8) :)