Restricting Reports / Dates

Hello Experts,

I have restricted employees from accessing past sales reports using If Date() > Me.txtDate

However, I was just informed that employees just change their system date to overcome this. Simple yet clever

Is there a way to prevent this?

Can I restrict non-admin users from restricting date changes? - this is why I'm also posting in XP Category.

The BE fil is on a network drive, but i can move it to a PC that can't be physically accessed by employes, and somehow use that system date in my FE?  Perhaps, running a .vbs at 12am to update a .txt file, and use that?
APD TorontoAsked:
Who is Participating?
 
Jeffrey CoachmanMIS LiasonCommented:
APD_Toronto,

Just a note here...
<employees just change their system date>

Sadly, the Access issue is not the worst thing...
Changing the system date can screw up Outlook something fierce, as Outlook is "Date Based"
Events will fire, alerts will go out, task will expire, Things that were done may be marked undone, Date stamps may be come invalid, Time limited events will fire, "Auto Archive"...etc.

Finally, it will screw up the event logs...

You can see these links to prevent users from changing the date/time
http://www.experts-exchange.com/Security/Operating_Systems_Security/Q_23827738.html
http://www.experts-exchange.com/Software/Server_Software/File_Servers/Active_Directory/Q_27251411.html
et al:
http://www.google.com/search?q=site%3Awww.experts-exchange.com+prevent+users+from+changing+the+time

JeffCoachman
0
 
Nick67Commented:
I prefer the trust yet verify model.
It is easy enough to create a table that will record who opened the report and when each time it opens.
Since these records would be created serially, you can let the users know that attempts to circumvent the restriction will be obvious, and traceable.
Another method is to look and see if there are records with a Date greater than today

Dim rs as recordset
set rs = currentdb.openrecordset("select SomeID from SomeTable where RecordDate >= (Date() +1)
if rs.recordcount > 0 then
    Msgbox "Hmm...You seem to have gone back in time to look at a past report.  I am coming with a stick now!"
end if
0
 
APD TorontoAuthor Commented:
Nick, could you elaborate a bit more?
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

 
Nick67Commented:
Presumably, your records have a date in them.
If you are only allowed to check today's records, there should be no 'tomorrow' records yet
So, ergo, if you check for records with a date of tomorrow or later, the only way they could exist is if you messed with the system clock.

Busted
0
 
Nick67Commented:
It is nice for hunting down screw-ups to have a field that shows the datetime an important record is created, anyway.
Add a datetime field, call it DateCreated, and give it a default value of Now()

You can then test for misbehavior
Sub FutureJobs()
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("select SomeID, DateCreated from SomeTable where DateCreated > #" & (Date + 1) & "# And isnull(DateCreated) = false;", dbOpenDynaset, dbSeeChanges)
If rs.RecordCount > 0 Then
    MsgBox "Hmm...You seem to have gone back in time to look at a past report.  I am coming with a stick now!"
End If

End Sub

Changing the time also requires Local Administrator priviledges on the box.
Which should NOT be standard operating procedure

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.