Comprobar si existe un registro


([N4] nicodigi) #1

Damos el caso aquí en mi país usamos un numero de identidad (cédula de identidad) que es único, y se usa para cualquier cosa: comprar, vender, tramitar, registrar, etc.

Ahora en el programa, en el momento de registrar un nuevo individuo, quisiera que antes de grabar el registro nuevo, me de un alerta de que ese numero ya esta registrado en la base de datos.


([N3] krear) #2

Hola @nicodigi

Hay diferentes formas de comprobar lo que comentas, podrías usar un trigger y crear un proceso cuando se da de alta el registro y que antes de dar el alta realice la comprobación. El único inconveniente es que si después de que el usuario introdujo todos los datos le avisamos que ya el “cliente ya existe” le estaríamos haciendo perder tiempo completando los datos.

Una opción que podrías usar es:
-En la BD de clientes tienes que tener un campo con clave única por ej. “DNI”
-En el formulario de Alta de Cliente creas un “Manejador de Evento” por ejemplo “DNI-EXIST” que será el encargado de verificar si el registro actual ya existe en la tabla.

  • Dentro de este manejador creas una linea con la instrucción “¿Ya existe en el indice?” que comprueba si la ficha actual existe en un determinado indice. En el indice eliges DNI y te solicita una variable booleana para devolverte el resultado, por ej. “Existe”.
  • En base al valor de la variable ya puedes hacer lo que necesites, mostrar un mensaje al usuario o dar de alta el registro.
  • Luego en el formulario te creas una “Conexión de evento” que es la encargada de llamar al proceso anterior, a modo de ejemplo podrías asignarlo al control “DNI” cuando pierde el foco o quizás en el botón “Aceptar” antes de grabar el registro .

Suponiendo que el campo DNI es el primero en rellenar, quizás seria mejor que la comprobación se realice después de perder el foco así le ahorras al usuario llenar toda los campos y que luego le digas que ya existía el registro.

También habrían otras formas de hacerlo para saber que el cliente no existe antes de llenar sus datos. Por ejemplo tener un localizador con el indice “DNI” en primer lugar. Si el usuario utiliza este localizador, introduce el dni y no aparece es porque no existe y en la misma rejilla del localizador ya puedes tener botones para dar de alta.

La ventaja que veo del localizador es que lo podrás utilizar desde diferentes formularios que tengan o necesiten un enlace al Maestro “Clientes” por ejemplo facturas, recibos, etc. , en estos formularios creas un botón y le asignas el comando “Localizar en Maestro”, te preguntará el campo maestro y el objeto localizador que deseas utilizar. De esta manera suponiendo que el usuario necesite generar una factura lo primero que hará es utilizar el botón del localizador y buscar al cliente por su DNI, si existe ya lo podrá seleccionar, si no existe podrá darlo de alta y al finalizar de completar sus datos ya estará asignado a la factura.

Buenos espero te sirva!
Saludos!
Pablo