anoniem Geplaatst: 13 april 2002 Delen Geplaatst: 13 april 2002 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 Quote Link naar reactie
anoniem Geplaatst: 13 april 2002 Auteur Delen Geplaatst: 13 april 2002 Bij de tweede keer dat je het wachtwoord vraagt me de inputbox ben je vergeten om de return string terug te geven aan wachtwoord. Het moet dus zijn:[code:1:2b97ce4c00]If wachtwoord <> goedwachtwoord Then wachtwoord = InputBox ("Het wachtwoord is fout, probeer het nog eens") End If [/code:1:2b97ce4c00] Quote Link naar reactie
anoniem Geplaatst: 13 april 2002 Auteur Delen Geplaatst: 13 april 2002 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. Quote Link naar reactie
anoniem Geplaatst: 13 april 2002 Auteur Delen Geplaatst: 13 april 2002 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 Quote Link naar reactie
anoniem Geplaatst: 13 april 2002 Auteur Delen Geplaatst: 13 april 2002 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] Quote Link naar reactie
anoniem Geplaatst: 14 april 2002 Auteur Delen Geplaatst: 14 april 2002 Bedankt cim! Ik snap het en het is gelukt... Klaas Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen