Makale numarası: 209871 - Son Gözden Geçirme: 23 Haziran 2005 Perşembe - Gözden geçirme: 3.0

ACC2000: form veya rapor bir parola oluşturmak nasıl korumalı

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.
Gelişmiş: Uzman kodlama, birlikte çalışabilirlik ve çok kullanıcılı becerileri gerektirir.

Bu makale yalnızca Microsoft Access veritabanı (.mdb) için geçerlidir.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Microsoft Access, veritabanını korumak için iki yerleşik güvenlik özellikleri vardır:
  • Kullanıcı/grup hesapları ve izinleri
  • Veritabanı parolaları
Bu makalede nasıl veritabanınızdaki her form için ve her rapor için ayrı parolalar da ayarlayabilirsiniz gösterir.

Daha fazla bilgi

Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; örtülü veya açık garanti vermez. Buna satılabilirlik veya belirli bir amaca uygunluk zımni garantileri de dahildir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir, ancak gereksinimlerinizi karşılamaya yönelik olarak ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler.
DIKKAT: Bu örnekteki adımları, Northwind.mdb adlı örnek veritabanını değiştirme. Northwind.mdb dosyasını yedekleyin ve bu adımları veritabanının bir kopyasında isteyebilirsiniz.

Not: Bu makaledeki örnek kod Microsoft Data Access Objects kullanır. Bu kodun düzgün çalışması için Microsoft DAO 3.6 Nesne Kitaplığı'na başvurmalısınız. Bunu yapmak için <a0></a0>, Visual Basic Düzenleyicisi'nde Araçlar menüsünden Başvurular ' ı tıklatın ve sonra Microsoft DAO 3.6 Nesne Kitaplığı</a0> onay kutusunun seçili olduğundan emin olun.

Kodu için bir parola kullanarak, bir formu Koru

Kod kullanarak, kullanıcı bir formu veya raporu açtığında bir parola isteyebilir. Doğru parolayı girerseniz form veya rapor açıldığında.

Aşağıdaki örnek <a0></a0>, parola yapabilecekleriniz nasıl gösterir Northwind.mdb adlı örnek veritabanındaki Orders formu koruma:
  1. Access'i başlatın ve sonra da Northwind.mdb örnek veritabanını açın.
  2. Microsoft Visual Basic Düzenleyicisi'ni başlatmak için ALT + F11 tuşlarına basın.
  3. Ekle menüsünden modülü ' nü tıklatın.
  4. Modül sayfasına aşağıdaki yordamı yazın:
    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. Access'e dönmek için ALT + F11 tuşlarına basın.
  6. (Nesneler) ' in altında <a1>Veritabanı</a1> penceresinde Tablolar ' ı tıklatın ve sonra da Yeni'yi tıklatın.
  7. Yeni Tablo iletişim kutusunda, Tasarım görünümü) çift tıklatın.
  8. Yeni bir tablo aşağıdaki gibi oluşturursunuz:
       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 tabloyu açın ve sonra da aşağıdaki verileri girin:
         ObjectName: Orders
           KeyCode: 2818
    					
  10. Tasarım görünümünde yeni bir form oluşturmak ve formu frmPassword kaydedin.
  11. Tek bir metin kutusu Text0 adlı frmPassword ve CheckPassword adlı bir komut düğmesi ekleyin.
  12. (Tırnak işaretleri) eksi Text0 "PASSWORD" için Giriş maskesi özelliğini ayarlayın.
  13. CheckPassword düğmenin OnClick olay için aşağıdaki kodu ekleyin ve sonra formu kaydedin:
    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. Siparişler formu Tasarım görünümünde açın.
  15. Özellik sayfası görünür değilse, Görünüm menüsünden Özellikler ' i tıklatın.
  16. Aşağıdaki olay yordamını OnOpen özelliğini formun modülünün yazın:
    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. Kapatın ve sonra da siparişler formu kaydedin.
  18. Orders formunu açın ve bir parola istendiğinde PASSWORD yazın.

    Siparişler, açılır form dikkat edin. PASSWORD tarafından oluşturulan KeyCode KeyCode tblPassword tablodaki eşleşen ve büyük/küçük harf girilen parolayı bağlıdır.
  19. Kapatın ve yeniden Orders formunu açın ve parola girmeniz istendiğinde, parolayı yazın.

    Aldığınız ileti dikkat edin:
    Üzgünüm, yanlış parola girdiniz. Yeniden deneyin.
    Parola yordamı büyük/küçük harfe duyarlı olduğundan, Siparişler formundaki açılmaz.
  20. Belirli bir dize için karşılık gelen KeyCode ne olduğunu belirlemek için <a0></a0>, aşağıdaki komut penceresi içinde yazın ve ENTER tuşuna basın:
    ?KeyCode("TestString")
    						
    5864 önceki örnek verir.
  21. Veritabanı penceresinde tblPassword tablosunu gizlemek için <a0></a0>, tblPassword tabloyu sağ tıklatın ve sonra da Özellikler ' i tıklatın. Properties penceresinde <a0>Gizli</a0> onay kutusunu seçin ve Tamam ' ı tıklatın.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Access 2000 Standard Edition
Anahtar Kelimeler: 
kbmt kbhowto KB209871 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:209871  (http://support.microsoft.com/kb/209871/en-us/ )