Microsoft
Software
Hardware
Network
Question : Questio on beforeupdate event to prevent duplicate record
I have a form that has 5 data fields: field 1, ... 5 (the form is bound to an external table). I added a module to prevent duplicate records being saved to database by checking three critical fields (field 1,...3) at UI level, i.e.:
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim updtRecs As Recordset
sql = "SELECT field1, field2, field3 FROM table ... WHERE ..."
Set updtRecs = CurrentDb().OpenRecordset(
sql)
If updtRecs.RecordCount <> 0 Then
MsgBox "Warning: Possible duplicate entry."
Cancel = True
End If
...
This works good for new records that contain changes on the three critical fields (feild 1, 2, 3). The problem is when users made change on another non-critical fields (field 4, field 5) on current existent record, the error message will still popup becuase updtRecs.RecordCount is not 0 in this case (since those three critical fields are not changed and is still in current table).
Any good quick fix on this issue so that when users edit and save current non-critical fields on existent records on the form, the validation will be skipped so that there is no such warning (of course, for the three critical fields, the validation is still there)?
I got advice that I could put the code in the before update events of the three fields instead of the form before update event. Is this the best solution? the problem is I have a long duplicate checking module (open and close a recordset, etc.), do I need to call this module everytime a critical field is changed? Thanks for the advice.
Answer : Questio on beforeupdate event to prevent duplicate record
For just 3 known fields you could do..
if me.field1<> me.field1.oldvalue or me.field2<> me.field2.oldvalue or me.field3<> me.field3.oldvalue then
' check for duplicates here
else
' don't bother
end if
Random Solutions
sp3 will not update
Sharepoint 2007 Date/Time Setting on bottom of Pages is incorrect
Check to see if a column name in a linked table has changed
What is the best way to walk through a DataSource of a DevExpress XtraGrid to see if there are any duplicate values in the rows?
Access 2007 VBA Report onFormat ignored on open
What is the difference between a MSI and MST file.?
Difference between Vmware player and Vmware server.
maxclient Id from table
ACT 2009 on SBS 2008 system.io.pathtoolong exception error
VBA Help Doesn't Work