Solved

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

Posted on 2014-02-04
6
668 Views
Last Modified: 2014-02-05
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!
0
Comment
Question by:jrmcanada2
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
6 Comments
 
LVL 15

Expert Comment

by:gplana
ID: 39834700
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
 
LVL 75
ID: 39834705
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
 

Author Comment

by:jrmcanada2
ID: 39834730
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
MS Dynamics Made Instantly Simpler

Make Your Microsoft Dynamics Investment Count  & Drastically Decrease Training Time by Providing Intuitive Step-By-Step WalkThru Tutorials.

 
LVL 19

Assisted Solution

by:MINDSUPERB
MINDSUPERB earned 200 total points
ID: 39834750
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
 
LVL 75

Accepted Solution

by:
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform) earned 200 total points
ID: 39834763
"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
 
LVL 19

Expert Comment

by:MINDSUPERB
ID: 39834782
Thanks, Joe.

You are right.

Sincerely,

Ed
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes two methods for creating a combo box that can be used to add new items to the row source -- one for simple lookup tables, and one for a more complex row source where the new item needs data for several fields.
In Part II of this series, I will discuss how to identify all open instances of Excel and enumerate the workbooks, spreadsheets, and named ranges within each of those instances.
In Microsoft Access, learn how to “cascade” or have the displayed data of one combo control depend upon what’s entered in another. Base the dependent combo on a query for its row source: Add a reference to the first combo on the form as criteria i…
In Microsoft Access, learn the trick to repeating sub-report headings at the top of each page. The problem with sub-reports and headings: Add a dummy group to the sub report using the expression =1: Set the “Repeat Section” property of the dummy…

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question