
20-07-20, 18:23
|
| Όνομα: Βασίλης Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2016 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική | | Εγγραφή: 25-12-2017
Μηνύματα: 23
| |
Βοήθεια με κώδικα σε login form
Καλησπέρα σας. Θα ήθελα τη βοήθεια σας σχετικά με διόρθωση-πρόσθεση κώδικα σε μία φόρμα login. Έχω έναν πίνακα tbl_Users με πεδία lngUserID (Α/Α) , strUserName , strUserPassword , Permission (με τιμές Admin ,User). Μετά από πολύ ψάξιμο βρήκα διάφορα και παραμετροποίησα κάποιους κώδικες στη frm_Login οι οποίοι δουλεύουν μια χαρά. Θα ήθελα όμως να θέσω κάποιους περιορισμούς σε αυτούς που μπαίνουν ως Users. Δηλαδή από τη στιγμή που βάζουν το σωστό password να τους ανοίγει η frm_Home αλλά να μην βλέπουν ribbon , παράθυρο περιήγησης κτλ , ενώ αυτός που μπαίνει ως Admin να μην έχει περιορισμούς και επίσης κάπου είχα διαβάσει ότι σε έναν άλλον πίνακα μπορώ να βλέπω ποιος μπήκε και τι αλλαγές έκανε , σχετικό εδώ , αυτό θα το παλέψω και πιστεύω να τα καταφέρω.
Παραθέτω τον κώδικα , γιατί η βάση είναι 25MB και θα την ανεβάσω μόλις μπορέσει κάποιος να με βοηθήσει. Ευχαριστώ. Παράθεση:
Option Compare Database
Option Explicit
Public intLogonAttempts As Integer
Private Sub cboUser_GotFocus()
On Error Resume Next
cboUser.Requery
End Sub
Private Sub cmdChangePassword_Click()
On Error Resume Next
If IsNull(Me.cboUser) Or Me.cboUser = "" Then
MsgBox "You must enter a User Name.", vbOKOnly, "Administrator Message"
Me.cboUser.SetFocus
Exit Sub
End If
If IsNull(Me.txtPassword) Or Me.txtPassword = "" Then
MsgBox "You must enter a Password.", vbOKOnly, "Administrator Message"
Me.txtPassword.SetFocus
Exit Sub
End If
If Me.txtPassword.Value = DLookup("strUserPassword", "tbl_User", "[lngUserID]=" & Me.cboUser.Value) _
Then
lngMyUserID = Me.cboUser.Value
DoCmd.Close acForm, "frm_Login", acSaveNo
DoCmd.OpenForm "frm_PasswordChange"
Else
MsgBox "Your old PASSWORD invalid." & vbCrLf & vbCrLf & "Try again", vbOKOnly, "Administrator Message"
Me.txtPassword = ""
Me.txtPassword.SetFocus
End If
intLogonAttempts = intLogonAttempts + 1
If intLogonAttempts > 3 Then
MsgBox "Contact Administrator.", vbCritical, "Failed!"
Call cmdExit_Click
DoCmd.OpenForm "frm_Login"
End If
End Sub
Private Sub cmdExit_Click()
On Error Resume Next
Application.Quit acQuitSaveNone
End Sub
Private Sub cmdLogin_Click()
On Error Resume Next
If IsNull(Me.cboUser) Or Me.cboUser = "" Then
MsgBox "You must enter a User Name.", vbOKOnly, "Administrator Message"
Me.cboUser.SetFocus
Exit Sub
End If
If IsNull(Me.txtPassword) Or Me.txtPassword = "" Then
MsgBox "You must enter a Password.", vbOKOnly, "Administrator Message"
Me.txtPassword.SetFocus
Exit Sub
End If
If Me.txtPassword.Value = DLookup("strUserPassword", "tbl_User", "[lngUserID]=" & Me.cboUser.Value) _
Then
lngMyUserID = Me.cboUser.Value ....κάπου εδώ το χάνω.... θα ήθελα να βλέπει τιμή από το πεδίο Permission
DoCmd.Close acForm, "frm_Login", acSaveNo
DoCmd.OpenForm "frm_Home"
Else
MsgBox "Password invalid." & vbCrLf & vbCrLf & "Try again", vbOKOnly, "Administrator Message!"
Me.txtPassword = ""
Me.txtPassword.SetFocus
End If
intLogonAttempts = intLogonAttempts + 1
If intLogonAttempts > 3 Then
MsgBox "Are you a valid user?" & vbCrLf _
& "Contact Administrator.", vbCritical, "Failure"
Call cmdExit_Click
End If
End Sub
|
Τελευταία επεξεργασία από το χρήστη jamman : 20-07-20 στις 18:49.
|