Botón actualizar registro numérico en access

A tod@s!
Estoy creando una base de datos en Access con una tabla que básicamente guarda datos de clientes. Dicha tabla tiene un campo que es "NumeroCliente" de tipo numérico donde se añadirá un numero a cada cliente que se vaya introduciendo. La antigüedad del cliente se tiene muy en cuenta, siendo el numero 1 el más antiguo y sucesivamente.
Cuando se da de baja algún cliente queda el hueco de ese número. Y ahora es donde viene mi duda. Necesito crear un botón en el formulario que al hacer clic me "reordene" los números para que no queden huecos y se mantenga la antigüedad de manera que si el 2 se ha dado de baja el siguiente al 2 pase a ser el 2 y sucesivamente sin dejar saltos de números.

1 Respuesta

Respuesta
1
Antes de nada una consideración. Imagino que el número de cliente no es la clave principal del registro, ya que de serlo y si tienes más tablas has de tener las actualizaciones en cascada activadas o dejarán de relacionarse los registros de clientes con los de las otras tablas.
Lo que necesitas se puede hacer usando código. Basta con usar un recordset en código asociado al evento 'Al hacer click' del botón. Puedes usar la propiedad recordsetclone (si la consulta en que se basa el formulario ya ordena los registros por el campo NumeroCliente o por la antigüedad). Luego ejecutaríamos un bucle por todos los registros introduciendo un numeral ascendente en cada uno de ellos (usamos en cada registro la propiedad Edit, establecemos el valor deseado usando una variable y hacemos un update del registro).
Si necesitas ayuda con el código necesitaría que me detallases más cual es el origen del formulario (tabla o consulta) y la estructura de la tabla.
Finalmente otra consideración. ¿Estas seguro de que es eficiente el borrar un registro de un cliente cuando se da de baja? Estas perdiendo todos sus datos y no sabes si los volverás a necesitar o si te vendrá bien conocerlos en el futuro. Por otra parte, si ya tienes un campo de antigüedad con el que puedes ordenarlos, asignar un orden por el campo número tal vez sea redundante. Lo habitual sería añadir un campo de fecha de baja o un campo Activo (Sí o No). Con estos podrías listar solo clientes activos y ordenarlos por su antigüedad dependiendo de la fecha de alta, listar clientes dados de baja... Solo es una sugerencia, ya que cada caso es un mundo y puede que en el tuyo la que has escogido sea la opción óptima.
Cordiales saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas