Comparar registros en tabla y sustituir en caso de duplicidad

Tengo un problemilla que me lleva a maltraer y es el siguiente:

Tengo una tabla con varios campos entre ellos [pieza] [letra] y [trozo] y uno [piezacompleta] que concatena los otros tres y debe ser sin duplicados.

Lo que necesito es un código que al incluir un registro nuevo en la tabla desde formulario, me lo compare y en caso de que ya exista me modifique solo el campo [trozo] por el siguiente valor (o sea, si pieza=12345, letra=A, trozo=5, sustituya el valor del campo a trozo=6 y repita la comprobación hasta que [piezacompleta] sea valor único y pueda guardar el registro.

1
Respuesta
1

Así, sin pararme a comprobarlo, se me ocurre esto:

Do While DCount("*","TuTabla","pieza= " & Me.pieza & " AND letra='" & me.letra & "' AND trozo=" & Me.trozo)>0

Me.trozo=Me.trozo+1

Loop

En cuanto a dónde colocarlo, con los datos que das solo puedo aventurar posibilidades, pero yo lo probaría primero en "después de actualizar" del campo trozo.

También lo podrías hacer sobre el campo piezacompleta, pero como no sé cómo se rellena, cabrían varias posibilidades, pero en esa misma línea...

sveinbjorn muchas gracias por tu rápida respuesta.

La verdad es que los registros se generan en una tabla temporal en los que el campo [trozo] se autonumera incrementalmente por código en cada registro y ahí no tengo problema pero después anexo todos los registros creados a la tabla principal mediante una consulta de anexar registros y en ese momento es cuando necesito que me compare los nuevos con los que ya hay en la tabla principal y en caso de que exista algún registro coincidente, el registro nuevo es el que debe incrementar el numero de [trozo]hasta que no este repetido y se pueda añadir a la tabla principal.

Espero que esto te aclare lo suficiente, sino te puedo adjuntar una copia de la base.

Muchas gracias

Si la consulta la ejecutas desde un formulario, por código, el código lo puedes poner antes de ejecutarla, así ya te pasará los valores correctos a la tabla definitiva. Lo único que debes cambiar es en el DCount el nombre y campos de tu tabla definitiva.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas