ID Artikel: 209871 - Kajian Terakhir: 19 September 2011 - Revisi: 2.0

ACC2000: Cara membuat sandi dilindungi formulir atau laporan

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.
Lanjutan: Memerlukan ahli coding, interoperabilitas, dan keterampilan multiuser.

Artikel ini hanya berlaku untuk Microsoft Access database (.mdb).

Pada Halaman ini

Perbesar semua | Perkecil semua

RINGKASAN

Microsoft Access telah dua fitur built-in keamanan untuk melindungi Anda database:
  • Account pengguna/kelompok dan izin
  • Password database
Artikel ini menunjukkan Anda bagaimana Anda juga dapat mengatur sandi individu untuk masing-masing bentuk dan untuk masing-masing laporan dalam database Anda.

INFORMASI LEBIH LANJUT

Microsoft menyediakan contoh pemrograman hanya sebagai ilustrasi, tanpa jaminan apa pun baik tersurat maupun tersirat. Termasuk, namun tidak terbatas pada, jaminan tersirat mengenai kelayakan untuk diperdagangkan atau kesesuaian untuk keperluan tertentu. Artikel ini mengasumsikan bahwa Anda telah terbiasa dengan bahasa pemrograman yang ditunjukkan dan dengan alat yang digunakan untuk membuat dan mendebug prosedur. Teknisi dukungan Microsoft dapat membantu menjelaskan fungsionalitas prosedur tertentu, namun mereka tidak akan memodifikasi contoh untuk memberikan fungsionalitas tambahan atau menyusun prosedur untuk memenuhi persyaratan khusus Anda.
HATI-HATI: Jika Anda mengikuti langkah-langkah dalam contoh ini, Anda mengubah database contoh Northwind.mdb. Anda dapat membuat cadangan berkas Northwind.mdb dan ikuti petunjuk pada salinan database.

CATATAN: Kode contoh dalam artikel ini menggunakan Microsoft Data akses objek. Untuk kode ini untuk menjalankan dengan benar, Anda harus referensi perpustakaan objek Microsoft DAO 3,6. Untuk melakukannya, klik Referensi pada Alat menu di Editor Visual Basic, dan memastikan bahwa Perpustakaan objek Microsoft DAO 3,6 kotak centang dipilih.

Menggunakan kode untuk Password melindungi bentuk

Dengan menggunakan kode, Anda dapat meminta password ketika pengguna membuka formulir atau laporan. Jika sandi yang benar masuk, formulir atau laporan dibuka.

Contoh berikut menunjukkan Anda bagaimana Anda dapat sandi melindungi perintah bentuk dalam database contoh Northwind.mdb:
  1. Mulai akses dan kemudian membuka database contoh Northwind.mdb.
  2. Tekan ALT + F11 untuk memulai editor Microsoft Visual Basic.
  3. Pada Masukkan menu, klik Modul.
  4. Dalam lembar modul, ketik prosedur berikut:
    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. Tekan ALT + F11 untuk kembali ke akses.
  6. Di jendela Database, di bawah Objek, klik Tabel, lalu klik Baru.
  7. Dalam Tabel baru kotak dialog, klik dua kali Lihat desain.
  8. Membuat sebuah tabel baru sebagai berikut:
       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. Buka tblPassword meja dan kemudian masukkan data berikut:
         ObjectName: Orders
           KeyCode: 2818
    					
  10. Buat bentuk baru dalam design view dan menyimpan bentuk sebagai frmPassword.
  11. Menambahkan textbox satu ke frmPassword yang disebut Text0, dan tombol perintah yang disebut CheckPassword.
  12. Menetapkan Masukan Mask properti Text0 untuk "PASSWORD" (minus tanda kutip).
  13. Tambahkan kode berikut pada OnClick event tombol CheckPassword dan kemudian simpan bentuk:
    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. Membuka formulir pesanan dalam Design view.
  15. Jika lembar properti tidak terlihat, klik Properti pada Lihat menu.
  16. Ketik acara prosedur berikut dalam modul untuk OnOpen properti dari bentuk:
    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. Tutup dan kemudian simpan bentuk perintah.
  18. Membuka formulir pesanan dan kemudian ketik SANDI saat Anda diminta untuk sandi.

    Perhatikan bahwa perintah membentuk membuka. KeyCode yang dihasilkan oleh SANDI cocok KeyCode dalam tabel tblPassword, dan tergantung pada kasus surat-surat dalam password yang masuk.
  19. Menutup dan kemudian buka kembali bentuk perintah dan kemudian ketik Sandi saat Anda diminta untuk sandi.

    Perhatikan bahwa Anda menerima pesan:
    Maaf Anda memasukkan sandi yang salah. Coba lagi.
    Bentuk perintah tidak terbuka karena prosedur sandi case-sensitive.
  20. Untuk menentukan apakah KeyCode sesuai untuk string tertentu, ketik berikut di jendela segera dan kemudian tekan ENTER:
    ?KeyCode("TestString")
    						
    Contoh sebelumnya kembali 5864.
  21. Untuk menyembunyikan tabel tblPassword di jendela Database, klik kanan tblPassword meja, dan kemudian klik Properti. Pada jendela Properties, klik untuk memilih Tersembunyi Periksa kotak, dan kemudian klik Oke.
Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use (http://go.microsoft.com/fwlink/?LinkId=151500) for other considerations.

Berlaku bagi:
  • Microsoft Access 2000 Standard Edition
Kata kunci: 
kbhowto kbmt KB209871 KbMtid
Penerjemahan MesinPenerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:209871  (http://support.microsoft.com/kb/209871/en-us/ )