Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: JValero en 10 de Septiembre 2014, 18:30

Título: Ejercicio 8 - Semana 10 "Fundamentos de programación I"
Publicado por: JValero en 10 de Septiembre 2014, 18:30
Buenas tardes,

Tengo un problema con el código del siguiente ejercicio.

En el programa debería de insertar la contraseña y reconocerla como válida o no. al tercer fallo el programa debería indicarme que he fallado tres veces y cerrarse.

El programa funciona cuando inserto la contraseña correcta pero me entra en un bucle sin salida cuando introduzco una contraseña erronea.

¿Alguna idea? Muchas gracias.

Código: [Seleccionar]
Option Explicit

Dim Clave As Integer
Dim i As Integer

Private Sub Form_load()
Form1.Caption = "Insertar contraseña"
Label1.Caption = "Por favor, introduzca su contraseña"
Label1.Alignment = 2
Text1 = ""
Text1.Alignment = 2
Command1.Caption = "Verificar"
End Sub

Private Sub Command1_click()
Clave = Text1
Do While Clave <> "1234"
i = i + 1
MsgBox ("La clave introducida no es válida. Inténtelo de nuevo.")
Text1 = ""
If i > 2 Then
MsgBox ("Ha introducido tres veces la clave incorrectamente.")
End If
Loop
MsgBox ("Contraseña correcta")

End Sub

Título: Re:Ejercicio 8 - Semana 10 "Fundamentos de programación I"
Publicado por: Alex Rodríguez en 10 de Septiembre 2014, 18:39
No estoy seguro, pero el problema parece ser el mismo que comentamos sobre el ejercicio 6 en https://www.aprenderaprogramar.com/foros/index.php?topic=1294.0

Es decir, que usando un textbox no hay detención para introducir el dato.

Si en vez de usar un textbox usas inputbox (míralo en el ejercicio 6) debería detenerse, pedir el dato y funcionar como se espera. Es decir, elimina los textbox y usa sólo inputbox.

Saludos!
Título: Re:Ejercicio 8 - Semana 10 "Fundamentos de programación I"
Publicado por: JValero en 10 de Septiembre 2014, 19:43
Hola alex,

Si, efectivamente lo habíamos comentado anteriormente pero no entiendo porque no funciona con un MSGBOX.

Pensaba que una vez pinchase sobre aceptar la aplicación volvería a la pantalla inicial para permitirme insertar una contraseña nuevamente.

No obstante, tienes toda la razón, con el inputbox funciona perfectamente.

Muchas gracias!!
Título: Re:Ejercicio 8 - Semana 10 "Fundamentos de programación I"
Publicado por: Alex Rodríguez en 10 de Septiembre 2014, 19:56
No vuelve a la pantalla inicial porque el bucle no le deja, parece que debiera detenerse con el msgbox, pero aunque se detuviera sería para volver a mostrarlo inmediatamente porque el bucle no tiene condición de salida. Con tres repeticiones se supone que se muestra un mensaje pero al no haber condición de salida se repite y se repite y se repite hasta el infinito...