Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > Βοήθεια με κώδικα σε login form

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 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.
Απάντηση με παράθεση
  #2  
Παλιά 21-07-20, 12:02
Super Moderator
Όνομα: ΓΙΩΡΓΟΣ
Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 14-01-2014
Μηνύματα: 234
Προεπιλογή

Καλησπέρα Βασίλη,

Το ζητούμενο σου έχει να κάνει με τον σχεδιασμό της εφαρμογής σου. Υπάρχουν πολλοί τρόποι να κρύψεις ή να εμφάνισης κάποιο αντικείμενο στην Access.

Θα πρέπει να μας δώσεις περισσότερες πληροφορίες για την δομή (menu, Ribbon) της εφαρμογής σου.

Ευχαριστώ.
__________________
Βραχνάκης Γιώργος
vrahnakisg@gmail.com
Απάντηση με παράθεση
  #3  
Παλιά 24-07-20, 11:56
Όνομα: Βασίλης
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 25-12-2017
Μηνύματα: 23
Προεπιλογή

Γιώργο σ'ευχαριστώ για την ανταπόκριση και δοθείσης ευκαιρίας , συγχαρητήρια για τον κόπο και χρόνο που διαθέτεις εσύ και πολλοί άλλοι για να απαντούν στα ερωτήματά μας. Στο θέμα μου. Το πρόβλημα το έχω σε αυτό το σημείο :
Παράθεση:
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_Home"


Else
MsgBox "Password invalid." & vbCrLf & vbCrLf & "Try again", vbOKOnly, "Administrator Message!"
Me.txtPassword = ""
Me.txtPassword.SetFocus
End If
Θα ήθελα πριν μου ανοίξει τη φόρμα (frm_Home) , να ελέγχει το username , to password και το ρόλο (Permission) του κάθε χρήστη , έτσι ώστε αν είναι Admin να έχει πλήρη πρόσβαση σε όλα. Αν είναι User θα έχει περιορισμούς:
SetProperties "StartUpShowDBWindow", dbBoolean, False
SetProperties "StartUpShowStatusBar", dbBoolean, False
SetProperties "AllowFullMenus", dbBoolean, False
SetProperties "AllowSpecialKeys", dbBoolean, False
SetProperties "AllowBypassKey", dbBoolean, False
SetProperties "AllowShortcutMenus", dbBoolean, False
SetProperties "AllowToolbarChanges", dbBoolean, False
SetProperties "AllowBreakIntoCode", dbBoolean, False

Με εκτίμηση,
Βασίλης
Απάντηση με παράθεση
  #4  
Παλιά 24-07-20, 13:42
Super Moderator
Όνομα: ΓΙΩΡΓΟΣ
Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 14-01-2014
Μηνύματα: 234
Προεπιλογή

Καλησπέρα Βασίλη,

Δες μια πρόταση.

Διαχειριστής
Username : admin
Password : admin

Χρήστης
Username : user
Password : user

Ευχαριστώ.
Συνημμένα Αρχεία
Τύπος Αρχείου: zip PermUser.zip (49,7 KB, 50 εμφανίσεις)
__________________
Βραχνάκης Γιώργος
vrahnakisg@gmail.com
Απάντηση με παράθεση
  #5  
Παλιά 27-07-20, 13:28
Όνομα: ΕΞΑΡΧΟΣ
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 15-02-2020
Μηνύματα: 104
Προεπιλογή

Καλημέρα σας. Σας ευχαριστώ για την μέχρι τώρα πολύτιμη βοήθεια σας.
εγώ προσάρμοσα τον κώδικα που βρήκα στην επισυναπτόμενη ΒΔ που ανεβάσατε, πιο πάνω στη δίκη μου εφαρμογή, έχω 3 προβλημάτακια.
1.σε περίπτωση λάθους pass η φόρμα frm_login κλείνει.
2. σε περιπτωση σωστου username, passwprd μου πεταει μυνημα type missmatch
3 θα ήθελα με την εισοδο ενος απλου user εκτος απο ολα αυτα που εχει το mudule να κρυβει - επενγροποιει και ΤΟ NAVIGATION PANE
Σας ευχαριστώ εκ των προτερων Με τιμη

ο Κωδικας είναι ο παρακάτω

Option Compare Database
Option Explicit
Dim intLogonAttempts As Integer
Dim UserGroup As Integer

Private Sub cbo_user_AfterUpdate()

UserGroup = Me.cbo_user.Column(2, Me.cbo_user.ItemsSelected)
Me.Txt_Password.SetFocus
End Sub
Private Sub cbo_user_GotFocus()

On Error Resume Next
Me.cbo_user.Requery
End Sub

Private Sub cmd_login_Click()
On Error Resume Next

Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim strSQL As String
If IsNull(Me.cbo_user) Or Me.cbo_user = "" Then
MsgBox "You must enter a User Name.", vbOKOnly, "Administrator Message"
Me.cbo_user.SetFocus
Exit Sub
End If

If IsNull(Me.Txt_Password) Or Me.Txt_Password = "" Then
MsgBox "You must enter a Password.", vbOKOnly, "Administrator Message"
Me.Txt_Password.SetFocus
Exit Sub
End If

If Me.Txt_Password.Value = DLookup("Password", "tbl_login", "[UserID]=" & Me.cbo_user.Value) Then

If UserGroup = 1 Then 'Διαχειριστής
EnableProperties
ElseIf UserGroup = 2 Then 'Χρήστης
DisableProperties
Else 'Άλλο (νομίζω ότι εδώ παρουσιαζει το type mismatch)
End If

[/COLOR]
strSQL = "SELECT FirstName FROM tbl_login WHERE Username = """ & Me.cbo_user.Value & """ AND Password = """ & Me.Txt_Password.Value & """"
TempVars("Username").Value = Me.cbo_user.Value
TempVars("Position").Value = Me.Txt_Position.Value
Set db = CurrentDb
Set rst = db.OpenRecordset(strSQL)
Else
MsgBox "Password invalid." & vbCrLf & vbCrLf & "Try again", vbOKOnly, "Administrator Message!"
Me.Txt_Password = ""
Me.Txt_Password.SetFocus
End If
If rst.EOF Then
MsgBox prompt:="ËÜèïò username/password. ÎáíáðñïóðáèÞóå.", buttons:=vbCritical, Title:="Login Error"

Me.cbo_user.SetFocus
Else
MsgBox prompt:="Ãåéá óïõ, " & rst.Fields(0).Value & ". ÊáëÞ ÂÜñäéá", buttons:=vbOKOnly, Title:="Åðéôõ÷Þò Åßóïäïò óôçí ÅöáìïãÞ"
DoCmd.OpenForm "main_frm", acNormal
End If

Set db = Nothing
Set rst = Nothing


intLogonAttempts = intLogonAttempts + 1
If intLogonAttempts > 3 Then
MsgBox "Are you a valid user?" & vbCrLf & "Contact Administrator.", vbCritical, "Failure"

End If



globals.Logging "login"
DoCmd.Close acForm, "frm_login", acSaveYes




End Sub

Private Sub cmd_Cancel_Click()
globals.Logging "ÅÎÏÄÏÓ"
DoCmd.Quit acQuitSaveAll

End Sub
Απάντηση με παράθεση
  #6  
Παλιά 27-07-20, 19:40
Super Moderator
Όνομα: ΓΙΩΡΓΟΣ
Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 14-01-2014
Μηνύματα: 234
Προεπιλογή

Καλησπέρα Έξαρχε,

Δες μια πρόταση για το κρύψιμο του NAVIGATION PANE και φόρμα Frm_Login δεν πρέπει να είναι αποκλειστική.

Πρόσεξε την δομή που έχουν ο πίνακας Users και ο πίνακας UserGroup.

Το type missmatch στο βγάζει γιατί δεν παίρνει τον σωστό τύπο του ορίσματος που περιμένει κάποια συνάρτηση.

Πρόσεξε στο σύνθετο πλαίσιο «cboUser» την προέλευση γραμμής και την σειρά των πεδίων σε αυτή - img1.jpg

Ευχαριστώ.
Συνημμένα Thumbnails
Βοήθεια με κώδικα σε login form-img1.jpg  
Συνημμένα Αρχεία
Τύπος Αρχείου: accdb PermUser.accdb (864,0 KB, 24 εμφανίσεις)
__________________
Βραχνάκης Γιώργος
vrahnakisg@gmail.com
Απάντηση με παράθεση
  #7  
Παλιά 27-07-20, 20:40
Όνομα: Βασίλης
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 25-12-2017
Μηνύματα: 23
Προεπιλογή

Καλησπέρα Γιώργο.

Σ'ευχαριστώ πάρα πολύ για τη βοήθεια . Ήταν ακριβώς αυτό που ήθελα. Έχω μία ερώτηση ακόμα. Θα ήθελα , μόλις ανοίξει η frm_Home , σε ένα πλαίσιο κειμένου να εμφανίζει το username που έκανε login και σε ένα άλλο πλαίσιο το ονοματεπώνυμο αυτού. Το προσπάθησα με TempVars αλλά δεν είδα αποτέλεσμα. Πως ανεβάζεις την εφαρμογή , αφού είναι μεγαλύτερη από 512kb;;;;

Με εκτίμηση ,

Βασίλης
Απάντηση με παράθεση
  #8  
Παλιά 27-07-20, 22:11
Όνομα: ΕΞΑΡΧΟΣ
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 15-02-2020
Μηνύματα: 104
Προεπιλογή form_login

Παράθεση:
Αρχική Δημοσίευση από vraxnakisg Εμφάνιση μηνυμάτων
Καλησπέρα Έξαρχε,

Δες μια πρόταση για το κρύψιμο του NAVIGATION PANE και φόρμα Frm_Login δεν πρέπει να είναι αποκλειστική.

Πρόσεξε την δομή που έχουν ο πίνακας Users και ο πίνακας UserGroup.

Το type missmatch στο βγάζει γιατί δεν παίρνει τον σωστό τύπο του ορίσματος που περιμένει κάποια συνάρτηση.

Πρόσεξε στο σύνθετο πλαίσιο «cboUser» την προέλευση γραμμής και την σειρά των πεδίων σε αυτή - img1.jpg

Ευχαριστώ.
Φίλε Γιώργο σε ευχαριστώ πάρα πολύ για την, κατά καιρούς, πολύτιμη βοήθεια σου. Να είσαι καλά.
Απάντηση με παράθεση
  #9  
Παλιά 28-07-20, 12:40
Super Moderator
Όνομα: ΓΙΩΡΓΟΣ
Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 14-01-2014
Μηνύματα: 234
Προεπιλογή

Καλησπέρα Βασίλη,

Δες μια πρόταση για το ζητούμενο σου.

Έχει αυξηθεί το μέγεθος των αρχείων που μπορούμε να ανεβάσουμε σε 1mb.

Ευχαριστώ.
Συνημμένα Αρχεία
Τύπος Αρχείου: zip PermUser.zip (56,8 KB, 31 εμφανίσεις)
__________________
Βραχνάκης Γιώργος
vrahnakisg@gmail.com
Απάντηση με παράθεση
  #10  
Παλιά 30-07-20, 08:47
Όνομα: Βασίλης
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 25-12-2017
Μηνύματα: 23
Προεπιλογή

Καλημέρα Γιώργο ,

είσαι θεός , απλά ... Ευχαριστώ.

Μια ερώτηση που το διαπίστωσα χθες. Μπαίνω ως admin στην εφαρμογή με "full" δικαιώματα-properties. Βγαίνω και αμέσως μόλις ξαναμπαίνω ως user , αν και έχω απενεργοποιήσει ribbon - shorcutmenu - παράθυρο περιήγησης κτλ , αρχικά δίνει τη δυνατότητα προβολής σχεδίασης .
Βγαίνω και ξαναμπαίνω ως admin. Πάλι η εφαρμογή "κρατάει" κάποιες ρυθμίσεις από τον user , δηλαδή δεν μου δίνει τη δυνατότητα προβολής σχεδίασης και ribbon.
Δηλαδή σε κάθε περίπτωση θα πρέπει να μπαίνω δύο φορές για να ισχύσουν οι περιορισμοί ή τα δικαιώματα.

Γιατί το κάνει αυτό; Την εφαρμογή δεν την έχω μετατρέψει ακόμα σε ACCDE.

Ανεβάζω και την εφαρμογή έτσι ώστε αν μπορεί κάποιος να βοηθήσει. Οι χρήστες είναι (ΠΑΠΑΔΟΠΟΥΛΟΣ = Admin = 123) και (ΝΙΚΟΛΑΟΥ=User=345)

Με εκτίμηση,
Βασίλης
Συνημμένα Αρχεία
Τύπος Αρχείου: zip test.zip (337,8 KB, 9 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη jamman : 15-09-20 στις 20:09.
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Φόρμες ] Login form Lampros Access - Ερωτήσεις / Απαντήσεις 3 11-05-18 21:41
[ Φόρμες ] ΒΟΗΘΕΙΑ ΓΙΑ ΣΩΣΤΗ ΣΥΝΤΑΞΗ ΚΩΔΙΚΑ smasak Access - Ερωτήσεις / Απαντήσεις 0 11-05-17 15:38
Admin Login Form Dimitriss Access - Ερωτήσεις / Απαντήσεις 5 21-12-15 11:08
Βοήθεια σε κώδικα... Χρήστος Access - Ερωτήσεις / Απαντήσεις 2 20-02-11 07:45
Βοήθεια σε κώδικα... Χρήστος Access - Ερωτήσεις / Απαντήσεις 13 06-02-11 20:11


Η ώρα είναι 07:36.