ACC2000: Gewusst wie: Erstellen einer geschützten, Formular oder Bericht

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 209871 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Erweiterte: Erfordert Experten Codierung und Interoperabilität sowie Mehrbenutzerfähigkeiten.

Dieser Artikel bezieht sich ausschließlich auf eine Microsoft Access-Datenbank (.mdb).

Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Microsoft Access verfügt über zwei integrierte Sicherheitsfunktionen zum Schutz der Datenbank:
  • Benutzer-Gruppe Benutzerkonten und Berechtigungen
  • Kennwörter für Datenbanken
In diesem Artikel gezeigt, wie Sie einzelne Kennwörter für jedes Formular und für jeden Bericht auch in der Datenbank festlegen können.

Weitere Informationen

Microsoft bietet Programmierbeispiele für Abbildung nur ohne Gewährleistung oder konkludent. Dies umfasst, ist jedoch nicht beschränkt auf konkludenten Garantien der Handelsüblichkeit oder Eignung für einen bestimmten Zweck. Dieser Artikel setzt voraus, dass Sie mit der Programmiersprache, die Programmierungsbeispiele ist und mit den Tools, die zum Erstellen und Debuggen von Prozeduren verwendet werden vertraut sind. Microsoft Support-Technikern helfen Erläuterung die Funktionalität einer bestimmten Prozedur, Sie werden ändert jedoch nicht diese Beispiele bieten Funktionen hinzugefügt oder Verfahren, um Ihren Anforderungen entsprechend zu erstellen.
Vorsicht : Wenn Sie die in diesem Beispiel beschriebenen Schritte ausführen, ändern Sie die Beispieldatenbank Nordwind.mdb. Sie sollten daher eine Sicherungskopie der Datei "Nordwind.mdb" erstellen und diese Schritte in einer Kopie der Datenbank ausführen.

Hinweis : der Beispielcode in diesem Artikel verwendet Microsoft Datenzugriffsobjekte. Damit dieser Code ordnungsgemäß ausgeführt wird, müssen Sie einen Verweis auf die Microsoft DAO 3.6-Objektbibliothek anlegen. Dazu klicken Sie im Menü Extras in Visual Basic-Editor auf Verweise , und sicher, dass das Kontrollkästchen Microsoft DAO 3.6-Objektbibliothek aktiviert ist.

Ein Formular mithilfe von Code auf Kennwort schützen

Mithilfe von Code können Sie ein Kennwort auffordern, wenn ein Benutzer ein Formular oder Bericht öffnet. Wenn das richtige Kennwort eingegeben wird, wird das Formular oder der Bericht geöffnet.

Das folgende Beispiel zeigt, wie Sie Kennwort können das Formular Bestellungen in der Beispieldatenbank "Nordwind.mdb" zu schützen:
  1. Starten Sie Access und öffnen Sie die Beispieldatenbank "Nordwind.mdb".
  2. Drücken Sie [ALT]+[F11], um den Visual Basic-Editor zu starten.
  3. Klicken Sie im Menü Einfügen auf Modul .
  4. Geben Sie in das Modulblatt die folgende Prozedur:
    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. Drücken Sie [Alt]+[F11], um zu Access zurückzugehen.
  6. Klicken Sie im Datenbankfenster unter Objekte auf Tabellen , und klicken Sie auf neu .
  7. Doppelklicken Sie im Dialogfeld Neue Tabelle auf Entwurfsansicht .
  8. Erstellen einer neuen Tabelle wie folgt:
       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. Öffnen Sie die Tabelle TblPassword und geben Sie die folgenden Daten:
         ObjectName: Orders
           KeyCode: 2818
    					
  10. Erstellen eines neuen Formulars in der Entwurfsansicht und speichern Sie das Formular als FrmPassword.
  11. Fügen Sie ein einzelnes Textfeld hinzu FrmPassword Text0 aufgerufen, und eine Befehlsschaltfläche CheckPassword aufgerufen.
  12. Legen Sie die Eingabeformat -Eigenschaft des Text0, "PASSWORD" (ohne Anführungszeichen).
  13. Fügen Sie den folgenden Code an das OnClick-Ereignis der Schaltfläche CheckPassword und speichern Sie das Formular:
    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. Öffnen Sie das Formular "Orders" (Bestellungen) in der Entwurfsansicht.
  15. Ist das Eigenschaftenblatt nicht sichtbar, klicken Sie im Menü Ansicht auf Eigenschaften .
  16. Geben Sie die folgende Ereignisprozedur in das Modul für die BeimÖffnen -Eigenschaft des Formulars:
    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. Schließen Sie und speichern Sie das Formular "Bestellungen".
  18. Öffnen Sie das Orders-Formular und geben Sie PASSWORD , wenn Sie aufgefordert werden, ein Kennwort einzugeben.

    Beachten Sie, dass die Bestellungen öffnet bilden. KeyCode, die von Kennwort generiert wird, KeyCode in der Tabelle TblPassword entspricht, und ist abhängig von der Groß-/ Kleinschreibung im Kennwort eingegeben.
  19. Schließen und öffnen Sie das Formular "Bestellungen" erneut und geben Sie Kennwort , Aufforderung ein Kennwort ein.

    Beachten Sie, dass die Meldung angezeigt:
    Leider Sie das falsche Kennwort eingegeben haben. Wiederholen Sie den Vorgang.
    Das Formular "Bestellungen" wird nicht öffnen, da die Kennwort-Prozedur Unterscheidung nach Groß-/Kleinschreibung ist.
  20. Um festzustellen, welche entsprechende KeyCode für eine bestimmte Zeichenfolge ist, geben Sie Folgendes im Direktfenster ein, und drücken Sie anschließend die [EINGABETASTE]:
    ?KeyCode("TestString")
    						
    das frühere Beispiel gibt 5864 zurück.
  21. Um die TblPassword-Tabelle in das Datenbankfenster auszublenden, klicken Sie mit der rechten Maustaste auf die TblPassword-Tabelle, und klicken Sie dann auf Eigenschaften . Das Eigenschaftenfenster, klicken Sie dann auf das Kontrollkästchen ausgeblendet , und klicken Sie dann auf OK .

Eigenschaften

Artikel-ID: 209871 - Geändert am: Donnerstag, 23. Juni 2005 - Version: 3.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Access 2000 Standard Edition
Keywords: 
kbmt kbhowto KB209871 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 209871
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns