user can delete data from primary key field

  • Thread starter Thread starter larry
  • Start date Start date
L

larry

When a user tries to add a record without entering the primary key field,
they correctly get the message that the field is required. But I have
discovered that they can pull a record and accidentally delete the data in
that field and Access will save the record with the pk field null. Why???
How do I prevent this?

Thanks in advance!
 
larry said:
When a user tries to add a record without entering the primary key field,
they correctly get the message that the field is required. But I have
discovered that they can pull a record and accidentally delete the data in
that field and Access will save the record with the pk field null. Why???
How do I prevent this?

Better double check that PK setting. Access absolutely will not allow a
Null in a PK. You "might" have a situation with a text PK where the user
could enter a zero-length string, but that is difficult (in not impossible)
from the GUI and you would only be allowed to do it once as any others
would be disallowed as duplicates.
 
I cannot reproduce that, Larry. The Jet database engine will not allow a
Null value in a field that is, or forms part of, a primary key. With a text
field, with its Allow Zero Length property set to 'Yes', Jet will allow you
to save one record with an empty string in that field, which is visually
indistinguishable from a Null value. If this is not desired (in my
experience it usually is not) change the Allow Zero Length property to 'No'.

Note that the above applies only to a primary key, not to a unique index
that is not a primary key. Jet (unlike SQL Server) will allow multiple
records with Null values in such an index.

--
Brendan Reynolds (MVP)
http://brenreyn.blogspot.com

The spammers and script-kiddies have succeeded in making it impossible for
me to use a real e-mail address in public newsgroups. E-mail replies to
this post will be deleted without being read. Any e-mail claiming to be
from brenreyn at indigo dot ie that is not digitally signed by me with a
GlobalSign digital certificate is a forgery and should be deleted without
being read. Follow-up questions should in general be posted to the
newsgroup, but if you have a good reason to send me e-mail, you'll find
a useable e-mail address at the URL above.
 
Hi Rick,

The pk is a text field. I duplicated the behavior myself by hitting a key
(I can't remember if I hit delete/enter/ or the spacebar) with the field
selected in the form. I had already fixed the other record prior to that,
so it does give me some relief to know that at least it can only happen
once.

I'll test it again today.
 
Back
Top