[VBA] Formularz na hasło

Chungu
Użytkownik
Użytkownik
Posty: 121
Rejestracja: 21 paź 2016, o 20:57
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 42 razy

[VBA] Formularz na hasło

Post autor: Chungu »

Witam.
Próbuję "napisać" formularz, który będzie sprawdzał hasło-jeżeli hasło jest poprawne to przechodzi do innego formularza, jeżeli nie to po 3 próbach zamyka się cały formularz.
Mam problem z 2 rzeczami:
1. Nie umiem zbytnio zrobić tego żeby po 3 razach formularz się zamknął (3 próby na wpisanie hasła)
fragment mojego kodu który jest przypisany do przycisku "hasło"

Kod: Zaznacz cały

Private Sub Hasło_Click()
Static e As Integer
e = 0
If TextBox1 = "alibaba" Then
Me.Hide
Rzymskie.Show
Else: e = e + 1
End If
If e = 3 Then
Me.Hide
End If
End Sub
2. Jak przy wpisywaniu hasła do "textbox'a" wykropkować litery? :(
Ostatnio zmieniony 3 gru 2016, o 17:30 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
OShon
Użytkownik
Użytkownik
Posty: 65
Rejestracja: 4 mar 2014, o 00:32
Płeć: Mężczyzna
Lokalizacja: VBATools | Kraków | Poland | Europe | Earth | SolSystem | SomewareInSpace
Podziękował: 1 raz
Pomógł: 7 razy

[VBA] Formularz na hasło

Post autor: OShon »

Ukryta forma musi być potem odwołana. Zamykanie pliku z ukrytą formą może doprowadzić do uszkodzenia pliku. czyli zawsze musi być

Kod: Zaznacz cały

Unload Me
To tak na wstępie.

Co do hasła które nie pokazuje swoich znaków to musisz ustawić we właściwościach kontrolki textbox lub wywołać ustawienie parametru kodem:

Kod: Zaznacz cały

TextBox1.PasswordChar = "*"
Teraz co do kodu jaki przedstawiłeś.
Jeśli zawsze będziesz zerował e to nigdy on nie uzyska wartość 3
A więc musisz zapamiętać próby poza tym kodem, aby e zwiększał swoją ilość po złym podaniu hasł.
Do tego służą zmienne globalne.
Wystarczy ją wystawić nad wszystkie procedury (na górę modułu), a potem zmusić procedurę aby pokazała inna formę lub ją odwołała jeśli ilość prób będzie niewystarczająca.

Kod: Zaznacz cały

Dim e As Integer

Private Sub Hasło_Click()
If TextBox1 = "alibaba" Then
    e = 0
    Me.Hide
    Rzymskie.Show
    Unload me
Else
    e = e + 1
End If
If e >= 3 Then Unload me
End Sub
Chungu
Użytkownik
Użytkownik
Posty: 121
Rejestracja: 21 paź 2016, o 20:57
Płeć: Mężczyzna
Lokalizacja: Łódź
Podziękował: 42 razy

[VBA] Formularz na hasło

Post autor: Chungu »

Dziękuję!
ODPOWIEDZ