ACC2000: วิธีการที่สร้างรหัสผ่านป้องกันฟอร์มหรือรายงาน

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 209871 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขั้นสูง: ต้องเขียนโค้ดผู้เชี่ยวชาญ ทำงานร่วมกัน และทักษะ multiuser

บทความนี้สามารถใช้ได้เฉพาะกับฐานข้อมูล Microsoft Access (.mdb)

ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

Microsoft Access มีคุณลักษณะการรักษาความปลอดภัยที่มีอยู่สองสำหรับการป้องกันฐานข้อมูลของคุณ:
  • บัญชีผู้ใช้/กลุ่มและสิทธิ์
  • รหัสผ่านฐานข้อมูล
บทความนี้แสดงว่าคุณยังสามารถกำหนดแต่ละรหัสผ่าน สำหรับแต่ละฟอร์ม และรายงานแต่ละในฐานข้อมูลของคุณ

ข้อมูลเพิ่มเติม

Microsoft แสดงตัวอย่างการเขียนโปรแกรมเพื่อประกอบการอธิบายเท่านั้น และไม่มีการรับประกัน ไม่ว่าโดยชัดแจ้งหรือโดยนัย ทั้งนี้รวมถึง แต่ไม่จำกัดเพียงการรับประกันโดยนัยในเรื่องการซื้อขายหรือความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ บทความนี้อนุมานว่าคุณมีความคุ้นเคยกับภาษาการเขียนโปรแกรมที่แสดงอยู่ รวมทั้งเครื่องมือต่างๆ ที่ใช้ในการสร้างและแก้จุดบกพร่องกระบวนการ วิศวกรฝ่ายสนับสนุนของ Microsoft สามารถช่วยอธิบายเกี่ยวกับหน้าที่การใช้งานของกระบวนการเฉพาะได้ แต่จะไม่ปรับเปลี่ยนตัวอย่างเหล่านี้เพื่อให้มีหน้าที่การใช้งานที่เพิ่มขึ้น หรือสร้างกระบวนการใดๆ เพื่อตอบสนองความต้องการอย่างใดอย่างหนึ่งของคุณโดยเฉพาะ
ข้อควรระวัง: ถ้าคุณทำตามขั้นตอนในตัวอย่างนี้ คุณปรับเปลี่ยนฐานข้อมูลตัวอย่าง Northwind.mdb คุณอาจต้องการสำรองข้อมูลแฟ้ม Northwind.mdb และทำตามขั้นตอนเหล่านี้บนสำเนาของฐานข้อมูล

หมายเหตุ:: ตัวอย่างรหัสในบทความนี้ใช้วัตถุการเข้าถึงข้อมูลของ Microsoft เพื่อให้โค้ดนี้ทำงานอย่างเหมาะสม คุณต้องอ้างอิงไลบรารีวัตถุ Microsoft DAO 3.6 เมื่อต้องการทำเช่นนั้น คลิกอ้างอิง:ในการเครื่องมือเมนูในใน Visual Basic Editor และตรวจสอบให้แน่ใจว่าการการไลบรารีวัตถุ Microsoft DAO 3.6มีเลือกกล่องกาเครื่องหมาย

การใช้รหัสเมื่อต้องการรหัสผ่านป้องกันฟอร์มเป็น

โดยใช้รหัส คุณสามารถพร้อมท์สำหรับรหัสผ่านเมื่อผู้ใช้เปิดฟอร์มหรือรายงาน ถ้ามีป้อนรหัสผ่านที่ถูกต้อง แบบฟอร์มหรือรายงานถูกเปิด

ตัวอย่างต่อไปนี้แสดงวิธีการที่คุณสามารถรหัสผ่านป้องกันแบบฟอร์มใบสั่งในฐานข้อมูลตัวอย่าง Northwind.mdb:
  1. เริ่มการทำงานการเข้าถึงแล้ว เปิดฐานข้อมูลตัวอย่าง Northwind.mdb
  2. กด ALT + F11 เพื่อเริ่มตัวแก้ไข Microsoft Visual Basic
  3. ในการแทรกเมนู คลิกโมดูล.
  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 เพื่อกลับไปยังการเข้าถึง
  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. เพิ่มกล่องข้อความที่เดียวเพื่อ frmPassword ที่เรียกว่า Text0 และปุ่มคำสั่งที่เรียกว่า CheckPassword
  12. ตั้งค่านี้รูปแบบการป้อนข้อมูลคุณสมบัติของ 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. เปิดแบบฟอร์มใบสั่งในมุมมองออกแบบ
  15. ถ้ามองไม่เห็นแผ่นคุณสมบัติ คลิกคุณสมบัติในการมุมมองเมนู
  16. พิมพ์กระบวนงานเหตุการณ์ต่อไปนี้ในโมดูลสำหรับการonopenคุณสมบัติของฟอร์ม:
    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. ปิด และจากนั้น ให้บันทึกแบบฟอร์มใบสั่ง
  18. เปิดแบบฟอร์มใบสั่ง และพิมพ์รหัสผ่าน:เมื่อคุณได้รับการพร้อมท์สำหรับรหัสผ่าน

    ขอให้สังเกตว่า ใบสั่งในแบบฟอร์มเปิดขึ้น KeyCode ที่สร้างขึ้นด้วยรหัสผ่าน:ตรงกับ KeyCode ในตาราง tblPassword และขึ้นอยู่กับตัวพิมพ์ของตัวอักษรในรหัสผ่านที่ใส่
  19. ปิดแล้ว เปิดแบบฟอร์มใบสั่ง และพิมพ์รหัสผ่าน:เมื่อคุณได้รับการพร้อมท์สำหรับรหัสผ่าน

    ขอให้สังเกตว่า คุณได้รับข้อความ:
    sorry คุณใส่รหัสผ่านไม่ถูกต้อง ลองอีกครั้ง
    แบบฟอร์มใบสั่งไม่ถูกเปิดได้เนื่องจากกระบวนการรหัสผ่านคือ case-sensitive
  20. เพื่อตรวจสอบ KeyCode ที่สอดคล้องกันเป็นสำหรับสตริงที่เฉพาะ พิมพ์ต่อไปนี้ในหน้าต่าง Immediate แล้วกด enter:
    ?KeyCode("TestString")
    						
    ตัวอย่างก่อนหน้านี้ส่งกลับ 5864
  21. เมื่อต้องการซ่อนตาราง tblPassword ในหน้าต่างฐานข้อมูล คลิกขวาตาราง tblPassword และจากนั้น คลิกคุณสมบัติ. ในหน้าต่างคุณสมบัติ คลิกเพื่อเลือกนั้นซ่อนกล่องกาเครื่องหมาย และจากนั้น คลิกตกลง.

คุณสมบัติ

หมายเลขบทความ (Article ID): 209871 - รีวิวครั้งสุดท้าย: 17 กันยายน 2554 - Revision: 4.0
ใช้กับ
  • Microsoft Access 2000 Standard Edition
Keywords: 
kbhowto kbmt KB209871 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:209871

ให้ข้อเสนอแนะ

 

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