Logbestand van users bijhouden

Status
Niet open voor verdere reacties.

Dencar77

Gebruiker
Lid geworden
15 mrt 2013
Berichten
131
Hallo allen,

na een uitstekende login DB ben ik eigenlijk op zoek naar het volgende:
Een manier om de inloggers van een database in een tabel/formulier laten weergeven. Hoelaat (en dag uiteraard) ze inloggen en hoe laat ze uitloggen/

Ik heb reeds een tabel met werknemer (incl.wachtwoord en autorisatieniveau). Daarmee is dankzij Octafish een aanmeldscherm (inlogformulier) gemaakt.
Nu vermoed ik dat ik een nieuwe tabel moet maken met daarin de navolgende onderwerpen:

TblLogbestand:
=========
WerknemerID=numeriek?
Login=Datum/tijd
Logout=Datum/tijd

Ik vermoed dat ik ook een query zal moeten maken hiervoor. Op basis van deze query zal ik een formulier maken waar ik de logbestanden kan inzien.
Tevens denk ik dat de uitlog moment gebaseerd zal zijn op de aanmeldscherm. Die zal ik in plaats van laten sluiten op "hide" moeten zetten.

Maaaaaar zoals ik al zei, ik heb echt totaal geen flauw benul.


PS: ik heb een mail gestuurd naar mijnbestand.nl waarom ik geen bestanden kan uploaden. Met de site wetransfer kan ik wel bestanden versturen namelijk.
 
Laatst bewerkt:
Heb jij weer mazzel dat ik al zoiets gemaakt heb...

Op het loginvenster komt een SQL opdracht:
Code:
        sQuery = "INSERT INTO tLogin(UserID,Datum,Tijd,Actie)" & vbCrLf
        sQuery = sQuery & "VALUES('" & FnUser & "', CDate(" & CDbl(Date) & "), #" & Format(Now, "HH:mm") & "#, 'Inloggen" & "')"
        DoCmd.SetWarnings False
        CurrentDb.Execute sQuery, dbFailOnError

En bij het afmelden:
Code:
        sQuery = "INSERT INTO tLogin(UserID,Datum,Tijd,Actie)" & vbCrLf
        sQuery = sQuery & "VALUES('" & FnUser & "', CDate(" & CDbl(Date) & "), #" & Format(Now, "HH:mm") & "#, 'Afmelden" & "')"
        DoCmd.SetWarnings False
        CurrentDb.Execute sQuery, dbFailOnError
 
Beiden in de inlogscherm plaatsen?
Daarbij ook de tabel TblLogbestand maken en een query?

En echt bedankt dat je hierbij helpt.
 
Ik gebruik één inlog/afmeldvenster, waarop alles geregeld wordt. Die zien er zo uit:
 

Bijlagen

  • Afmeldscherm.png
    Afmeldscherm.png
    16,4 KB · Weergaven: 81
  • Inlogscherm.png
    Inlogscherm.png
    16,6 KB · Weergaven: 70
En de complete knop achter de knop <Aanmelden/Afsluiten is dan:
Code:
    If Me.cmdLogin.Caption = "&Aanmelden" Then
        Me.cmdLogin.Caption = "Afsluiten"
        Me.txtTitel.Caption = "Afmelden bij Formulier Medewerkers"
        Me.txtGroot.Caption = "Tot ziens..."
        Me.Form.Visible = False
        sQuery = "INSERT INTO tLogin(UserID,Datum,Tijd,Actie)" & vbCrLf
        sQuery = sQuery & "VALUES('" & FnUser & "', CDate(" & CDbl(Date) & "), #" & Format(Now, "HH:mm") & "#, 'Inloggen" & "')"
        DoCmd.SetWarnings False
        CurrentDb.Execute sQuery, dbFailOnError
        DoCmd.SetWarnings True
        DoCmd.OpenForm "fMedewerkers"
    Else
        Me.cmdLogin.Caption = "&Aanmelden"
        Me.txtTitel.Caption = "Aanmelding bij Formulier Medewerkers"
        sQuery = "INSERT INTO tLogin(UserID,Datum,Tijd,Actie)" & vbCrLf
        sQuery = sQuery & "VALUES('" & FnUser & "', CDate(" & CDbl(Date) & "), #" & Format(Now, "HH:mm") & "#, 'Afmelden" & "')"
        DoCmd.SetWarnings False
        CurrentDb.Execute sQuery, dbFailOnError
        DoCmd.SetWarnings True
        sUserToegang = FnUserSec
        DoCmd.Quit
    End If
 
Hmmm, ik ben niet bekend met het afmelden zoals jij dit hebt gedaan.
 
Wordt de gebruiker terug naar het aanmeld/afmeld scherm gebracht? In de database heb ik op de formulieren een "knop" gemaakt waarbij ze de database kunnen afsluiten namelijk.
 
Bij mij gaan ze terug, omdat ik dan de sessie goed kan afsluiten voor de gebruiker. Bovendien vind ik dat mijn formulier meer eenheid brengt in het gebruik. 't Is maar wat je wilt, maar in jouw geval zou je dus vermoedelijk op meerdere plekken de logging moeten regelen.
 
Hele goede tip, echter de rode rechterboven X knop is zeer makkelijk te vinden. Ik ben al blij wanneer men deze niet meer gebruikt en via de uitlogknop de database verlaten.

Maar in principe kan ik dus de knoppen bij mij weghalen en ze terug laten brengen naar de inlog/afmeldscherm. Ga ik uitproberen.
 
Op dit moment struikel ik over de code:
Code:
Me.txtTitel.Caption = "Afmelden bij Formulier Medewerkers"
        Me.txtGroot.Caption = "Tot ziens..."
.
Dit geld ook overigens voor het afmeldcode.
Hoe heb je de tekst zo geregeld dat deze zich aanpast?
In mijn aanmeldscherm heb ik wel een txtAanmelden staan.

Ps ik ga morgen verder hier mee aan de slag.
 
Laatst bewerkt:
Het foutief afsluiten van een database kun je ondervangen door een verborgen formulier mee te laten lopen waarop je het uitloggen vastlegt. Iemand die de db verkeerd verlaat, sluit dan toch (onzichtbaar) het verborgen formulier, dus die code wordt altijd gebruikt.
 
ik zal een kijken of ik die kennis me toe kan eigenen. Dit is allemaal nieuw voor me. Het enige wat ik aan Access aan kennis heb is een basis cursus gevolgd en de rest via internet en boeken.
 
Ik heb het navolgende gedaan, niet geheel klaar:

Tabel aangemaakt
TblLogboek
-LogID = Autonumeriek
-UserID = Tekst
-Login = datum/tijd (standaard datum-tijd)
-Loguit = datum/tijd (standaard datum-tijd)

Formulieren aangemaakt

FrmVerborgen
FrmHoofdscherm


Vervolgens heb ik voor beide formulieren deze omgezet tot pop-up schermen. Je kan tekst toevoegen op het hoofdscherm formulier.
En tevens de navolgende codes in de formulieren gebruikt.

*FrmVerborgen
Code:
Option Compare Database
Option Explicit

Private Sub Form_Load()
    If Not Me.NewRecord Then
        DoCmd.RunCommand acCmdRecordsGoToNew
    End If
    Me.UserID = Environ("username")
    Me.Tijdin = Now
    If Me.Dirty Then Me.Dirty = False
    
End Sub

Private Sub Form_Unload(Cancel As Integer)
Me.Tijduit = Now

End Sub

*FrmHoofdscherm
Code:
 Option Compare Database
Option Explicit


Private Sub Form_Open(Cancel As Integer)
DoCmd.OpenForm "FrmVerborgen", acNormal, , , , acHidden
End Sub

Private Sub Form_Unload(Cancel As Integer)
    If MsgBox("Weet u zeker dat u de database wilt afsluiten?", vbQuestion + vbYesNo, "Close Confirmation") = vbYes Then
        Application.Quit
    Else
        Cancel = True
    End If
End Sub

Bij BESTAND -> OPTIES -> HUIDIGE DATABASE: het formulier FrmHoofdscherm openen bij opstarten database.

Nu gebeurt bij het openen van de database dat het hoofdscherm formulier zich opent, maar ook de Verborgen formulier. Deze registreert elke logger in en uit. Hoe je ook de database afsluit, krijg je eerst een vraag of je echt de database wilt afsluiten (althans, naar gelang wat je in VBA hebt geschreven).

Op dit moment bekijk ik hoe ik de registratie op meerdere formulieren moet toepassen, want in deze database is deze gebaseerd op de enige formulier, Hoofdscherm.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan