Hallo Alle Zusammen,
Habe folgendes Problem mit diesem Code:
Private Sub edtEinloggen_Click()
Dim rcstblUser As Recordset
If Len(Me.edtNachname.Value) = 0 Then
Me.edtNachname.SetFocus
Beep
Me.lblAnmeldeErgebnis.Caption = "Bitte geben Sie einen Namen ein!"
Else
Set rcstblUser = CurrentDb.OpenRecordset("tblUser", dbOpenDynaset)
rcstblUser.FindFirst "[USER NACHNAME]= '" & Me.edtNachname & "'"
If rcstblUser.NoMatch Then
Me.edtNachname.SetFocus
Beep
Me.lblAnmeldeErgebnis.Caption = "Das ist kein gültiger Name!"
Else
If rcstblUser.Fields("User Passwort").Value = Me.edtPasswort.Value Then
p_IngUSERID = rcstblUser.Fields("USER ID").Value
p_strUSERNACHNAME = rcstblUser.Fields("USER VORNAME").Value & _
" " & rcstblUser.Fields("USER NACHNAME").Value
Me.lblAnmeldeErgebnis.Caption = "Anmeldung erfolgreich."
LoginName = Me.edtNachname.Value
DoCmd.Close acForm, "editUser", acSaveNo
DoCmd.OpenForm " Basis "
Else
Me.edtPasswort.SetFocus
Beep
Me.lblAnmeldeErgebnis.Caption = "Das ist kein gültiges Passwort"
End If
End If
End If
End Sub
Dieser funktionniert - nur er bereitet mir folgende Probleme :
1) schliesst er nicht das Formular "editUser"
2) möchte ich gerne, dass wenn die Sachbearbeiter mit Namen Anton und Otto sich anmelden, hier das Formular Basic "Verkauf" sich öffnet und bei Namen Schmit zb das Formular Basic Kontrolle sich öffnet
Wie kann ich den Code umändern ?? ::)
Vielen Dank im Voraus und schöne Grüsse
Rol
Hallo,
wird das Form "editUser" (heißt das auch so?) nicht geschlossen oder das Form "Basis" nicht geöffnet?
Ist "Anton" oder "Otto" der Vorname oder Nachname?
Dim LoginName as String
.
.
.
DoCmd.Close acForm, Me.Name 'falls das Form geschlossen werden soll, in dem dieser Code abläuft.
LoginName = Me!edtNachname
Select Case LoginName
Case "Anton", "Otto"
DoCmd.OpenForm "Basis"
Case "Schmit"
Docmd.Openform "Kontrolle"
Case Else
'Docmd.Openform "xyz"
End Select
.
.
.
Mindestens diese "starre" Abhängigkeit von bestimmten Namen sollte nochmal überdacht werden.
Hallo,
und dann wäre da noch zu erwähnen ...
Wo hast du die Variablen 'p_IngUSERID ', 'p_strUSERNACHNAME' und 'LoginName' deklariert?
Wenn das keine Globalen Variablen sind sollten sie in der Prozedur deklariert werden, in der sie verwendet werden!
Stelle sicher, dass 'Option Explicit' in deinen Prozeduren erscheint - VBE --- Extras --- Optionen --- Reg.Karte Editor --- Variablendeklaration erforderlich --- Haken setzen!
DoCmd.Close acForm, "editUser" , acSaveNo
Wenn ich annehme dass auf dem Login-Formular nur ungebundene Felder verwendet werden, werden eingegebene Daten in diesen Feldern automatisch verschwinden wenn das Formular geschlossen wird.
acSaveNo bezieht sich ausschließlich auf die Speicherung eines eventuell geänderten Formularentwurfs.
DoCmd.OpenForm " Basis "
Die beiden Leerzeichen - vor und nach dem Formularnamen - sind (wahrscheinlich) nicht Bestandteil des Formularnamens.
Und es fehlt am Ende der Prozedur
rcstblUser.Close
Set rcstblUser = Nothing
Hallo,
nur zur Ergänzung:
acSaveNo bzw. acSaveYes hat mit Datenspeicherung nichts zu tun. Das bezieht sich ausschließlich auf die Speicherung eines eventuell geänderten Formularentwurfs.
Stimmt natürlich, hab's oben berichtigt