Option Compare Database Option Explicit Private Sub cmdOK_Click() On Error GoTo Err_cmdOK_Click Dim Rst As Recordset, Sql As String Sql = "SELECT * FROM USUARIOS WHERE [USUARIO]=" & "'" & Me.TxtUsuario & "'" _ & " AND [PASSWORD]=" & "'" & Me.txtPassword & "'" _ & "WITH OWNERACCESS OPTION;" 'OJO a la ultima linea, ver comentario enviado por Atractor al final de este escrito (**) Set Rst = CurrentDb.OpenRecordset(Sql, dbOpenDynaset) If Rst.EOF = False Then Dim itemmenu As CommandBarControl Set itemmenu = CommandBars("MnuProlab").Controls("Analíticas") If Rst("Analíticas") = False Then itemmenu.Enabled = False Else itemmenu.Enabled = True End If Else 'si no es correcto usuario y contraseña cierra la base de datos Msgbox "Usuario y/o contraseña no son validos.", vbCritical, "Error de autentificacion " Rst.Close Set Rst = Nothing DoCmd.Quit End If 'si llegamos aqui, el usuario existe Rst.Close Set Rst = Nothing DoCmd.OpenForm "FONDO" 'se entiende que este formulario se llama copia_usuarios 'y es el de inicio de tu aplicación DoCmd.Close acForm, "copia_usuarios" Exit_cmdOK_Click: Exit Sub Err_cmdOK_Click: Msgbox Err.Description Resume Exit_cmdOK_Click End Sub (**)Comentario de Antonio Fernandez (ATRACTOR) ============================================== Creo que deberías revisar el ejemplo: La clausula WithOwnerAccessOptinon no es válidad en código Jet SQL. Sólo es válida para consultas permanentes con un propietario. Por lo tanto la seguridad que pudiera tener el sistema se va al "carajo", ya que la tabla usuarios debe de ser accesible para que se pueda ejecutar esa instrucción Jet SQL.