Ronald,  primero que nada lo felicito por tan excelente tutorial, ahora la pregunta...
estoy elaborando un pequeño proyecto de prueba ( y para mi aprendizaje) siguiendo su totorial, en el VT11, se me presenta un problema al ejecutar el cmdOk. 
Se supone que el procedimiento Usuario es cargado en el form load al ejecutar el programa y dentro de este se valida que la tabla o este abierta para poder ingresar.
Al momento que ejecuto el programa y una vez que este valida los campos User y Pass entra en el Recordset y actualiza la tabla. alli se detiene y muestra el error 3704 te dejo mi codigo tanto en los modulos con en el form. Espero puedas ayudarme a entender lo que sucede.
**** ModuleDeclare***
Public Conex As New ADODB.Connection
Public Rs As New ADODB.Recordset
***ModuleSentencias***
Public Sub main() 'creando rutina de conexion
    
    With Conex 'variable de conexion a la base de datos
        .CursorLocation = adUseClient
        .Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Mlab.mdb;Persist Security Info=False"
        LoginForm.Show
     End With
End Sub
Public Sub Usuario1() 'verifica el estado de la tabla y si esta abierta la cierra
With Rs
  If Rs.State = 1 Then
     Rs.Close
     Rs.Open " select * from usuario", Conex, adOpenStatic, adLockOptimistic
  End If
End With
End Sub
******Form*****
Private Sub cmdcerrar_Click()
Unload Me
End Sub
Private Sub CmdOk_Click()
'validamos que las cajas de texto no esten vacias
  If txtuser = "" Then
     MsgBox " Ingrese Nombre de Usuario", vbInformation, "AViso": txtuser.SetFocus: Exit Sub
     
  Else
     If txtpass = "" Then
        MsgBox " Ingrese Clave de Usuario", vbInformation, "AViso": txtpass.SetFocus: Exit Sub
     End If
  End If
  'vamos a la conexion con la base de datos
  With Rs
      .Requery  'actualiza la tabla
      .Find "id='" & Trim(txtuser.Text) & "'"   ' realiza la busqueda comparando ID con txtuser
       If .EOF Then 'si llego al final del registro y no se encuentro nada en la tabla
         MsgBox " Usuario no Registrado", vbInformation, "Aviso"  'envio mensaje de error
         txtuser.Text = ""
         Exit Sub ' y dejo de ejecutar este  sub
       Else  ' si no
          If !clave = Trim(txtpass.Text) Then    ' si la clave es igual al txtpass
             NewUserForm.Show   ' llamo al siguiente formulario
             Unload Me
          Else
           MsgBox "Clave Incorrecta", vbInformation, "Aviso"    'sino lo es envio este  mensaje
           txtpass.Text = ""
           Exit Sub
          End If
       End If
  End With
  End Sub
  
Private Sub Form_Load()
 Usuario1  'llama al procedimiento usuario creado en el modulo sentencia
End Sub
Gracias de antemano y espero poder contar con su apoyo en lo sucesivo
[email protected]