Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

como poner limite intentos login

Estas en el tema de como poner limite intentos login en el foro de Visual Basic clásico en Foros del Web. tengo un formulario de login y quisiera saber que tengo que agregarle para que despues de tres intentos no deje entrar cerrando la aplicacion de ...
  #1 (permalink)  
Antiguo 01/11/2009, 18:16
 
Fecha de Ingreso: octubre-2009
Mensajes: 25
Antigüedad: 14 años, 6 meses
Puntos: 0
como poner limite intentos login

tengo un formulario de login y quisiera saber que tengo que agregarle para
que despues de tres intentos no deje entrar cerrando la aplicacion
de antemano gracias
  #2 (permalink)  
Antiguo 02/11/2009, 07:31
 
Fecha de Ingreso: octubre-2009
Mensajes: 19
Antigüedad: 14 años, 6 meses
Puntos: 1
Sonrisa Respuesta: como poner limite intentos login

Un contador..

cuando hace click en el boton, define una variable y sumale 1 y cuando llegue a tres dile que cierre la amplicacion.

ejemplo:
'En declaciones Generañes define la variable
dim intento as intger

'en el evento click del botom
intento=intento +1
if intento >=3 then end
  #3 (permalink)  
Antiguo 02/11/2009, 09:23
 
Fecha de Ingreso: octubre-2009
Mensajes: 25
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: como poner limite intentos login

gracias por tu ayuda, he puesto lo que me dijiste pero al fallar al ultimo intento me da un error que no se que es aqui te muestro como ha quedado el codigo

Código:
Option Compare Database
Dim Conn As ADODB.Connection
Dim rsCliente As ADODB.Recordset
Dim intento As Integer



Private Sub aceptar_click()
'MsgBox ("nombre" & nombre.Value)
Dim txtbusca, SQL, txtpass

txtbusca = login.Value
txtpass = pass.Value
SQL = "select NombrUsr from Usuario where LoginUsr='" & txtbusca & "' AND ClaveUsr='" & txtpass & "'"
   
Set rsCliente = Conn.Execute(SQL)


If (Not rsCliente.EOF) Then
  MsgBox ("Login y password correctos. Bienvenido " & rsCliente.Fields.Item(0).Value)
  DoCmd.Close acForm, "Ingreso", acSaveNo
        DoCmd.OpenForm "Panel de control"
Else
  MsgBox ("El login y/o password son incorrectos")
End If
    intento = intento + 1
  If intento >= 3 Then End
End If

End Sub

Private Sub cancelar_Click()
Form_Unload (1)
End Sub

Private Sub Comando5_Click()

End Sub

Private Sub Detalle_Click()

End Sub

Private Sub Form_Load()
    'MsgBox ("ANTES declarar nada")
    Set Conn = New ADODB.Connection
    Set rsCliente = New ADODB.Recordset
    
    'MsgBox ("ANTES CONECTAR PROVIDER")
    Conn.Provider = "Microsoft.Jet.OLEDB.4.0"
    'MsgBox ("ANTES CREAR DATASOURCE")
    Conn.ConnectionString = CurrentDb.Name
    'MsgBox (CurrentDb.Name)
    'MsgBox Conn.State
    Conn.Open
    'Conn.Open
    
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Form.Visible = False
    Conn.Close
    
    'MsgBox "Hasta la próxima"
End Sub

Última edición por maur1c10; 02/11/2009 a las 10:33 Razón: corregir
  #4 (permalink)  
Antiguo 02/11/2009, 11:51
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: como poner limite intentos login

Hola!!
Declara la variable "Intento" como publica

coloca el codigo
intento = intento + 1
If intento >= 3 Then End

dentro del else
Else
MsgBox ("El login y/o password son incorrectos")
End If

te debe quedar asi:

Else
MsgBox ("El login y/o password son incorrectos")
intento = intento + 1
If intento >= 3 Then End
End If
  #5 (permalink)  
Antiguo 02/11/2009, 12:00
 
Fecha de Ingreso: octubre-2009
Mensajes: 25
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: como poner limite intentos login

gracias, como declaro la variable como publica
lo hice de la sig. manera
Public intento As Integer

pero me da el sig. error
se ha producido el error 91 en tiempo de ejecucion variable objeto o bloque With no establecido y me señala una linea del codigo

Código:
Option Compare Database
Dim Conn As ADODB.Connection
Public intento As Integer
Dim rsCliente As ADODB.Recordset

Private Sub aceptar_click()
'MsgBox ("nombre" & nombre.Value)
Dim txtbusca, SQL, txtpass


txtbusca = login.Value
txtpass = pass.Value
SQL = "select NombrUsr from Usuario where LoginUsr='" & txtbusca & "' AND ClaveUsr='" & txtpass & "'"
   
Set rsCliente = Conn.Execute(SQL)


If (Not rsCliente.EOF) Then
  MsgBox ("Login y password correctos. Bienvenido " & rsCliente.Fields.Item(0).Value)
  DoCmd.Close acForm, "Ingreso", acSaveNo
        DoCmd.OpenForm "Panel de control"
Else
MsgBox ("El login y/o password son incorrectos")
intento = intento + 1
If intento >= 3 Then End
End If

End Sub

Private Sub cancelar_Click()
Form_Unload (1)
End Sub

Private Sub Comando5_Click()

End Sub

Private Sub Detalle_Click()

End Sub

Private Sub Form_Load()
    'MsgBox ("ANTES declarar nada")
    Set Conn = New ADODB.Connection
    Set rsCliente = New ADODB.Recordset
    
    'MsgBox ("ANTES CONECTAR PROVIDER")
    Conn.Provider = "Microsoft.Jet.OLEDB.4.0"
    'MsgBox ("ANTES CREAR DATASOURCE")
    Conn.ConnectionString = CurrentDb.Name
    'MsgBox (CurrentDb.Name)
    'MsgBox Conn.State
    Conn.Open
    'Conn.Open
    
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Form.Visible = False
    Conn.Close
    
    'MsgBox "Hasta la próxima"
End Sub

Última edición por maur1c10; 02/11/2009 a las 12:37 Razón: agregar info
  #6 (permalink)  
Antiguo 03/11/2009, 11:35
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: como poner limite intentos login

Hola!!
Intenta con este codigo:

Private Sub aceptar_click()
...
...
...
'EL SELECT LO ADAPTE A LA BD DE NORTHWIND, CAMBIALO A TU BD
SQL = "select * from Employees where EmployeeID=0"
rsCliente.Source = SQL

rsCliente.Open , Conn, adOpenDynamic, adLockBatchOptimistic


If (Not rsCliente.EOF) Then
MsgBox ("Login y password correctos. Bienvenido " & rsCliente.Fields.Item(0).Value)
...
...
...
Else
MsgBox ("El login y/o password son incorrectos")
intento = intento + 1
If intento >= 3 Then End
rsCliente.Close
End If

El codigo me funciona bien, nos cuentas!!
  #7 (permalink)  
Antiguo 03/11/2009, 12:26
 
Fecha de Ingreso: octubre-2009
Mensajes: 25
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: como poner limite intentos login

lo he puesto de la sig. manera al ingresar contraseña correcta me dice que es incorrecta y despues de los tres intentos me da error (la parte roja)
aclaro mi tabla se llama usuario, el campo de contraseña se llama ClaveUsr y el campo de usuario
se llama LoginUsr

Código:
Option Compare Database
Dim Conn As ADODB.Connection
Dim rsCliente As ADODB.Recordset



Private Sub aceptar_click()
'MsgBox ("nombre" & nombre.Value)
Dim txtbusca, SQL, txtpass

txtbusca = login.Value
txtpass = pass.Value
SQL = "select ClaveUsr from Usuario where NivelUsr=0"
rsCliente.Source = SQL

rsCliente.Open , Conn, adOpenDynamic, adLockBatchOptimistic

If (Not rsCliente.EOF) Then
 MsgBox ("Login y password correctos. Bienvenido " & rsCliente.Fields.Item(0).Value)
  DoCmd.Close acForm, "Ingreso", acSaveNo
        DoCmd.OpenForm "Panel de control"
Else
MsgBox ("El login y/o password son incorrectos")
intento = intento + 1
If intento >= 3 Then End
rsCliente.Close
End If


End Sub
Private Sub cancelar_Click()
Form_Unload (1)
End Sub

Private Sub Comando5_Click()

End Sub

Private Sub Detalle_Click()

End Sub

Private Sub Form_Load()
    'MsgBox ("ANTES declarar nada")
    Set Conn = New ADODB.Connection
    Set rsCliente = New ADODB.Recordset
    
    'MsgBox ("ANTES CONECTAR PROVIDER")
    Conn.Provider = "Microsoft.Jet.OLEDB.4.0"
    'MsgBox ("ANTES CREAR DATASOURCE")
    Conn.ConnectionString = CurrentDb.Name
    'MsgBox (CurrentDb.Name)
    'MsgBox Conn.State
    Conn.Open
    'Conn.Open
    
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Form.Visible = False
    Conn.Close
    
    'MsgBox "Hasta la próxima"
End Sub

Última edición por maur1c10; 03/11/2009 a las 12:41
  #8 (permalink)  
Antiguo 04/11/2009, 08:50
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: como poner limite intentos login

No debería pasar al 4to intento... El error te dice que "no se puede asignar el valor porque el objeto está abierto"?, si es asi, ponle lo que está en rojo, pero aclaro, no deberia pasar al 4to intento, corre tu programa paso a paso para ver por que está saltando el 3er intento.

PD: recuerda ajustar el query

txtpass = pass.Value
SQL = "select ClaveUsr from Usuario where NivelUsr=0"

if rsCliente.state=1 then rsCliente.close

rsCliente.Source = SQL

rsCliente.Open , Conn, adOpenDynamic, adLockBatchOptimistic
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:02.