Tu problema es un asunto de fondo.. voy a tratar de explicarte.....
Si esta buen hecha la base de datos (y con esto me refiero que estan bien definidas las claves primarias) y cuando trates de grabar un registro duplicado te saltara un error.
Para capturar este error debes anteponer a la instruccion de ejecucion (execute) lo siguiente
ON ERROR RESUME NEXT
y luego de tu execute pones
IF ERR.NUMBER<> O THEN
en err.number tendras en nro de error (el cual puede ser clave duplicada o no) con el cual deberas ejecutar alguna accion determinada (mensaje clave duplicada)
OJO. El nro de error depende de la conexion que estes usando (DAO, RDO, ADO) y probablemente (si usas ADO) deberas usar la propiedad errornative que te da el nro de error del proveedor de BD.
Bueno. creo que se me complico un poco la explicacion. espero que la entiendas. cualquier cosa mandame un emilio (no te olvides de poner la pregunta nuevamente)