Hola,
1. consultas si existe y segun el numero de registros sigues la accion
2. lo eliminas antes de guardarlo
ejemplos.
1.
rs.open("select *from tabla where campollave = '" & campollave & "'")
if rs.recordcount>0 then
' ya existe por tanto en vez de usar inset into usas update
rs.open("update tabla set campo1='" & campo1 & "' , campo2='" & campo2 & "' where campollave='" & campollave & "'")
else
' grabas como siempre no existe registro con la misma llave si pasa por acá
endif
2.
rs.open("deletet from tabla where campollave = '" & campollave & "'")
' grabas como siempre no existe registro con la misma llave ya que acaba de ser eliminado.
Espero te sea util.
Saludos.