Results 1 to 15 of 15

Thread: Error #91 Object Variable or with block variable not set

Threaded View

  1. #1

    Thread Starter
    New Member
    Join Date
    Mar 2006
    Posts
    8

    Error #91 Object Variable or with block variable not set

    I'm running an access 2003 project and I'm trying to password protect one of my forms but I keep getting that error when I open the form. Once I click OK the form opens that I want to protect. I followed this to the "T". Here is the script I'm using.

    1. Start Access and then open the sample database Northwind.mdb.
    2. Press ALT+F11 to start the Microsoft Visual Basic editor.
    3. On the Insert menu, click Module.
    4. In the module sheet, type the following procedure:Public MyPassword
    VB Code:
    1. Public Function KeyCode(Password As String) As Long
    2.    ' This function will produce a unique key for the
    3.    ' string that is passed in as the Password.
    4.    Dim I As Integer
    5.    Dim Hold As Long
    6.  
    7.    For I = 1 To Len(Password)
    8.       Select Case (Asc(Left(Password, 1)) * I) Mod 4
    9.       Case Is = 0
    10.          Hold = Hold + (Asc(Mid(Password, I, 1)) * I)
    11.       Case Is = 1
    12.          Hold = Hold - (Asc(Mid(Password, I, 1)) * I)
    13.       Case Is = 2
    14.          Hold = Hold + (Asc(Mid(Password, I, 1)) * _
    15.             (I - Asc(Mid(Password, I, 1))))
    16.       Case Is = 3
    17.          Hold = Hold - (Asc(Mid(Password, I, 1)) * _
    18.             (I + Len(Password)))
    19.    End Select
    20.    Next I
    21.    KeyCode = Hold
    22. End Function

    5. Press ALT+F11 to return to Access.
    6. In the Database window, under Objects, click Tables, and then click New.
    7. In the New Table dialog box, double-click Design View.
    8. Create a new table as follows: 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. Open the tblPassword table and then enter the following data: ObjectName: Orders
    KeyCode: 2818


    10. Create a new form in design view and save the form as frmPassword.
    11. Add a single textbox to frmPassword called Text0, and a command button called CheckPassword.
    12. Set the Input Mask property of Text0 to "PASSWORD" (minus the quotation marks).
    13. Add the following code to the OnClick Event of the CheckPassword button and then save the form:
    VB Code:
    1. If IsNull(Forms!frmPassword!Text0.Value) Then
    2.                  MsgBox "You cannot enter a blank Password. Try again."
    3.                  Me!Text0.SetFocus
    4.             Else
    5.                  MyPassword = Me!Text0.Value
    6.                  DoCmd.Close acForm, "frmPassword"
    7.             End If

    14. Open the Orders form in Design view.
    15. If the property sheet is not visible, click Properties on the View menu.
    16. Type the following event procedure in the module for the OnOpen property of the form:Private Sub Form_Open(Cancel as Integer)
    VB Code:
    1. Dim Hold As Variant
    2.    Dim tmpKey As Long
    3.    Dim I As Integer
    4.    Dim rs As DAO.Recordset
    5.    Dim db As DAO.Database
    6.  
    7.    On Error GoTo Error_Handler
    8.    ' Prompt the user for the Password.
    9.    DoCmd.OpenForm "frmPassword", acNormal, , , , acDialog
    10.             Hold = MyPassword
    11. ' Open the table that contains the password.
    12.    Set db = CurrentDb
    13.    Set rs = db.OpenRecordset("tblPassword", dbOpenTable)
    14.    rs.Index = "PrimaryKey"
    15.    rs.Seek "=", Me.Name
    16.    If rs.NoMatch Then
    17.       MsgBox "Sorry cannot find password information. Try Again"
    18.       Cancel = -1
    19.    Else
    20.       ' Test to see if the key generated matches the key in
    21.       ' the table; if there is not a match, stop the form
    22.       ' from opening.
    23.       If Not (rs![keycode] = KeyCode(Cstr(Hold))) Then
    24.          MsgBox "Sorry you entered the wrong password." & _
    25.             "Try again.", vbOKOnly, "Incorrect Password"
    26.          Cancel = -1
    27.       End If
    28.    End If
    29.    rs.Close
    30.    db.Close
    31.    Exit Sub
    32.  
    33. Error_Handler:
    34.    MsgBox Err.Description, vbOKOnly, "Error #" & Err.Number
    35.    Exit Sub
    End Sub
    Last edited by MartinLiss; Mar 10th, 2006 at 07:10 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width