Se supone que alguna forma tendrás de saber cuando un registro está duplicado. En el evento después de actualizar de ese campo podrías contar los registros que cumplan con ese criterio.
Imaginemos que el campo que no admite duplicados es el documento de identidad. En el evento AfterUpdate deberías contar la cantidad de registros que existen en la tabla con ese mismo numero y que no son el que estas introduciendo.
Dices que no utilizas claves primarias en la tabla. Entiendo con eso que no tienes ningún campo que sea indexado sin duplicados. Pero, ¿algún campo autonumérico que identifique inequívocamente al registro? (Todas las tablas deberían tenerlo)
Si lo tienes te servirá para realizar la cuenta obviando el registro actual.
Otra cosa a tener en cuenta es si estas situado en un registro nuevo o modificando uno existente, ya que uno nuevo no dispone aun del campo autonumérico almacenado.
Así pues, el código podría quedar mas o menos así:
(Obviando declaración de variables)
If Me.NewRecord Then
strCriteria = "Documento = '" & Me!Documento & "'"
Else
strCriteria = "Documento = '" & Me!Documento & "' AND IdRegistro <>" & Me!IdRegistro
End If
If DCount("*", "laTabla", strcriteria) > 0 Then
MsgBox "Ya existe un registro con ese numero de documento", vbCritical, "Aviso"
End If
Un saludo
Xavi
http://www.mvp-access.con