473,385 Members | 1,320 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,385 software developers and data experts.

How to identify the creator of the .mbd file?

I teach a class in MS Access 2003 to college students. I've had some
issues with students turning in .mdb files that were created by other
students and then only slightly modified to give some convincing
argument that they didn't cheat. I know about the "Properties" (which
is how I detected the "shared" database in the first place).

What I'd like to know is if there is a way I may personally assign an
identification alphanumeric to each mdb file that I send to a student
so that, when the file is returned to me via eMail or on disc or flash
media, I may check the file and know that Student A didn't turn in a
copy of Student B's file.

I'd prefer not to use the Properties dialog as it is only a matter of
time before someone catches on and alters the data there. I'd like to
find some place in the file (or add some sort of "secret pocket") into
which I may place the personally identifiable data. If I could paste
something in or add a resource only I could view (protected by either a
password or a means that only I would know) that would do it.

I would imagine that password-protecting this file for only the
specific piece of information I would be including would be impossible
as the students will need to have designer access in order to do their
homework.

Suggestions are welcomed. Thanks in advance.

Barry

Dec 18 '06 #1
7 3300
I don't know what, exactly, would be a good way to identify the file that
you give a student to make sure the same file is returned to you. But, so
what if it is?

Students will have to have permissions to create and update the database
objects pertinent to the assignment, even if you applied Access' security
(which, by the way, if you have followed the blogs of the Access development
team at Microsoft, is going to work differently in the ACCDB of Access
2007). They can just import the objects from another student's database, and
that would foil your identification scheme and that's very little more work
than doing the file copy.

But even if you were able to prevent them electronically copying the file,
and prevent them importing the objects, how could you prevent them copying
by cut-and-paste?

Larry Linson
Microsoft Access MVP

<ex********@gmail.comwrote in message
news:11**********************@t46g2000cwa.googlegr oups.com...
>I teach a class in MS Access 2003 to college students. I've had some
issues with students turning in .mdb files that were created by other
students and then only slightly modified to give some convincing
argument that they didn't cheat. I know about the "Properties" (which
is how I detected the "shared" database in the first place).

What I'd like to know is if there is a way I may personally assign an
identification alphanumeric to each mdb file that I send to a student
so that, when the file is returned to me via eMail or on disc or flash
media, I may check the file and know that Student A didn't turn in a
copy of Student B's file.

I'd prefer not to use the Properties dialog as it is only a matter of
time before someone catches on and alters the data there. I'd like to
find some place in the file (or add some sort of "secret pocket") into
which I may place the personally identifiable data. If I could paste
something in or add a resource only I could view (protected by either a
password or a means that only I would know) that would do it.

I would imagine that password-protecting this file for only the
specific piece of information I would be including would be impossible
as the students will need to have designer access in order to do their
homework.

Suggestions are welcomed. Thanks in advance.

Barry

Dec 18 '06 #2
Tell us about it. Some of that code probably came from here. (:->)

<ex********@gmail.comwrote in message
news:11**********************@t46g2000cwa.googlegr oups.com...
>I teach a class in MS Access 2003 to college students. I've had some
issues with students turning in .mdb files that were created by other
students and then only slightly modified to give some convincing
argument that they didn't cheat....

Barry


Dec 18 '06 #3
<ex********@gmail.comwrote in message
news:11**********************@t46g2000cwa.googlegr oups.com...
>I teach a class in MS Access 2003 to college students. I've had some
issues with students turning in .mdb files that were created by other
students and then only slightly modified to give some convincing
argument that they didn't cheat. I know about the "Properties" (which
is how I detected the "shared" database in the first place).

What I'd like to know is if there is a way I may personally assign an
identification alphanumeric to each mdb file that I send to a student
so that, when the file is returned to me via eMail or on disc or flash
media, I may check the file and know that Student A didn't turn in a
copy of Student B's file.

I'd prefer not to use the Properties dialog as it is only a matter of
time before someone catches on and alters the data there. I'd like to
find some place in the file (or add some sort of "secret pocket") into
which I may place the personally identifiable data. If I could paste
something in or add a resource only I could view (protected by either a
password or a means that only I would know) that would do it.

I would imagine that password-protecting this file for only the
specific piece of information I would be including would be impossible
as the students will need to have designer access in order to do their
homework.

Suggestions are welcomed. Thanks in advance.
Hi Barry.

Are you familiar with user-level security? If you are then what you could
do is have a table with your unique data in it. You could then either make
it read-only, deny access to it for your students or even make it hidden.

If you're not familiar with user-level security then perhaps just making the
table hidden might we worth a try.

HTH - Keith.
www.keithwilby.com
Dec 18 '06 #4
Don't know how much of a db you're supplying your students with as "starter"
material for their projects, but I'd think about using the Tag property of
one of the db's forms. You could assign a different Tag to each copy and
check the returned dbs. I'd use an arbitrary ID, i.e one that should a
student spot the Tag won't be an obvious ID; don't use ADAM001 for a student
named Adams for example. Most professional developers never use the Tag
property, and any student that's smart enough to tumble to it are probably
doing their own work anyway!

--
There's ALWAYS more than one way to skin a cat!

Answers/posts based on Access 2000

Message posted via AccessMonster.com
http://www.accessmonster.com/Uwe/For...ccess/200612/1

Dec 18 '06 #5
Barry, if you are creating a file for each student, you could include a
custom property that contains the student name.

Use the function below like this:
Call SetPropertyDAO(dbEngine(0)(0), "CreatedFor", dbText, "Fred Smith")

Later, when checking the student's work, you can then read the property in
the Immediate Window like this:
? dbEngine(0)(0).Properties("CreatedFor")

Function SetPropertyDAO(obj As Object, strPropertyName As String, intType As
Integer, varValue As Variant, Optional strErrMsg As String) As Boolean
On Error GoTo ErrHandler
'Purpose: Set a property for an object, creating if necessary.
'Arguments: obj = the object whose property should be set.
' strPropertyName = the name of the property to set.
' intType = the type of property (needed for creating)
' varValue = the value to set this property to.
' strErrMsg = string to append any error message to.

If HasProperty(obj, strPropertyName) Then
obj.Properties(strPropertyName) = varValue
Else
obj.Properties.Append obj.CreateProperty(strPropertyName, intType,
varValue)
End If
SetPropertyDAO = True

ExitHandler:
Exit Function

ErrHandler:
strErrMsg = strErrMsg & obj.Name & "." & strPropertyName & " not set to
" & varValue & ". Error " & Err.Number & " - " & Err.Description & vbCrLf
Resume ExitHandler
End Function

Public Function HasProperty(obj As Object, strPropName As String) As Boolean
'Purpose: Return true if the object has the property.
Dim varDummy As Variant

On Error Resume Next
varDummy = obj.Properties(strPropName)
HasProperty = (Err.Number = 0)
End Function

--
Allen Browne - Microsoft MVP. Perth, Western Australia
Tips for Access users - http://allenbrowne.com/tips.html
Reply to group, rather than allenbrowne at mvps dot org.

<ex********@gmail.comwrote in message
news:11**********************@t46g2000cwa.googlegr oups.com...
>I teach a class in MS Access 2003 to college students. I've had some
issues with students turning in .mdb files that were created by other
students and then only slightly modified to give some convincing
argument that they didn't cheat. I know about the "Properties" (which
is how I detected the "shared" database in the first place).

What I'd like to know is if there is a way I may personally assign an
identification alphanumeric to each mdb file that I send to a student
so that, when the file is returned to me via eMail or on disc or flash
media, I may check the file and know that Student A didn't turn in a
copy of Student B's file.

I'd prefer not to use the Properties dialog as it is only a matter of
time before someone catches on and alters the data there. I'd like to
find some place in the file (or add some sort of "secret pocket") into
which I may place the personally identifiable data. If I could paste
something in or add a resource only I could view (protected by either a
password or a means that only I would know) that would do it.

I would imagine that password-protecting this file for only the
specific piece of information I would be including would be impossible
as the students will need to have designer access in order to do their
homework.

Suggestions are welcomed. Thanks in advance.

Barry

Dec 18 '06 #6
Pretty much what I was going to suggest but to add to Allen's post, if you
do use this method don't forget to remove the code below from the mdb, as it
might be a bit of a giveaway to the "bright enough to hack" students that
you do have.

Heh, heh, otherwise I can see David Cox being prophetic, as I can see some
of your students coming in here to ask us to explain the code below.
--

Terry Kreft
"Allen Browne" <Al*********@SeeSig.invalidwrote in message
news:45***********************@per-qv1-newsreader-01.iinet.net.au...
Barry, if you are creating a file for each student, you could include a
custom property that contains the student name.

Use the function below like this:
Call SetPropertyDAO(dbEngine(0)(0), "CreatedFor", dbText, "Fred
Smith")
>
Later, when checking the student's work, you can then read the property in
the Immediate Window like this:
? dbEngine(0)(0).Properties("CreatedFor")

Function SetPropertyDAO(obj As Object, strPropertyName As String, intType
As
Integer, varValue As Variant, Optional strErrMsg As String) As Boolean
On Error GoTo ErrHandler
'Purpose: Set a property for an object, creating if necessary.
'Arguments: obj = the object whose property should be set.
' strPropertyName = the name of the property to set.
' intType = the type of property (needed for creating)
' varValue = the value to set this property to.
' strErrMsg = string to append any error message to.

If HasProperty(obj, strPropertyName) Then
obj.Properties(strPropertyName) = varValue
Else
obj.Properties.Append obj.CreateProperty(strPropertyName, intType,
varValue)
End If
SetPropertyDAO = True

ExitHandler:
Exit Function

ErrHandler:
strErrMsg = strErrMsg & obj.Name & "." & strPropertyName & " not set
to
" & varValue & ". Error " & Err.Number & " - " & Err.Description & vbCrLf
Resume ExitHandler
End Function

Public Function HasProperty(obj As Object, strPropName As String) As
Boolean
'Purpose: Return true if the object has the property.
Dim varDummy As Variant

On Error Resume Next
varDummy = obj.Properties(strPropName)
HasProperty = (Err.Number = 0)
End Function

--
Allen Browne - Microsoft MVP. Perth, Western Australia
Tips for Access users - http://allenbrowne.com/tips.html
Reply to group, rather than allenbrowne at mvps dot org.

<ex********@gmail.comwrote in message
news:11**********************@t46g2000cwa.googlegr oups.com...
I teach a class in MS Access 2003 to college students. I've had some
issues with students turning in .mdb files that were created by other
students and then only slightly modified to give some convincing
argument that they didn't cheat. I know about the "Properties" (which
is how I detected the "shared" database in the first place).

What I'd like to know is if there is a way I may personally assign an
identification alphanumeric to each mdb file that I send to a student
so that, when the file is returned to me via eMail or on disc or flash
media, I may check the file and know that Student A didn't turn in a
copy of Student B's file.

I'd prefer not to use the Properties dialog as it is only a matter of
time before someone catches on and alters the data there. I'd like to
find some place in the file (or add some sort of "secret pocket") into
which I may place the personally identifiable data. If I could paste
something in or add a resource only I could view (protected by either a
password or a means that only I would know) that would do it.

I would imagine that password-protecting this file for only the
specific piece of information I would be including would be impossible
as the students will need to have designer access in order to do their
homework.

Suggestions are welcomed. Thanks in advance.

Barry


Dec 18 '06 #7
Larry (and the others who have been kind enough to reply),

I think you've hit the nail on the head. I won't be able to prevent
copy/paste so my plan simply will not work unless I do -not- tell them
about copy/paste. If they don't know that already, they probably don't
know about the Properties dialog either. Maybe I'll just tell them
about these two things at the very end of the course...nahhh, bad idea.

I think I'll just have to stress that if I catch them cheating, they're
tossed out of the class and will receive an F. I'll also have to
eliminate the take-home test. Too bad for them, eh?

Thanks to everyone!
Barry

Larry Linson wrote:
{snip} But even if you were able to prevent them electronically copying the file,
and prevent them importing the objects, how could you prevent them copying
by cut-and-paste?
Dec 18 '06 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Stefan Ram | last post by:
Some style guides suggest to repeat a DC.creator meta-element for multiple authors, but doesn't this contradict its specification? "An entity primarily responsible for making the content of the...
1
by: Gorilla | last post by:
I bound my package with EXPLAIN(YES), and it's got the following static SQL in it: EXEC SQL SELECT CARDF, RECLENGTH INTO :CARDF,:RECLENGTH FROM SYSIBM.SYSTABLES WHERE NAME = :TBNAME AND...
5
by: Bonj | last post by:
Hi Is there a free installer / msi / setup creator available , that is capable of installing assemblies into the GAC folder, the same way that the setup project wizard in VS.NET does? only free.
4
by: Eric | last post by:
Hi, I need to find a way to identify between a few different file formats WITHOUT looking at the file extension. Very often our customers will name file incorrectly. For example, they'll send us...
3
by: Shilpa | last post by:
Hi All, I want to write C# code to identify a file type and open the file in the associated editor. For example, text files should be identified and opened in notepad, html should be opened in...
0
by: Roshan | last post by:
Hi, I am trying to programatically add a FileSystemAccessRule for CREATOR OWNER to the filesystemsecurity obj of a folder whose creator and owner is a user account say 'SomeUser'. The rule gets...
6
by: Pieter | last post by:
Hi, For some procedures that throws exceptions, I would like to show different messages to the user depending on what type of exception he's getting. For instance this one: when the file is...
13
by: alive84 | last post by:
Hi there, I have a two problems concerning option button values on a report and data report creator reports. The situation: I have three option value boxes two have 3 option and one has...
3
by: alan | last post by:
Hello all, I'd like to know if there is a nice method of defining a functor creator which accepts an N-ary function and returns a functor based on that function. For example I have a function:...
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: ryjfgjl | last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.