PDA

Ver la Versión Completa : Controlar que no se introduzcan nombres iguales en un campo


fortran
18-08-2003, 09:57:07
Hola a todos:

Estoy trabajando con WXP en D5 y con tablas Paradox. Lo que quiero conseguir es que para un campo el usuario no pueda meter 2 registros iguales. Se me ha ocurrido que en el evento OnExit de las celdas puedo poner un procedimiento que me chequee esto. Pero quisiera saber si hay alguna manera más sencilla de hacerlo.

:D

Gracias de antemano por vuestra atención

__cadetill
18-08-2003, 10:03:57
Puedes crearte un indice de tipo Unique y dejar que sea la tabla la que controle eso. Tu sólo deverias controlar el OnPostError para saber si el usuario repite el nombre

fortran
18-08-2003, 18:21:18
Suponía que sería algo así, pero... ¿como creo un indice de tipo unique?

__cadetill
18-08-2003, 20:49:46
Dentro del DatabaseDesktop, al crear un indice secundario, veras que hay un check que pone "unique". Cliquealo y listo ;)

fortran
19-08-2003, 16:20:05
He hecho lo que me has dicho y funciona perfectamente :) . En el evento OnPostError de la tabla saco un mensaje que me dice que no se puede repetir nombre y bla bla bla... pero justo después me sale el mensaje de error de Key violation, Index: IndiceNombreProducto. ¿Como lo puedo evitar?.

__cadetill
19-08-2003, 16:33:14
como haces la captura de errores en el OnPostError? porque el error de keyviolation tb lo tendrias que poder capturar alli :confused:

fortran
19-08-2003, 18:05:49
Creo que ya lo he solucionado. Explico lo que he hecho puesto que no estoy seguro de que sea lo correcto.

En el OnPostError saco el mensaje de que no se pueden introducir nombres de productos iguales, luego borro el contenido con TablaProductosNombreProducto.clear

y por último hago action := daAbort;

¿Es correcto? :p