| VBS: password protection for Forms and Reports. ISSUE! access password protection forms |
sugar2

msg:1580827 | 12:52 am on Sep 10, 2005 (gmt 0) | HI, im trying to set up a password protection before access a Form within a MSAccess Switchboard and I found a vb code that is supposed can do it, I can send those links to anybody by requesting for more information: this is the module: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 The problem is: 1.- I have Access2003 2.- I think code have a little bug... this is the main function wich calls the module: 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
I think the code breaks in this certain line... but Im really novice with vb...
If Not (rs![KeyCode] = KeyCode(CStr(Hold))) any help will be apreciated... Thanks In Advance
|
|