Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

VBA: wachtwoord

Klaasje
5 antwoorden
  • 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
  • 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]
  • 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.
  • 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
  • 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]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.