Evitar duplicados importación tabla sobre fecha factura

Tengo en Access una tabla vinculada llamada C0090 con los datos de un solo mes y a continuación creo una consulta de anexar para incluir en una nueva tabla llamada C0090_tbl estos valores. El problema es que tengo que tener cuidado para que no se me duplique la información en caso de que por error le de dos veces a la consulta de anexar. ¿Cómo se podría hacer un control para que en caso de que en la tabla C0090_tbl coincidiera la fecha factura con la fecha factura de la vinculada saliera un mensaje de error? Me explico gráficamente

C0090  fecha factura 01/01/2022

Si a la hora de anexar NO aparecen registros en la tabla C0090_tbl con valor en la fecha factura 01/01/2022 que los anexe, si SÍ aparecen registros con la fecha factura 01/01/2022 que salga un mensaje de error.

2 Respuestas

Respuesta
2

Por hacer lo puedes hacer de muchas formas, lo que de verdad importa es desde donde quieres hacerlo. Por ejemplo, tengo una tabla Compradores como

Y otra tabla llamada Otra, que contiene algún registro repetido con respecto a Compradores

En un formulario tengo un botón( de ahí lo de desde donde quieres hacerlo)

Cuando lo pulso, me deja la tabla Compradores como

Es decir, sólo me ha añadido aquellos registros de la tabla Otra que no son comunes.

En este caso, el código del botón es

Private Sub Comando70_Click()
DoCmd.RunSQL "insert into Compradores select * from otra WHERE cliente NOT IN (SELECT cliente FROM compradores)"
End Sub

O sea, inserta en la tabla Compradores aquellos registros de la tabla Otra en que el valor de su campo Cliente no esté en el campo Cliente de la tabla Compradores.

Los campos no tienen porque llamarse igual, pero sí ser de datos compatibles.

También podrías hacerlo con una consulta, etc.

Respuesta
1

Planteo otra alternativa:

Crear un índice en la tabla que impida duplicar los datos que conformen el índice (en principio fecha y factura).

El índice en la tabla impedirá el duplicado de datos no importando su origen (inserción con SQL, mediante una tabla o incluso introduciéndolos manualmente en la tabla).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas