Wachtwoord wijzigen formulier

Status
Niet open voor verdere reacties.

kevinr1

Gebruiker
Lid geworden
7 okt 2010
Berichten
110
Hey,

Heb een login scherm, nu wil ik nog dat gebruikers hun wachtwoord kunnen wijzigen.
Ben zelf alweer op speurtocht gegaan, alleen ik blijf maar op fouten stuiten :S.

Tabelnaam: Medewerkers
Velden: Gebruiker en Wachtwoord.


Formuliernaam: Wachtwoord wijzigen
Oud wachtwoord = txtOld
Nieuw wachtwoord = newpassword1
Bevestiging nieuw = newpassword2

Als een gebruiker ingelogd is moet hij/zij dus zijn of haar wachtwoord kunnen wijzigen.
Hieronder code:

Code:
 Dim sMsg As String
    Dim iResponse As Integer
 
    If Len(Nz(Me.txtOld, "")) = 0 Then
        MsgBox "Please input the current password.", , "Current Password"
        Me.txtOld.SetFocus
    ElseIf Len(Nz(Me.newpassword1, "")) = 0 Then
        MsgBox "Please enter the new password.", , "New Password"
        Me.newpassword1.SetFocus
    ElseIf Len(Nz(Me.newpassword1, "")) = 0 Then
        MsgBox "Please reenter the new password.", , "New Password Verification"
        Me.newpassword2.SetFocus
 
    Else
        sMsg = "Are you sure you want to change the password?"
        iResponse = MsgBox(sMsg, vbYesNo + vbQuestion + vbDefaultButton1, "Change Password")
        Select Case iResponse
 
        Case vbYes
            iResponse = acDataErrContinue
            If Me.txtOld = Forms!Gebruiker!Wachtwoord Then
                If Me.newpassword1 = Me.newpassword2 Then
                    Forms!Medewerkers!Wachtwoord = Me.newpassword1
                    MsgBox "The password has been changed to " & Chr(34) & Me.newpassword1 & Chr(34) & ".", , "Password Changed"
                    DoCmd.Close acForm, "frmChangePassword"
                    DoCmd.Close
                Else
                    MsgBox "The new password has been entered incorrectly.", , "New Password"
                    Me.newpassword1 = Null
                    Me.newpassword2 = Null
                    Me.newpassword1.SetFocus
                End If
            Else
                MsgBox "The current password is not correct.", , "Incorrect Password"
                Me.txtOld = Null
                Me.txtOld.SetFocus
            End If
        Case vbNo
                iResponse = acDataErrContinue
        End Select
    End If


End Sub

Als ik dus op knop 19 klik krijg ik deze foutcode:
RunTime error 2450
Start-Up cannot find the reference from "Gebruiker".

(Als ik op debug klik wordt ik verwezen naar de lijn van:
"If Me.txtOld = Forms!Gebruiker!Wachtwoord Then"

Kan ik dit nog werken maken?
 
Is er een formulier "Gebruiker", en als er die is staat die dan open?
 
Nee "gebruiker" is een veld.
Van tabel: medewerkers

Tabel staat ook niet open.
 
Maar met Forms!Gebruiker!Wachtwoord verwijs je naar het veld "Wachtwoord" op het formulier (vandaar Forms) Gebruiker.
Je moet de code die je nu gebruikt nog aanpassen aan jouw situatie!

Tip:
Probeer code die je hier en daar tegenkomt eerst goed te begrijpen voordat je die zelf gaat toepassen.
Dat voorkomt veel problemen en ergenissen
 
Laatst bewerkt:
Dat snap ik niet helemaal. Wat moet ik aanpassen en waarom?
Edit:

Ik snap niet veel van VBA codes...
 
Wat moet ik aanpassen en waarom?
Je maakt gebruik van code, die je volgens mij ergens anders hebt gevonden. Deze voldoet dan naar alle waarschijnlijkheid niet (gezien de foutmelding: zeker niet) aan jouw situatie.
 
Ahaa. Dus ergens andere code zoeken
Zelf kan ik geen codes in vba schrijven... Zal ik gaan doen.
 
Andere code zoeken zal je probleem niet oplossen; de kans dat je een oplossing vindt die exact op dezelfde manier (tabelnamen, veldnamen, tabelstructuur etc) werkt als jij, is miniem, zo niet gelijk aan nul. Dat maakt op zich ook niet uit, want voorbeelden zijn meestal prima aan te passen aan de eigen situatie. Alleen moet je wel weten wat je doet, en niet zomaar wat gegevens veranderen. Daarom vragen we vaak een voorbeeld, zodat we inzicht krijgen in de tabelstructuur, en we gericht hulp kunnen bieden. Nu kan dat dus niet, omdat we eigenlijk niks weten: ja, je hebt foutmeldingen...
 
Oke, nog wat voorbeelden erbij gepakt.
Mijn code tot nu toe:

Code:
Private Sub Knop19_Click()

Dim sMsg As String
    Dim iResponse As Integer
 
    If Len(Nz(Me.txtOld, "")) = 0 Then
        MsgBox "Please input the current password.", , "Current Password"
        Me.txtOld.SetFocus
    ElseIf Len(Nz(Me.newpassword1, "")) = 0 Then
        MsgBox "Please enter the new password.", , "New Password"
        Me.newpassword1.SetFocus
    ElseIf Len(Nz(Me.newpassword1, "")) = 0 Then
        MsgBox "Please reenter the new password.", , "New Password Verification"
        Me.newpassword2.SetFocus
 
    Else
        sMsg = "Are you sure you want to change the password?"
        iResponse = MsgBox(sMsg, vbYesNo + vbQuestion + vbDefaultButton1, "Change Password")
        Select Case iResponse
 
        Case vbYes
            iResponse = acDataErrContinue
            If Me.txtOld = DLookup("Wachtwoord", "Medewerkers", "[Gebruiker]= """ & txtUser & """") Then
                If Me.newpassword1 = Me.newpassword2 Then
                    Forms!Medewerkers!Wachtwoord = Me.newpassword1
                    MsgBox "The password has been changed to " & Chr(34) & Me.newpassword1 & Chr(34) & ".", , "Password Changed"
                    DoCmd.Close acForm, "frmChangePassword"
                    DoCmd.Close
                Else
                    MsgBox "The new password has been entered incorrectly.", , "New Password"
                    Me.newpassword1 = Null
                    Me.newpassword2 = Null
                    Me.newpassword1.SetFocus
                End If
            Else
                MsgBox "The current password is not correct.", , "Incorrect Password"
                Me.txtOld = Null
                Me.txtOld.SetFocus
            End If
        Case vbNo
                iResponse = acDataErrContinue
        End Select
    End If


End Sub

Nu krijg ik bij elk wachtwoord dat ik invul: Fout wachtwoord ingevoerd......
Alleen ik vul wel een juist wachtwoord in :p
 
Ik heb de situatie nagebouwd, maar krijg geen foutmeldingen. Wanneer komt-ie? Bij welke coderegel?
 
Ik log in met:
Gebruiker: asdf1
W8woord: asdf

Ga naar het wachtwoord wijzigen menu.
Typ in bij oud wachtwoord: asdf
nieuw wachtwoord: aaa
Bevestiging: aaa

Klik ik op: Wijzigen.
Melding: "The current password is not correct".
Lijkt mij alsof hij de ingelogde persoon niet 'opslaat'?
 
Vergelijk 'm eens met mijn versie.... Het gaat overigens om het formulier frmChangePassword.
 

Bijlagen

  • Inlogbeveiliging Database.zip
    85,7 KB · Weergaven: 49
Maar hij stopt niet op User_ID, hij stopt op NewPassword1.... En die veldnaam heb ik overgenomen van jouw voorbeeld :)
 
Dus waar ligt het dan aan ?
aan newpassword1?

Als ik het zo zie hoort hij juist de tekst van newpassword1 over te nemen in de update SET...
Alleen doet ie dat niet vanwege de onbekende methode... ?

Dus dit geen VBA maar SQL wat niet samen gaat met VBA? ( ik loop te snel voor op conclusies:p?
 
Laatst bewerkt:
Je kunt uiteraard SQL opdrachten combineren met VBA, dat is juist één van de leuke dingen van VBA! De query doet het mij mij prima, dus ik snap eerlijk gezegd niet waarom hij bij jou niet zou werken. De enige reden die ik kan bedenken is dat bij jou de tekstvelden anders heten... Maar zonder voorbeeldje kan ik ook niet meer dan een paar slagen in de lucht slaan.
 
Ik had eigenlijk verwacht dat je de code die hierboven staat wel op het formulier gebruikt zou hebben.... Niet dus! De redenen dat jouw opzet niet werkte zijn legio, vrees ik. Al was het maar dat je in de DLookup een veld gebruikt (Gebruiker) dat je helemaal niet op het formulier hebt....
Deze variant is in ieder geval compleet. Ik heb dus voor de gebruiker een keuzelijst gemaakt, met de naam (jawel.... cboGebruiker).

Ik ben niet de eerste die het zegt, maar hopelijk wel de laatste: als je voorbeelden gebruikt, kijk dan wat er allemaal in zit, en gebeurt, en probeer de code aan te passen aan jouw situatie, of andersom. Kijk desnoods in de Help functie om te zien hoe een bepaalde code werkt. Vooral de DLookup is erg lastig voor beginners.
 

Bijlagen

  • Test for access center help.rar
    36,7 KB · Weergaven: 35
Volgens mij gebruikte ik jou code ook, alleen had ik die achteraf gewijzigd naar de oude code om storingen te voorkomen. :S
En zelf doe ik dat ook, code's aanpassen aan mijn variabelen, maar het niet altijd duidelijk wanneer en waar ik iets moet wijzigen.

Sommige dingen kwamen ook niet overeen met mijn code zodat ik alles weer over het hoofd zag.
naja, bedankt voor je AL je hulp!
Hij werkt!!!

Ben nu ongeveer wel klaar denk ik. :O
Zal misschien de komende tijd kleine dingetjes plaatsen maar niet meer zo ingewikkeld denk ik.
Bedankt OctaFish!!!
 
Grappig ik was ook bezig met een inlogmenu met password-change (lees : het wiel opnieuw uitvinden) en ik liep een beetje vast. Ik wilde net een vraagje posten en toen zag ik dit topic :)

Er gebeurd bij mij wel iets raars trouwens, als ik het formulier open waar je het passwoord moet veranderen dan zie ik in de detailsectie een wit vlak, waarbij je geen enkel veld ziet om iets in te voeren. Als ik dan hetzelfde formulier open vanaf het database window dan zie ik die vakken wel.

Vanaf de link op mijn formulier werkt het dus niet goed.

Ik ga wel gewoon een nieuw formuliertje maken, maar vraag me af of iemand dit probleem wel eens eerder is tegen gekomen ?

Groet : Jeroen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan