Access - ERROR EN CÓDIGO

   
Vista:

ERROR EN CÓDIGO

Publicado por Alberto (5 intervenciones) el 14/05/2009 22:49:18
Que tal a todos nuevamnete,

Les agradezco su ayuda a Jefferson, Enrique y 2P; he intentado de una y otra forma, pero, el código no responde,


Private Sub Comando0_Click()
Dim rst As DAO.Recordset, Contador As Integer
If IsNull(Usuario) Or Usuario = "" Then Usuario.SetFocus: Exit Sub
If IsNull(Id) Or Id = "" Then Id.SetFocus: Exit Sub
Set rst = CurrentDb.OpenRecordset("SELECT Nombre usuario, Id From Usuarios Consulta Where Id Like '" & Id & "'")
If rst.EOF Then
MsgBox " El usuario no existe. ", vbInformation, " Error"
Usuario = ""
Usuario.SetFocus: Exit Sub
End If

'Aquí controlamos que se corresponda el Usuario con su Contraseña:

If rst!Id = Id And rst!Nombre_usuario = Usuario Then
rst.Close: Set rst = Nothing
DoCmd.OpenForm "Control de Clientes"
Else
MsgBox " El Id de usuario es incorrecto. ", vbInformation, " Error"
Contador = Contador + 1
If Contador = 3 Then
MsgBox "Ha intentado accesar al programa varias veces, se cancela operación.", vbCritical, "Intentos fallidos."
DoCmd.Close
Else
Usuario = ""
Usuario.SetFocus: Exit Sub
End If
End If


End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ERROR EN CÓDIGO

Publicado por Enrique (1299 intervenciones) el 14/05/2009 23:23:32
Tienes que comprobar varias cosas:
1º Nombre usuario no puede tener un espacio en blanco entre las dos palabras, creo que incluso con el signo de subrayado puede fallar.

2º Si Id es Numérico no debe ir entre comillas simples. En ese caso la línea del OpenRecordset sería así:

Set rst = CurrentDb.OpenRecordset("SELECT NombreUsuario, Id From UsuariosConsulta Where Id Like " & Id)

Observa que no pongo espacios ni en NombreUsuario ni en UsuariosConsulta. La manía que teneis algunos de usar espacios y otros signos en los nombres de los objetos y campos, no suele traer más que problemas.

Prueba con estos cambios a ver si ahora funciona.

Un saludo
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ERROR EN CÓDIGO

Publicado por Jefferson (381 intervenciones) el 15/05/2009 08:28:00
Amigo Disculpa pero tu intentas crear una Recordset sobre un campo numerico...
Si solo quieres permitir que el Usuario ingrese con su Nombre y con su Id utiliza este codigo que hace lo mismo y es mas sencillo de aplicar

Option Compare Database
Dim intentos As Byte

Private Sub Comando0_Click()
Dim Buscar As String
If IsNull(txtId) Then txtId.SetFocus: MsgBox "Campo Vacio": Exit Sub
If IsNull(txtUsuario) Then txtUsuario.SetFocus: MsgBox "Campo Vacio": Exit Sub
If DCount("Id", "Usuarios", "Id=txtId") = 0 _
Then: MsgBox "Id No Existe": txtId.SetFocus: Exit Sub
Buscar = DLookup("[Nombre Usuario] & Id", _
"Usuarios", "[Nombre Usuario]= '" & Me.txtUsuario & "'")
If Buscar = Me.txtUsuario & Me.txtId Then
DoCmd.OpenForm "Formulario1"
Else
MsgBox "Id no Coincide con Usuario"
txtId.SetFocus
If intentos >= 3 Then
MsgBox "Has sobrepasado el numero de intentos,...... Adios!!"
DoCmd.Quit
Exit Sub
Else
MsgBox "Intente de Nuevo" & vbCrLf & _
intentos + 1 & " Intento de 3"
If intentos = 2 Then
MsgBox "De Errar en el proximo intento, abortamos el Soft"
End If
intentos = intentos + 1
Exit Sub

End If
End If
End Sub

Un Saludo
Desde Venezuela
Jefferson
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar