Código SQL
[-]
SELECT COUNT(CamposClave) GROUP BY CamposClave HAVING COUNT(CamposClave)>1
Si mal no recuerdo. Lo copie al vuelo y no manejo acces asi que la idea es simplemente contar los campo(s) clave(s), agrupando la consulta por esos mismo, y filtrando por aquellos que den mas de 1...
Para evitar que aparezcan duplicados debes ponder un indice unico. En Acces se seleccionan los campos y se pone la llavesita o se define un indice y se dice es unico. Asi si el programa esta con una logica erronea al menos te va a sacar un error. Tambien es probable que te falte usar transacciones y por eso el problema