By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,136 Members | 1,772 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,136 IT Pros & Developers. It's quick & easy.

How to identify the creator of the .mbd file?

P: n/a
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
Share this Question
Share on Google+
7 Replies


P: n/a
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

P: n/a
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

P: n/a
<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

P: n/a
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

P: n/a
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

P: n/a
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

P: n/a
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 discussion thread is closed

Replies have been disabled for this discussion.