Σχόλια : Γνωρίζουμε ότι ενώ από τις επιλογές της εκκίνησης της Access μπορούμε να απενεργοποιήσουμε την εμφάνιση των Default Menus, απόκρυψη της εμφάνισης του Database Window (Δηλαδή του παραθύρου που έχουμε όλα τα objects, Tables, Queries, Forms, Reports, Pages, Macros, Modules) αν ο χρήστης πατήσει το Shift Key όλα αυτά ξαναεμφανίζονται μαζί και ο κώδικας VBA δηλαδή όλα τα modules.
To Shift Key φυσικά δεν εφαρμόζεται όταν το αρχείο μας mdb μετατραπεί σε mde. Ένα mde αρχείο είναι ουσιαστικά και τυπικά αρχείο κλειδωμένο χωρίς να έχουμε την δυνατότητα να εισάγουμε από αυτό κανένα οbject εκτός από τους πίνακές του.
Όμως εδώ θα δούμε το Shift Key πως το απενεργοποιούμε (Εισάγοντας κωδικό που όρισε στον κώδικα ο προγραμματιστής) σε ένα mdb αρχείο καθώς και πως τα Objects μας γίνονται κρυφά ώστε να μη μπορεί ο χρήστης σε ένα καινούργιο mdb αρχείο με ένα απλό insert να εισάγει τα αντικείμενα μας. (Σημ. με κώδικα VBA τα αντικείμενα μας εισάγονται. Μόνο αν το αρχείο είναι mde δεν γίνεται να εισαχθούν τα αντικείμενα μας).
Αντιγράψτε σε ένα καινούργιο module τις παρακάτω 2 συναρτήσεις. Μπορούμε να καλέσουμε το PasswordBypassKey πατώντας το F11 εφόσον δηλαδή το βάλουμε στην μακροεντολή Autokeys το F11 να τρέξει την συνάρτηση PasswordBypasskey().
Public Function PasswordBypassKey()
' Συνάρτηση που καλεί την συνάρτηση SetProperties και ανάλογα με το αν είναι σωστός ο κωδικός ή όχι ενεργοποιεί η απενεργοποιεί το Shift.
Dim strInput As String
Dim strMsg As String
Beep
Application.SetOption "Show Hidden Objects", False ' Τα αντικείμενα γίνονται κρυφά
strMsg = "Να ενεργοποιηθεί το Bypass Key ?" & vbCrLf & vbLf & _
"Παρακαλώ εισάγετε τον κωδικό για να ενεργοποιηθεί το Bypass Key."
strInput = InputBox(Prompt:=strMsg, title:="Κωδικός ενεργοποίησης Bypass Key")
If strInput = "Your Password" Then ' Το strInput είναι ο Κωδικός Password
SetProperties "AllowBypassKey", dbBoolean, True
Beep
MsgBox "To Bypass Key ενεργοποιήθηκε." & vbCrLf & vbLf & _
"Το Shift πλήκτρο θα επιτρέπει στους χρήστες να προσπερνούν τις επιλογές έναρξης την επομένη φορά που η βάση θα ανοιχτεί.", _
vbInformation, "Σωστός Κωδικός"
Else
Beep
SetProperties "AllowBypassKey", dbBoolean, False
MsgBox "Λάθος Κωδικός" & vbCrLf & vbLf & _
"Το Bypass Key απενεργοποιήθηκε." & vbCrLf & vbLf & _
"Το Shift πλήκτρο δε θα επιτρέπει στους χρήστες να προσπερνούν τις επιλογές έναρξης την επομένη φορά που η βάση θα ανοιχτεί", _
vbCritical, "Λάθος Κωδικός"
End Function
Public Function SetProperties(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
On Error GoTo Err_SetProperties
Dim db As DAO.Database, prp As DAO.Property
Set db = CurrentDb
db.Properties(strPropName) = varPropValue
SetProperties = True
Set db = Nothing
Exit_SetProperties:
Exit Function
Err_SetProperties:
If Err = 3270 Then 'H ιδιότητα δεν βρέθηκε
Set prp = db.CreateProperty(strPropName, varPropType, varPropValue)
db.Properties.Append prp
Resume Next
Else
SetProperties = False
MsgBox "SetProperties", Err.Number, Err.Description
Resume Exit_SetProperties
End If
End Function
| •<• •Prev• | •Next• •>• |
|---|

