Ga naar inhoud

VBA: wachtwoord


Aanbevolen berichten

Hallo, Ik ben bezig met het leren van VBA. Toen ik probeerde een beveiliging op een programma probeerde te zetten d.m.v. een wachtwoord lukte dat niet. Dit is de de code: [code:1:b04accdd8c] Sub hallo() gebruiker = InputBox("Typ hier uw naam in a.u.b.") If gebruiker = Empty Then End If Hour(Time) > 0 Then begroeting = "Goedenacht" + " " + gebruiker If Hour(Time) > 6 Then begroeting = "Goedemorgen" + " " + gebruiker If Hour(Time) > 12 Then begroeting = "Goedemiddag" + " " + gebruiker If Hour(Time) > 18 Then begroeting = "Goedenavond" + " " + gebruiker MsgBox begroeting If gebruiker = "klaas" Then goedwachtwoord = "klaasje" End If wachtwoord = InputBox("Voer password in" + " " + gebruiker) If wachtwoord = goedwachtwoord Then MsgBox "U gaat door voor de wasmachine" End If If wachtwoord <> goedwachtwoord Then InputBox ("Het wachtwoord is fout, probeer het nog eens") End If If wachtwoord <> goedwachtwoord Then MsgBox "Ga weg, je hebt geen toegang!" End If End Sub [/code:1:b04accdd8c] Als ik nu het programma uitvoer dan vraagt hij keurig om mijn naam, als ik dan klaas invoer krijg ik netjes de begroeting in beeld. Als ik daarna mijn wachtwoord goed intik werkt alles perfect, maar als ik hem fout intik dan moet ik mijn wachtwoord nogmaals invoeren. Als ik het wachtwoord voor de tweede keer dan wel goed invoer dan zegt de computer toch dat het wachtwoord fout is. Terwijl het wachtwoord goed is. Toch is dat is logisch, omdat de computer van boven naar beneden leest. Maar hoe krijg ik het voor elkaar dat het wel werkt? Alvast bedankt, Klaas
Link naar reactie
maar 2 pogingen? dat kan beter. een alternatief... in pseudo-code :wink: [code:1:5b39f8d3ae] SubRoutine Variabele wachtwoord = "" Variabele pogingen = 0 Doe Indien pogingen >= 1 Dan Indien KEUZEVENSTER "Onjuist wachtwoord! stoppen dan maar?"[JA/NEE] = JA Dan Einde Programma Einde Indien Einde Indien pogingen = pogingen + 1 wachtwoord = INVOERVENSTER "Voer je wachtwoord in" Terwijl wachtwoord <> "klaasje" Einde SubRoutine [/code:1:5b39f8d3ae] Deze routine zal het programma of "blokkeren" t/m het juiste wachtwoord is ingevoerd, of eindigen indien de gebruiker d'r genoeg van krijgt.
Link naar reactie
Beiden bedankt! Ik heb er nu dit van gemaakt: [code:1:ccad040150] Sub hallo() gebruiker = InputBox("Typ hier uw naam in a.u.b.") If gebruiker = Empty Then End If Hour(Time) > 0 Then begroeting = "Goedenacht" + " " + gebruiker If Hour(Time) > 6 Then begroeting = "Goedemorgen" + " " + gebruiker If Hour(Time) > 12 Then begroeting = "Goedemiddag" + " " + gebruiker If Hour(Time) > 18 Then begroeting = "Goedenavond" + " " + gebruiker MsgBox begroeting If gebruiker = "klaas" Then goedwachtwoord = "klaasje" End If wachtwoord = InputBox("Voer password in" + " " + gebruiker) If wachtwoord = goedwachtwoord Then MsgBox "U gaat door voor de wasmachine" End If If wachtwoord <> goedwachtwoord Then wachtwoord = InputBox("Het wachtwoord is fout, probeer het nog eens") End If If wachtwoord <> goedwachtwoord Then MsgBox "Ga weg, je hebt geen toegang!" End If If wachtwoord = goedwachtwoord Then MsgBox "u gaat door voor het broodrooster" End If End Sub [/code:1:ccad040150] Maar als ik het wachtwoord nu in één keer goed invoer dan krijg ik eerst te zien dat ik doorga voor de wasmachine en daarna voor het broodrooster... Hoe zorg ik ervoor dat ik maar één van de twee msgboxen zie? Alvast bedankt, KLaas
Link naar reactie
aanpassing van jouw code. (een advies nog: probeer beslissings-constructies wat beter te begrijpen) [code:1:c5a8e637ac] Sub hallo() gebruiker = InputBox("Typ hier uw naam in a.u.b.") If gebruiker = Empty Then End If Hour(Time) > 0 Then begroeting = "Goedenacht" + " " + gebruiker If Hour(Time) > 6 Then begroeting = "Goedemorgen" + " " + gebruiker If Hour(Time) > 12 Then begroeting = "Goedemiddag" + " " + gebruiker If Hour(Time) > 18 Then begroeting = "Goedenavond" + " " + gebruiker MsgBox begroeting If gebruiker = "klaas" Then goedwachtwoord = "klaasje" End If wachtwoord = InputBox("Voer password in" + " " + gebruiker) If wachtwoord = goedwachtwoord Then MsgBox "U gaat door voor de wasmachine" Else wachtwoord = InputBox("Het wachtwoord is fout, probeer het nog eens") If wachtwoord = goedwachtwoord Then MsgBox "u gaat door voor het broodrooster" Else MsgBox "Ga weg, je hebt geen toegang!" End If End If End Sub [/code:1:c5a8e637ac]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...