Override Access's default error message when a duplicate value is entered

I have a users form based on a users table where the primary key is the username. I'd like to add code to give my own error message when a duplicate username is entered instead of Access's default error message.

Is it preferable to put this code in the BeforeUpdate event of the control or the form? Or somewhere else?

Can anyone provide me with sample code?

Thank you!
jrmcanada2Asked:
Who is Participating?
 
DatabaseMX (Joe Anderson - Microsoft Access MVP)Connect With a Mentor Database ArchitectCommented:
"as soon as the duplicate is entered"
Yes.

The code posted above should, except ... the count will never be >1 because no duplicates will be allowed, so the code s/b:

If DCount("Username", "tblSample", "[Username]= " & Chr(34) & Me.Username & Chr(34) ) = 1 Then

MsgBox "Username is duplicated."
DoCmd.CancelEvent

Else

"Your Code"

End If
0
 
gplanaCommented:
I would put on the before insert of form (and also before update if your users can change the username of an existing record.

Normally control events looks for things like format and form events look for things like duplicates, so put it on the form level.

Hope it helps. Regards.
0
 
DatabaseMX (Joe Anderson - Microsoft Access MVP)Database ArchitectCommented:
The Duplicate Error is only rendered in the Form Error event. Consequently, you will need to trap that error number there, wherein you can display your own error message.
Note that Errors rendered in the Form Error event occur before the Before Update event.

mx
0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

 
jrmcanada2Author Commented:
Thanks for the suggestions so far. Allow me to be a little clearer about what I'm looking for.

If someone duplicates a username (either by entering a new duplicate or changing an existing one), I'd like to pop up an error message of my own. I currently have no preference if the warning pops up as soon as the duplicate is entered or if it pops up when Access tries to update the table (either through a save button, switching records, or closing the form).

At no point do I want to see Access's error message.

So my questions are:

1. Is it better to display the warning as soon as the duplicate is entered or to display it when the form attempts to update the record?

2. Can someone provide me with an appropriate code sample?

Thanks again!
0
 
MINDSUPERBConnect With a Mentor Commented:
Hello jrmcanada2,

You may use a similar code below on the BeforeEvent in your username textbox:

If DCount("Username", "tblSample", "[Username]= '" & Me.Username & "'") > 1 Then

MsgBox "Username is duplicated."
DoCmd.CancelEvent

Else

"Your Code"

End If

Sincerely,

Ed
0
 
MINDSUPERBCommented:
Thanks, Joe.

You are right.

Sincerely,

Ed
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.