Αναγν. άρθρου: 209871 - Τελευταία αναθεώρηση: Σάββατο, 17 Σεπτεμβρίου 2011 - Αναθεώρηση: 2.0

ACC2000: Τρόπος δημιουργίας ενός κωδικού πρόσβασης προστατευμένης φόρμας ή έκθεσης

Συμβουλή συστήματοςΑυτό το άρθρο ισχύει για διαφορετικό λειτουργικό σύστημα από αυτό που χρησιμοποιείτε. Το περιεχόμενο του άρθρου που ενδέχεται να μην σας αφορά έχει απενεργοποιηθεί.
Για προχωρημένους: Απαιτεί ειδικό κωδικοποίησης, διαλειτουργικότητας και ικανότητες πολλών χρηστών.

Αυτό το άρθρο αφορά μόνο βάσεις δεδομένων της Microsoft Access (.mdb).

Σε αυτήν τη σελίδα

Ανάπτυξη όλων | Σύμπτυξη όλων

Περίληψη

Η Microsoft Access διαθέτει δύο δυνατότητες ενσωματωμένη ασφάλεια για την προστασία της βάσης δεδομένων:
  • Λογαριασμοί χρήστη/ομάδας και δικαιώματα
  • Οι κωδικοί πρόσβασης βάσης δεδομένων
Αυτό το άρθρο περιγράφει τον τρόπο μπορείτε επίσης να ρυθμίσετε μεμονωμένους κωδικούς πρόσβασης για κάθε φόρμα, καθώς και για κάθε αναφορά στη βάση δεδομένων σας.

Περισσότερες πληροφορίες

Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για λόγους επεξήγησης, χωρίς να παρέχει καμία εγγύηση, σιωπηρή ή ρητή. Σε αυτά περιλαμβάνονται, ενδεικτικά, οι σιωπηρές εγγυήσεις εμπορευσιμότητας ή/και καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που παρουσιάζεται, καθώς και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία και τον εντοπισμό σφαλμάτων κώδικα διαδικασιών. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας εξηγήσουν τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας, αλλά δεν θα τροποποιήσουν αυτά τα παραδείγματα, για να παράσχουν πρόσθετες λειτουργίες, ούτε θα δημιουργήσουν διαδικασίες, για να καλύψουν τις συγκεκριμένες απαιτήσεις σας.
Προσοχή: Εάν ακολουθήσετε τα βήματα σε αυτό το παράδειγμα, μπορείτε να τροποποιήσετε το δείγμα βάσης δεδομένων Northwind.mdb. Θέλετε να δημιουργήσετε αντίγραφα ασφαλείας του αρχείου Northwind.mdb και να ακολουθήσετε αυτά τα βήματα στο αντίγραφο της βάσης δεδομένων.

ΣΗΜΕΙΩΣΗ: Του δείγματος κώδικα σε αυτό το άρθρο χρησιμοποιεί Microsoft Data Access Objects. Για να εκτελεστεί σωστά αυτός ο κώδικας, πρέπει να συσχετίσετε τη βιβλιοθήκη αντικειμένων Microsoft DAO 3.6. Για να γίνει αυτό, κάντε κλικ στο κουμπίΑναφορέςΣτο διακομιστήΕργαλείαμενού στο πρόγραμμα επεξεργασίας της Visual Basic, και βεβαιωθείτε ότι τοΒιβλιοθήκη αντικειμένων Microsoft DAO 3.6το πλαίσιο ελέγχου είναι επιλεγμένο.

Χρήση του κωδικού για τον κωδικό πρόσβασης προστασίας μιας φόρμας

Χρησιμοποιώντας κώδικα, μπορείτε να ζητήσετε έναν κωδικό πρόσβασης, όταν ένας χρήστης ανοίγει μια φόρμα ή έκθεση. Εάν εισάγετε τον σωστό κωδικό πρόσβασης, ανοίγει τη φόρμα ή την έκθεση.

Τα παρακάτω παραδείγματα σας δείχνουν πώς μπορείτε να τον κωδικό πρόσβασης στην προστασία της φόρμας "Παραγγελίες" στο δείγμα βάσης δεδομένων Northwind.mdb:
  1. Εκκινήστε την Access και μετά ανοίξτε το δείγμα βάσης δεδομένων Northwind.mdb.
  2. Πιέστε ALT + F11, για να ξεκινήσει το πρόγραμμα επεξεργασίας της Microsoft Visual Basic.
  3. Στο διακομιστήINSERTμενού, κάντε κλικ στο κουμπίModule.
  4. Στο φύλλο λειτουργικής μονάδας, πληκτρολογήστε την ακόλουθη διαδικασία:
    Public MyPassword
    Public Function KeyCode(Password As String) As Long
       ' This function will produce a unique key for the
       ' string that is passed in as the Password.
       Dim I As Integer
       Dim Hold As Long
    
       For I = 1 To Len(Password)
          Select Case (Asc(Left(Password, 1)) * I) Mod 4
          Case Is = 0
             Hold = Hold + (Asc(Mid(Password, I, 1)) * I)
          Case Is = 1
             Hold = Hold - (Asc(Mid(Password, I, 1)) * I)
          Case Is = 2
             Hold = Hold + (Asc(Mid(Password, I, 1)) * _
                (I - Asc(Mid(Password, I, 1))))
          Case Is = 3
             Hold = Hold - (Asc(Mid(Password, I, 1)) * _
                (I + Len(Password)))
       End Select
       Next I
       KeyCode = Hold
    End Function
    					
  5. Πιέστε ALT + F11, για να επιστρέψετε στην Access.
  6. Στο παράθυρο "βάση δεδομένων", στην περιοχήδύο διαστάσεωνΚάντε κλικΠίνακες, και στη συνέχεια κάντε κλικ στο κουμπίΝέα.
  7. ΣτοΔημιουργία πίνακαπαράθυρο διαλόγου, κάντε διπλό κλικΠροβολή σχεδίασης.
  8. Δημιουργία νέου πίνακα ως εξής:
       Table: tblPassword
       ---------------------------
       Field Name: ObjectName
          Data Type: Text
          Field Size: 50
       Field Name: KeyCode
          Data Type: Text
          Field Size: 25
          Input Mask: Password
    
       Table Properties: tblPassword
       -----------------------------
          PrimaryKey: ObjectName
    					
  9. Ανοίξτε τον πίνακα tblPassword και, στη συνέχεια, πληκτρολογήστε τα ακόλουθα δεδομένα:
         ObjectName: Orders
           KeyCode: 2818
    					
  10. Δημιουργία φόρμας σε προβολή σχεδίασης και να αποθηκεύσετε τη φόρμα ως frmPassword.
  11. Προσθέστε ένα μεμονωμένο πλαίσιο κειμένου που ονομάζεται Text0 frmPassword και ένα κουμπί εντολής που ονομάζεται CheckPassword.
  12. Ορισμός τουΜάσκα εισαγωγής (Input Mask)ιδιότητα Text0 σε "PASSWORD" (πλην τα εισαγωγικά).
  13. Προσθέστε τον ακόλουθο κώδικα στο συμβάν OnClick του κουμπιού CheckPassword και στη συνέχεια αποθηκεύστε τη φόρμα:
    If IsNull(Forms!frmPassword!Text0.Value) Then
                     MsgBox "You cannot enter a blank Password. Try again."
                     Me!Text0.SetFocus
                Else
                     MyPassword = Me!Text0.Value
                     DoCmd.Close acForm, "frmPassword"
                End If 
    					
  14. Ανοίξτε τη φόρμα Orders σε προβολή σχεδίασης.
  15. Εάν το φύλλο ιδιοτήτων δεν είναι ορατό, κάντε κλικ στο κουμπίΙδιότητες (Properties)Στο διακομιστήViewΜενού (Menu).
  16. Πληκτρολογήστε την ακόλουθη διαδικασία συμβάντος στη λειτουργική μονάδα για τοΜε το άνοιγμαη ιδιότητα της φόρμας:
    Private Sub Form_Open(Cancel as Integer)
       Dim Hold As Variant
       Dim tmpKey As Long
       Dim I As Integer
       Dim rs As DAO.Recordset
       Dim db As DAO.Database
    
       On Error GoTo Error_Handler
       ' Prompt the user for the Password.
       DoCmd.OpenForm "frmPassword", acNormal, , , , acDialog
                Hold = MyPassword
    ' Open the table that contains the password.
       Set db = CurrentDb
       Set rs = db.OpenRecordset("tblPassword", dbOpenTable)
       rs.Index = "PrimaryKey"
       rs.Seek "=", Me.Name
       If rs.NoMatch Then
          MsgBox "Sorry cannot find password information. Try Again"
          Cancel = -1
       Else
          ' Test to see if the key generated matches the key in
          ' the table; if there is not a match, stop the form
          ' from opening.
          If Not (rs![keycode] = KeyCode(Cstr(Hold))) Then
             MsgBox "Sorry you entered the wrong password." & _
                "Try again.", vbOKOnly, "Incorrect Password"
             Cancel = -1
          End If
       End If
       rs.Close
       db.Close
       Exit Sub
    
    Error_Handler:
       MsgBox Err.Description, vbOKOnly, "Error #" & Err.Number
       Exit Sub
    End Sub
    					
  17. Κλείστε και αποθηκεύστε τη φόρμα Orders.
  18. Ανοίξτε τη φόρμα Orders και στη συνέχεια πληκτρολογήστεPASSWORDΌταν σας ζητηθεί κωδικός πρόσβασης.

    Παρατηρήστε ότι το παραγγελίες φόρμα ανοίγει. Το KeyCode που δημιουργείται από τοPASSWORDταιριάζει το KeyCode στον πίνακα tblPassword και εξαρτάται από τα πεζά-κεφαλαία γράμματα στον κωδικό πρόσβασης που πληκτρολογήσατε.
  19. Κλείστε και ανοίξτε ξανά τη φόρμα Orders και, στη συνέχεια, πληκτρολογήστεPASSWORDΌταν σας ζητηθεί κωδικός πρόσβασης.

    Παρατηρήστε ότι λαμβάνετε το μήνυμα:
    Πληκτρολογήσατε λάθος κωδικό πρόσβασης. Try again.
    Η φόρμα Orders δεν ανοίγει, επειδή η διαδικασία κωδικού πρόσβασης είναι διάκριση πεζών-κεφαλαίων.
  20. Για να προσδιορίσετε ποιο είναι το αντίστοιχο KeyCode για μια συγκεκριμένη συμβολοσειρά, πληκτρολογήστε τα παρακάτω στο παράθυρο εντολών και κατόπιν πιέστε το πλήκτρο ENTER:
    ?KeyCode("TestString")
    						
    Η προηγούμενη παράδειγμα επιστρέφει 5864.
  21. Για να αποκρύψετε τον πίνακα tblPassword στο παράθυρο "βάση δεδομένων", κάντε δεξιό κλικ στον πίνακα tblPassword και στη συνέχεια κάντε κλικ στο κουμπίΙδιότητες (Properties). Στο παράθυρο διαλόγου Ιδιότητες, κάντε κλικ για να επιλέξετε τοΚρυφό (Hidden)πλαίσιο ελέγχου και, στη συνέχεια, κάντε κλικ στο κουμπίOk.

Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Access 2000 Standard Edition
Λέξεις-κλειδιά: 
kbhowto kbmt KB209871 KbMtel
Μηχανικά μεταφρασμένοΜηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:209871  (http://support.microsoft.com/kb/209871/en-us/ )