Datos duplicados

Quisieran que me dieran una manito, tengo un formulario desde donde capturo información a una tabla de novedades, en el formulario tengo un botos que ejecuta una consulta de datos anexados, pero si oprimo varias veces el botos, me inserta el registro tantas veces como lo oprimo. No puedo controlar por campor indexados porque los campos se pueden repetir, solo que no puede existir duplicado un registro que tenga iguales dos de sus campos, es decir específicamente los campos consecutivo y otro campo llamado tipo_novedad,
los campos de la tabla son: id_novedad (autonumérico y llave de la tabla)
Consecutivo
tipo_novedad
id_contrato
Valor
Fecha
======
Respuesta
1
Tu problema es que la clave de la tabla no es la clave de la tabla, aunque parezca un contrasentido, normalmente la gente se define autonuméricos como clave única, así resuelven el problema de los repetidos, eso es lo que creen claro, porque en realidad lo que han (has) conseguido es que tu tabla no distinga los repetidos.
Lo primero que tienes que hacer al crear una tabla es ver que campos necesitas, en tu caso:
consecutivo,tipo_novedad,id_contrato,valor y fecha
Despues preguntarte, cuales son los campos que no pueden repetirse, por ejemplo, :
consecutivo, id_contrato, fecha
Pues estos campos serán la clave de tu tabla.
Te entiendo la aclaración, pero el caso es más especifico, estos campos si se pueden repetir, por lo cual no pueden sel llaves, la situación es que simultáneamente no pueden ser iguales, te doy un ejemplo, el contrato xxxx puede tener varias novedades, y cada novedad tiene un numero ejemplo 1,2,3,4, etc. . pero el control que necesito es evitar que ingrese para el mismo contrato el ismo tipo de novedad con el mism numero de novedad.
Gracias por tus respuestas
A ver si nos aclaramos, ¿me dices que el id_contrato, tipo_novedad y numero novedad no pueden repetirse?, ¡Pues ya tienes la clave!. Lo que me parece es que piensas que clave no puede ser más que un solo campo, pueden ser varios como en este caso.
Solución, la clave de tu tabla es:
Consecutivo
tipo_novedad
id_contrato
Al menos es lo que tu dices.
Mea culpa..
No me he sabido explicar
Para enternerme te doy un ejemplo:
Id de contrato: 117
Tipo de novedad 1 (digamos que es un pago parcial)
Numero de novedad 2(digamos que es el segundo pago)
Lo que quiero evitar es que en el formulario con el botón grabar se repita el click y accidentalmente me grabe el mismo registro. Pienso que se puede evitar validando que no se repita el numero de novedad y tipo simuktaneamente, pues para el ejemplo solo se podrá para el contrato 117 para la misma novedad ingresar pro otro numero de novedad.
Pues lo dicho pon de clave:
Id de contrato
Tipo de novedad
Numero de novedad
Y ya lo tienes.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas