Een voorbeeld posten dat lukt helaas niet. Maar ik kan je wel op weg helpen.
Je hebt zo te zien een tabel "Medewerkers"
Zorg dat deze tabel de volgende velden heeft :
Groep, Wachtwoord (selecteer bij invoermasker "wachtwoord"), bevoegdheid, einddatum (datum veld), InlogCount
Hou er rekening mee dat je alle verwijzingen naar velden of tabellen in mijn codes moet veranderen naar je eigen veld of tabelnamen. Zo heet bijvoorbeeld jou tabel "medewerkers" bij mij "InlogMenu".
Het inloggen gebeurd bij mij in een formulier genaamd "frmCalamityInlogscherm" en heeft de volgende velden :
fldComputerNaam, CBOinlogNaam, FLDwachtwoordInvoeren
en een knop om in te loggen genaamd KNPinloggen
Het eerste veld laat zien op welke computer we zitten. zet in de eigenschappen van het veld bij besturingselementbron =fOSMachineName()
Het tweede veld is de inlog naam, In mijn geval is dat het netwerk inlognaam. Zet in de eigenschappen van van het veld bij besturingelementbron =FOSUsername()
Bij het derde veld zetten we geen besturingselementbron, die kan je dus gewoon zo laten. Maar selecteer wel bij invoermasker "wachtwoord"
Selecteer de knop KNPinloggen en kies voor eigenschappen, selecteer "bij klikken" opbouwfuncties voor programmacode.
Copy en paste de volgende code hierin :
Code:
Private sub KNPinloggen_click()
Dim EindDatum As Variant
Dim intDaysUntilPwdExpire As Integer
Dim intInlogCount As Integer
'------CHECK of WACHTWOORD ingevuld is---------'
If Len(Nz(Me!FLDwachtwoordInvoeren, "")) = 0 Then
MsgBox "Wachtwoord moet ingevuld zijn", _
vbInformation, "Wachtwoord melding"
Me.FLDwachtwoordInvoeren.SetFocus
Exit Sub
End If
'-------Check of drie inlogpogingen zijn overschreden----------'
If DLookup("[inlogcount]", "tblinlogMenu", "[Groep] = '" & Me![CBOinlogNaam] & "'") = 0 Then
MsgBox "Aantal inlog pogingen is overschreden " _
& vbCrLf & "Neem contakt op met de Database beheerder", vbExclamation, "Inloggen mislukt"
Exit Sub
Else
End If
'------CHECK of PASSWORD verlopen is------'
EindDatum = DLookup("[EindDatum]", "tblinlogMenu", "[Groep] = '" & Me![CBOinlogNaam] & "'")
If Not IsNull(EindDatum) Then
intDaysUntilPwdExpire = DateDiff("d", Now(), CDate(EindDatum))
Select Case intDaysUntilPwdExpire
Case Is <= 0
MsgBox "You Password is exprired, please " _
& vbCrLf & "Neem contakt op met de Database beheerder", vbExclamation, "Password Expiration Notice"
Exit Sub
Case Is <= 30
MsgBox "You Password will expire in " & _
intDaysUntilPwdExpire & " days" _
& vbCrLf & "Neem contakt op met de Database beheerder", vbExclamation, "Password Expiration Notice"
Case Else
End Select
Else
End If
'------CHECK of USERNAME en PASSWOORD klopt------'
If Me.FLDwachtwoordInvoeren = DLookup("wachtwoord", "TBLinlogMenu", "Groep = '" & Me.CBOinlogNaam.Value & "'") Then
DoCmd.SetWarnings False
Dim strSQL As String
strSQL = "Update TBLinlogMenu Set InlogCount = 3 Where Groep = '" & Me.CBOinlogNaam.Value & "'"
DoCmd.RunSQL strSQL
DoCmd.Close
DoCmd.OpenForm "frmWelkomScherm2"
End With
Exit Sub
Else
'---------Als Username & Passwoord niet klopt >> --------'
Me.FLDwachtwoordInvoeren = ""
DoCmd.GoToControl "FLDwachtwoordInvoeren"
Me.Requery
strSQL = "Update TBLinlogMenu Set InlogCount = InlogCount -1 Where Groep = '" & Me.CBOinlogNaam.Value & "'"
intInlogCount = DLookup("[inlogcount]", "tblinlogMenu", "[Groep] = '" & Me![CBOinlogNaam] & "'")
If Not IsNull(InlogCount) Then
Select Case intInlogCount
Case Is = 0
MsgBox "Aantal inlog pogingen is overschreden " & _
"Neem contakt op met de Database beheerder", vbExclamation, "Inloggen mislukt"
Exit Sub
Case Is = 1
MsgBox "Het wachtwoord is niet juist" _
& vbCrLf & "U heeft nog " & intInlogCount & " Poging over", vbExclamation, "Inloggen mislukt"
Case Is = 2
MsgBox "Het wachtwoord is niet juist" _
& vbCrLf & "U heeft nog " & intInlogCount & " Pogingen over", vbExclamation, "Inloggen mislukt"
Case Is = 3
MsgBox "Het wachtwoord is niet juist" _
& vbCrLf & "U heeft nog " & intInlogCount & " Pogingen over", vbExclamation, "Inloggen mislukt"
Case Else
End Select
Else
End If
Exit Sub
End If
End Sub
Mijn scherm ziet er zo uit trouwens :
Maak even een nieuw formulier aan genaamd frmWelkomScherm2 om te zien of het werkt. In dit formulier heeft de gebruiker de mogelijkheid zijn eigen passwoord te veranderen, de database te openen, en de manager heeft hier de mogelijkheid om het passwoord management pagina te openen.
Ik heb voor het gemak even het stukje eruitgelaten waar word gelogd wie inlogged en wanneer, dat komt later wel. Probeer dit eerst maar even.