Realizar control de registro duplicado antes de añadirlo en una tabla

(Access 2007). Hola, quisiera saber como mostrar una ventana de
advertencia si al intentar añadir un registro en una tabla, éste ya se
encontrara almacenado. Necesito saber como realizar la función de
búsqueda y como mostrar la ventana. No utilizo claves primarias en la
tabla.

1 Respuesta

Respuesta
1

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas