views:

92

answers:

2

Hi there,

I'm looking for advice as to the correct method for form design to prompt the user entering data to avoid duplicated records.

For example: The user enters profile information in the fields firstName surName Its highly possible for numerous profiles to have the same name (e.g John Smith, so indexing fields isn't possible to avoid duplicates). Its possible for the user to enter the same record twice if they are not prompt/warned not to do so.

What is considered the best method to prompt users to avoid duplicate entries and highlight that a record 'may' already exist?

Thanks in advance for any advice.

+1  A: 

I find that selecting matching records from the table in the before update event is useful, a list of possible matches with an additional identifier, such as address or date of birth can be shown to the user who can then make the decision as to whether this is a new or existing John Smith. You might also like to consider soundex, for close matches.

Remou
Cheers Remou, Soundex looks very interesting.
glinch
You might also like to look at Levenshtein Distance : http://wiki.lessthandot.com/index.php/Comparing_Words:_Levenshtein_Distance
Remou
+3  A: 

My approach for de-duping people during data entry is to use an unbound form that collects the required fields, then checks the existing data and presents a list of possible matches, sorted in descending order of closeness of matches. I use Soundex() and Soundex2() on the names an various substrings for determining the rank.

Here's a sample Add Customer form from one of my client's apps:

sample Add Customer form

The dots at the left show the level of match, with red for exact (or near-exact -- I can't quite recall the exact formula), orange for close match, then yellow and going to green for very remote matches. The closest matches are at the top of the list.

The point is that the duplicate checking is done here, when the ADD button is clicked, and then the user has to determine if any of the possible matches are a real duplicate, and then add or not.

In other words, I depend on human intelligence to avoid creating duplicates, but they can create them if they want to. But I make it as easy as possible to avoid doing so.

David-W-Fenton
+1 "I depend on human intelligence ot avoid creating duplicates" -- nice looking dialog too :)
onedaywhen
That looks like exactly the approach I need to take, cheers for the advice David
glinch
It's much harder to try to do this all in the same form where you do your editing. It's so easy with an unbound dialog like this that I'm not sure why anybody punishes themselves trying to add new records in the same form that's used for editing.
David-W-Fenton
Hi david, do you use a split for with the above or are the search results displayed in a subform based on a query?
glinch
I don't have any apps deployed in A2007 or A2010, so I don't use split forms -- it's a subform based on a query. I don't see how a split form would be useful here.
David-W-Fenton
Righty ho, cheers David. Having a little trouble using unbound controls and the subform based on a query.
glinch
Have you posted a new question somewhere?
David-W-Fenton
I have david but on a different forum: http://www.utteraccess.com/forum/Referencing-Unbound-Contr-t1953491.html
glinch
Utteraccess banned me for using the word "bloody" in calling out an idiotic post. The sysadmin admitted thinking that "bloody" was a reference to menstrual blood, and thus anti-woman. I was thrilled to be banned from a forum run by such morons.
David-W-Fenton
...in general I think you'll get better answers in the microsoft.public.access.* Usenet groups than you'll get on Utteraccess, though perhaps the quality has gone up on UA since MS shut down its Usenet server.
David-W-Fenton
To be fair, stackoverflow has done the business for all of my previous technical problems with Access. Yourself, and a few other posters have provided me with a great deal of help here, which I truly appreciate.
glinch
@glinch: that's why I'm here. The type of problems is different from what I encounter in other forums and keeps me entertained. I hope I'm providing the kind of help to others that has helped me build my own skillset over the years.
David-W-Fenton
Nice one David, Cheers
glinch