/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

sobre usuario y contraseña

 
      Índice del Foro elrincondelc.com -> Visual Basic
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
d00ze



Registrado: 18 Ene 2011
Mensajes: 16

MensajePublicado: 16/02/2011 3:18 am
Título: sobre usuario y contraseña

Necesito saber que tengo mal en el codigo, ya que cuando meto mal la password no me deja volver a intentarlo, lo he puesto para que tenga 3 intentos, a ver si alguien me puede ayuda.
Código:

Private Sub Command1_Click()

Dim cont As Integer
cont = 0
Do While cont < 3
If user.Text = "user" And pass.Text = "prueba" Then
        Unload Me
        Form2.Show
Else
cont = cont + 1
MsgBox "Contraseña inválida No " & CStr(cont), vbCritical
user.Text = ""
pass.Text = ""
End If
Loop
MsgBox "Adios...", vbInformation
Unload Me
End Sub

Private Sub Command2_Click()
Unload Me
End Sub

Volver arriba
EddyW



Registrado: 20 Abr 2011
Mensajes: 10

MensajePublicado: 21/04/2011 11:12 am
Título:

Wenas,

Se que el mensaje es de hace 2 meses, pero quizá sirva de ayuda para otros:

El "While" se encuentra dentro del CommandButton, por lo tanto al hacer clic una sola vez, intentará comprobar la misma contraseña las 3 veces.
Una solución simple, es declarar una variable "Static" (Estática) que se declara una sola vez, o que no se inicializa nuevamente para cada llamada.
El código corregido funciona así:
Código:
Private Sub Command1_Click()
Static cont As Integer
If cont < 3 Then
    If user.Text = "user" And pass.Text = "prueba" Then
        Unload Me
        Form2.Show
    Else
        cont = cont + 1
        MsgBox "Contraseña inválida No " & CStr(cont), vbCritical
        user.Text = ""
        pass.Text = ""
    End If
Else
    MsgBox "Adios...", vbInformation
    Unload Me
End If
End Sub

Private Sub Command2_Click()
Unload Me
End Sub


SaluDOS!!![/code]
Volver arriba
brainet



Registrado: 07 Jul 2005
Mensajes: 84
Ubicación: La Serena Chile

MensajePublicado: 23/05/2011 1:20 pm
Título: La respuesta definitiva

La mejor solucion para que tu codigo funcione es



Código:

' Inicio del archivo
' Declaracion de la Variable Cont
Dim cont As Integer  ' Contendra los intentos realizados


Private Sub Command1_Click()
If user.Text = "user" And pass.Text = "prueba" Then
        Unload Me
        Form2.Show
       cont = 0 ' En el caso de cerrar sesion y abrir con otro usuario
Else
     cont = cont + 1
     MsgBox "Contraseña inválida No " & CStr(cont), vbCritical
     MsgBox "le quedan " & CStr(3-cont) & " Intentos", vbCritical
     user.Text = ""
     pass.Text = ""
     user.setfocus
End If

MsgBox "Adios...", vbInformation
Unload Me
End Sub

Private Sub Command2_Click()
Unload Me
End Sub


Espero te sirva
_________________
Venta de propiedades
Volver arriba
      Índice del Foro elrincondelc.com -> Visual Basic
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com