ACC2000: Jak vytvořit heslo Protected formulář nebo sestavu

Překlady článku Překlady článku
ID článku: 209871 - Produkty, které se vztahují k tomuto článku.
Upřesnit: Vyžaduje odborných kódování interoperability a víceuživatelské dovedností.

Tento článek se týká pouze databáze aplikace Microsoft Access (MDB).

Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Aplikace Microsoft Access obsahuje dva integrované funkce zabezpečení pro ochranu databáze:
  • Uživatel či skupina účtů a oprávnění
  • Hesla databáze
Tento článek popisuje, jak lze nastavit také individuální hesla pro každý formulář a každá sestava v databázi.

Další informace

Společnost Microsoft poskytuje ukázky programování pouze pro ilustraci bez žádné záruky výslovně uvedené nebo mlčky. To zahrnuje, ale není omezen pouze na předpokládaných záruk vztahujících se k obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že jste je obeznámen s programovacím jazykem, který je předmětem ukázky a s nástroji, které slouží k vytvoření a ladění skriptu. Pracovníci technické podpory společnosti Microsoft mohou vysvětlit funkce určitého postupu však nemohou tyto příklady přidány funkce nebo vytvářet postupy podle svých specifických požadavků.
Upozornění: Pokud budete postupovat podle kroků uvedených v tomto příkladu, změníte ukázkovou databázi Northwind.mdb. Můžete zazálohovat soubor Northwind.mdb a v kopii databáze, postupujte následujícím způsobem.

Poznámka: Tento ukázkový kód v tomto článku používá Microsoft Data Access Objects. Ke správnému spuštění tohoto kódu je nutné na KNIHOVNU Microsoft DAO 3.6 Object Library odkazovat. Chcete-li tak učinit, klepněte v nabídce Nástroje v editoru jazyka Visual Basic odkazy a musí být zaškrtnuto políčko Microsoft DAO 3.6 Object Library.

Pomocí kódu na heslo zamknout formulář

Pomocí kódu je možné výzvu k heslo když uživatel otevře formulář nebo sestavu. Pokud je zadáno správné heslo, formulář nebo sestavu otevře.

Následující příklad ukazuje, jak můžete heslo zamknout formulář objednávky v ukázkové databázi Northwind.mdb:
  1. Spusťte aplikaci Access a otevřete ukázkovou databázi Northwind.mdb.
  2. Stisknutím kombinace kláves ALT + F11 spusťte editor jazyka Visual Basic.
  3. V nabídce Vložit klepněte na příkaz Module.
  4. V listu modulu zadejte následující postup:
    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. Stisknutím kombinace kláves ALT + F11 se vraťte do aplikace Access.
  6. V okně databáze v oblasti objekty klepněte tabulky a poté klepněte na tlačítko Nový.
  7. V dialogovém okně Nová tabulka poklepejte na Návrhové zobrazení.
  8. Vytvoření nové tabulky takto:
       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. Otevřete tabulku, tblPassword a potom zadejte následující data:
         ObjectName: Orders
           KeyCode: 2818
    					
  10. Vytvořte nový formulář v návrhovém zobrazení a uložte formulář jako frmPassword.
  11. Přidat jedno textové pole nazvané Text0 frmPassword a příkazové tlačítko nazvané CheckPassword.
  12. Nastavte vlastnost Vstupní maska Text0 k "Heslo" (minus uvozovek).
  13. Přidejte následující kód v události při klepnutí tlačítka CheckPassword a potom formulář uložte:
    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. Otevřete formulář objednávky v návrhovém zobrazení.
  15. Pokud seznam vlastností není zobrazen, klepněte na příkaz Vlastnosti v nabídce Zobrazit.
  16. Zadejte následující proceduru události v modulu pro vlastnost Při otevření formuláře:
    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. Zavřete a potom uložte formulář objednávky.
  18. Otevřete formulář objednávky a po zobrazení výzvy k zadání hesla, zadejte heslo.

    Všimněte si, že objednávky formulář otevře. KeyCode generovaných PASSWORD odpovídá KeyCode v tabulce tblPassword a je závislá na malá a velká písmena v hesle zadat.
  19. Zavřete a znovu otevřete formulář objednávky a po zobrazení výzvy k zadání hesla, zadejte heslo.

    Všimněte si, zobrazí se zpráva:
    Bohužel že jste zadali nesprávné heslo. Opakujte akci.
    Formulář objednávky nebude možné otevřít, protože heslo postup se rozlišují velká a malá písmena.
  20. Chcete-li zjistit odpovídající KeyCode je pro určitý řetězec, zadejte do okna Immediate následující a stiskněte klávesu ENTER:
    ?KeyCode("TestString")
    						
    předchozí příklad vrátí 5864.
  21. Chcete-li tblPassword tabulku v okně Databáze skrýt, klepněte pravým tlačítkem myši na tabulku tblPassword a potom klepněte na příkaz Vlastnosti. V okně Vlastnosti klepnutím zaškrtněte políčko skrytý a potom klepněte na tlačítko OK.

Vlastnosti

ID článku: 209871 - Poslední aktualizace: 23. června 2005 - Revize: 3.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Access 2000 Standard Edition
Klíčová slova: 
kbmt kbhowto KB209871 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:209871

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com