Muchas veces no basta con tener la columna ID para garantizar la integridad de los datos, es fácil registrar datos con el mismo nombre pero con los ID distintos, pero en realidad tenemos el mismo dato duplicado y esto puede causar muchas problemas.
Para impedir registrar datos duplicados, tenemos que ir a la columna donde queremos crear esta restricción, para este ejemplo la columna se llama Nombre Material y se encuentra en la tabla MATERIALES.
Entonces abrimos el editor de propiedades de la columna Nombre Material y en el apartado Data Validity en Valid If ponemos la siguiente expresión:
Primero comprobamos que el valor que se ha ingresado en el campo del formulario Nombre Material es un valor que no coincide con algún valor de la columna Nombre Material de la tabla MATERIALES. También comprobamos que en el formulario el nuevo ID no coincide con ningún valor de la columna ID de la tabla MATERIALES, de esta manera nos aseguramos que el nuevo dato que queremos registrar es único en la tabla.
Pero si encuentra un valor duplicado tenemos que avisar el usuario, para esto vamos también a Data Validity en Invalid value error y ponemos la siguiente expresión:
Esto ha sido todo, espero que os sirva de ayuda.
Para impedir registrar datos duplicados, tenemos que ir a la columna donde queremos crear esta restricción, para este ejemplo la columna se llama Nombre Material y se encuentra en la tabla MATERIALES.
Entonces abrimos el editor de propiedades de la columna Nombre Material y en el apartado Data Validity en Valid If ponemos la siguiente expresión:
NOT(
IN([_THIS],
SELECT(MATERIALES[Nombre Material],[ID]<>[_THISROW].[ID])
)
)
Primero comprobamos que el valor que se ha ingresado en el campo del formulario Nombre Material es un valor que no coincide con algún valor de la columna Nombre Material de la tabla MATERIALES. También comprobamos que en el formulario el nuevo ID no coincide con ningún valor de la columna ID de la tabla MATERIALES, de esta manera nos aseguramos que el nuevo dato que queremos registrar es único en la tabla.
Pero si encuentra un valor duplicado tenemos que avisar el usuario, para esto vamos también a Data Validity en Invalid value error y ponemos la siguiente expresión:
IFS(
IN([_THIS],
SELECT(MATERIALES[Nombre Material],[ID]<>[_THISROW].[ID])
),
CONCATENATE(
"El material [ ",
[Nombre Material],
" ] ya está registrado"
)
)
Esto ha sido todo, espero que os sirva de ayuda.