Beste,
Ik ben al een tijdje bezig met het probleem dat ik graag wil weten wie er in mijn database aanwezig is.
Nu werkt de database via een citrix omgeving waarmee ik met de standaard comando's zoals environ en LDB viewer alleen machine namen te zien krijg.
Ik ben hier al even mee bezig en ben nu zo ver dat ik een inlog scherm heb toegevoegd.
Gebruikers moeten nu inloggen.
Ik heb hiervoor een tabel genaamd tbl_users.
In deze tabel staat de user_id, passwords, password_date en nog wat andere gegevens die ik niet gebruikt zoals email adres.
Ik heb vooraf alle gebruikers ingevuld en een standaard password aangemaakt.
Als een gebruiker de eerste keer inlogd krijgt hij de melding dat zijn (standaard)password is verlopen en dat hij zelf een ander password moet invullen.
Als dit is gedaan komt hij bij het beginscherm.
Alles werkt zoals het moet maar ik wil graag dat de tabel, of een andere tabel ook bijhoud wie er wanneer in de database zit.
Een login/logoff datum/tijd dus.
De code die ik gebruik heb ik van internet en is eigenlijk iets te uitgebreid. Deze maakt het mogelijk dat verschillende gebruikers afhankelijk van hun access level doorverwezen worden
naar verschillende switchboarden. Dit hoeft in mijn geval niet. Iedereen wordt doorverwezen naar hetzelfde start formulier. In mijn geval heet dit "front".
Ik zal hieronder de code die ik gebruik zetten.
O ja, even voor Octafish. Ik meen me te herinneren dat jij een trucje had om er voor te zorgen dat mensen altijd de database correct afsluiten. Kun je dit ook nog een keer met
mij delen?
Alvast bedankt allemaal en de beste wensen voor 2015 alvast.
Ik ben al een tijdje bezig met het probleem dat ik graag wil weten wie er in mijn database aanwezig is.
Nu werkt de database via een citrix omgeving waarmee ik met de standaard comando's zoals environ en LDB viewer alleen machine namen te zien krijg.
Ik ben hier al even mee bezig en ben nu zo ver dat ik een inlog scherm heb toegevoegd.
Gebruikers moeten nu inloggen.
Ik heb hiervoor een tabel genaamd tbl_users.
In deze tabel staat de user_id, passwords, password_date en nog wat andere gegevens die ik niet gebruikt zoals email adres.
Ik heb vooraf alle gebruikers ingevuld en een standaard password aangemaakt.
Als een gebruiker de eerste keer inlogd krijgt hij de melding dat zijn (standaard)password is verlopen en dat hij zelf een ander password moet invullen.
Als dit is gedaan komt hij bij het beginscherm.
Alles werkt zoals het moet maar ik wil graag dat de tabel, of een andere tabel ook bijhoud wie er wanneer in de database zit.
Een login/logoff datum/tijd dus.
De code die ik gebruik heb ik van internet en is eigenlijk iets te uitgebreid. Deze maakt het mogelijk dat verschillende gebruikers afhankelijk van hun access level doorverwezen worden
naar verschillende switchboarden. Dit hoeft in mijn geval niet. Iedereen wordt doorverwezen naar hetzelfde start formulier. In mijn geval heet dit "front".
Ik zal hieronder de code die ik gebruik zetten.
O ja, even voor Octafish. Ik meen me te herinneren dat jij een trucje had om er voor te zorgen dat mensen altijd de database correct afsluiten. Kun je dit ook nog een keer met
mij delen?
Alvast bedankt allemaal en de beste wensen voor 2015 alvast.
Code:
' Name: mod_display_menu
' Function : display the switchboard after checking the access and password and password expiry date
' Date: 23/01/2007
Option Compare Database
Option Explicit
Sub display_menu()
On Error GoTo err_display_menu
' at this stage the userId and access level has been checked
Dim access_level As Integer
Dim finish_Date As Date
Dim port_syd As String
Dim valid_user As Integer
Dim check_user As Integer
Dim password_period As Date
Dim check_password As String
Dim strmsg As String
valid_user = 2
' **********************************************
' validate user_id
' **********************************************
check_user = DCount("[user_id]", "tbl_users", "user_id=forms!frm_main!user_id")
If check_user = 1 Then
valid_user = 2
Else
valid_user = 0
End If
' **********************************************
' validate password
' **********************************************
If valid_user = 2 Then
check_password = DLookup("[passwords]", "tbl_users", "user_id=forms!frm_main!user_id")
If UCase(check_password) = UCase(Forms!frm_main!password) Then
valid_user = 2
Else
valid_user = 1
End If
End If
' **********************************************
' validate access_level
' **********************************************
If valid_user = 2 Then
access_level = DLookup("[access_level]", "tbl_users", "user_id=forms!frm_main!user_id")
End If
Select Case valid_user
Case 0, 1
strmsg = " Access Denied" & _
vbCrLf & " Contact your Administrator if the problem persists. "
MsgBox strmsg, vbInformation, "INVALID USER ID or PASSWORD"
Case 2
' open and hide the utility form frm_utility
' this form will be used to store the user id for as as required e.g recording the user id of an
' user adding records etc.
DoCmd.OpenForm "frm_utility", , , , , acHidden
'store the user id on the utility form frm_utility
Forms!frm_utility!user_id = Forms!frm_main!user_id
Select Case access_level
Case 1 ' level1 menu
' validate password expiry
password_period = DLookup("[password_date]", "tbl_users", "user_id = forms!frm_main!user_id")
If password_period < Date - 365 Then
strmsg = " Your password has expired. You must change your password"
MsgBox strmsg, vbInformation, "Expired Password"
DoCmd.OpenForm "frm_change_password", acNormal
Else
DoCmd.OpenForm "front"
End If
Case 2 ' level2 menu
' validate password expiry
password_period = DLookup("[password_date]", "tbl_users", "user_id = forms!frm_main!user_id")
If password_period < Date - 365 Then
strmsg = " Your password has expired. You must change your password"
MsgBox strmsg, vbInformation, "Expired Password"
DoCmd.OpenForm "frm_change_password", acNormal
Else
DoCmd.OpenForm "front"
End If
Case 3 ' level3 menu
' validate password expiry
password_period = DLookup("[password_date]", "tbl_users", "user_id = forms!frm_main!user_id")
If password_period < Date - 365 Then
strmsg = " Your password has expired. You must change your password"
MsgBox strmsg, vbInformation, "Expired Password"
DoCmd.OpenForm "frm_change_password", acNormal
Else
DoCmd.OpenForm "front"
End If
Case Else
strmsg = " Access Denied" & _
vbCrLf & " Contact your Administrator if the problem persists. "
MsgBox strmsg, vbInformation, "INVALID USER ID or PASSWORD"
End Select
End Select
exit_display_menu:
Exit Sub
err_display_menu:
MsgBox Err.decsription
Resume exit_display_menu
End Sub