2017-02-09 6 views
0

Lors de l'exécution de ce code;Comment faire une boucle vbscript en boucle aller au début du code

varCheck=True 
Do While varCheck 
    Pass=InputBox("Enter Password") 
    Do 
     If IsEmpty(pass) Then 
      WScript.quit 
      Exit Do 
     End If 
     If Pass = "123" Then 
      varCheck=False 
      Exit Do 
     Else 
      varCheck=True 
      MsgBox("Wrong Password...Try Again") 
     End If 
    Loop 
Loop 

Si le mot de passe est erroné, alors il ne redémarre pas au haut du code, juste des boucles sans fin « Mot de passe incorrect ... Try Again » boîte de message. Comment puis-je demander de nouveau le mot de passe? (p.s. Je suis un débutant au codage alors s'il vous plaît expliquez-vous, merci!) AVERTISSEMENT! Comme je l'ai déjà dit, si vous avez un mot de passe erroné, le message du mot de passe erroné est répété indéfiniment.

+1

Avez-vous essayé de placer un 'Exit Do' après votre msgbox? – Rich

Répondre

2

Voici le script que vous cherchez, je suggérerais juste de se débarrasser entièrement du msgbox et de l'ajouter au texte InputBox. On dirait que vous avez oublié de casser votre boucle interne après avoir entré le mauvais mot de passe. Donc, il ne pourrait jamais revenir au début.

varCheck=True 
Dim StarterText: StarterText = "" 
Do While varCheck 
    Pass=InputBox(StarterText & "Enter Password") 
    Do 
     If IsEmpty(pass) Then 
      WScript.quit 
      Exit Do 
     End If 
     If Pass = "123" Then 
      varCheck=False 
      Exit Do 
     Else 
      varCheck=True 
      StarterText = "Sorry, wrong password, try again: " 

      Exit Do '<-----this is what you forgot. 

     End If 
    Loop 
Loop 
+0

Quelques questions novices; En quoi startertext est-il meilleur/différent de msgbox? Veuillez également expliquer ce que Dim signifie et à quoi sert-il/aide-t-il? –

+0

startertext est différent en ce que, vous voyez le message "mot de passe incorrect" dans la boîte de saisie plutôt que d'un popup séparé. Startertext et la boîte de message étant mieux n'est pas le cas, parce que c'est une question de préférence personnelle. L'un ou l'autre fonctionne bien. 'Dim' alloue juste l'espace variable et la mémoire pour une variable spécifique. Pour une bonne décomposition sur 'Dim', regardez ici -> http://www.vbsedit.com/html/87113e7d-b3d4-41c7-85c3-4b9925586707.asp – Rich

+0

Où puis-je en apprendre davantage sur la fonction startertext? –