Algun experto en Access por aquí
Algun experto en Access por aquí
No se si habrá alguien por estos foros que sepa de access pero por si acaso planteo mi duda:
Tengo una tabla con dos campos, el primero es autonumérico, al segudno yo le voy asignando valores pero que también están ordenados. En un momento dado de entre los resgistros de enmedio me pulo uno y vuelvo a crearlo pero claro se me queda desordenado conrespecto al autonumerico:
Autonum Valor --> Autonum Valor --> Autonum Valor
1.............1..............1..............1..............1................1
2.............2..............2..............2..............2................2
3.............3..............4..............4..............4................4
4.............4..............5..............5..............5................5
5.............5..............6..............6..............6................6
6.............6.............................................7...............3
En el ejemplo me he cargado el registro (3,3) y cuando lo he vuelto a crear me asigna el (7,3) y yo querría volver al anterior.
He probado a desde el diseño cargarme el campo autonumérico, poner por orden el campo valor y volver a crear el autonumérico, pero en algún sitio se mantiene el orden de creación de los registros y el resultado de esa operativa es:
Autonum Valor
1..............1
2..............2
3..............4
4..............5
5..............6
6..............3
Está claro no? alguien que me pueda echar una mano?
Tengo una tabla con dos campos, el primero es autonumérico, al segudno yo le voy asignando valores pero que también están ordenados. En un momento dado de entre los resgistros de enmedio me pulo uno y vuelvo a crearlo pero claro se me queda desordenado conrespecto al autonumerico:
Autonum Valor --> Autonum Valor --> Autonum Valor
1.............1..............1..............1..............1................1
2.............2..............2..............2..............2................2
3.............3..............4..............4..............4................4
4.............4..............5..............5..............5................5
5.............5..............6..............6..............6................6
6.............6.............................................7...............3
En el ejemplo me he cargado el registro (3,3) y cuando lo he vuelto a crear me asigna el (7,3) y yo querría volver al anterior.
He probado a desde el diseño cargarme el campo autonumérico, poner por orden el campo valor y volver a crear el autonumérico, pero en algún sitio se mantiene el orden de creación de los registros y el resultado de esa operativa es:
Autonum Valor
1..............1
2..............2
3..............4
4..............5
5..............6
6..............3
Está claro no? alguien que me pueda echar una mano?


Re: Algun experto en Access por aquí
Ayudaría saber algun dato más, puesto que no me queda claro el sentido de lo que pretendes.
Por ejemplo:
El segundo campo, el que no es autonumérico, el que introduces tú, ¿es campo clave?, es decir ¿el valor introducido no se puede repetir?, o ¿podria repetirse el valor?.
Por otro lado, ¿que utilidad piensas darle a cada uno de esos dos campos?, me parece entender que te interesa de alguna manera poder conocer el orden de creación, independiente del valor del campo no autonumérico, ¿quizás para alguna ordenación por orden de creación?, ¿o lo que pretendes es que el valor autonumérico y el numerico sean iguales?.
Por ejemplo:
El segundo campo, el que no es autonumérico, el que introduces tú, ¿es campo clave?, es decir ¿el valor introducido no se puede repetir?, o ¿podria repetirse el valor?.
Por otro lado, ¿que utilidad piensas darle a cada uno de esos dos campos?, me parece entender que te interesa de alguna manera poder conocer el orden de creación, independiente del valor del campo no autonumérico, ¿quizás para alguna ordenación por orden de creación?, ¿o lo que pretendes es que el valor autonumérico y el numerico sean iguales?.


Re: Algun experto en Access por aquí
El campo clave es el autonumerico, el valor del segundo campo, el que yo meto, es indistinto la única condición es que esté ordenado de menor a mayor con respecto al valor autonumérico, es decir que sea imposible que dados dos registros cualesquiera el que tenga el menor valor autonumérico tenga a su vez el mayor Valor de los dos registros.


Re: Algun experto en Access por aquí
Entonces si no entiendo mal, realmente lo que quieres es que cuando eliminas un registro de alguna manera se guarde el valor del campo autonumérico eliminado, para que cuando añadas un registro más primero te asigne ese valor del eliminado antes de seguir asignando el orden que le tocaba. ¿es eso exactamente lo que quieres?Nihil escribió:El campo clave es el autonumerico, el valor del segundo campo, el que yo meto, es indistinto la única condición es que esté ordenado de menor a mayor con respecto al valor autonumérico, es decir que sea imposible que dados dos registros cualesquiera el que tenga el menor valor autonumérico tenga a su vez el mayor Valor de los dos registros.


Re: Algun experto en Access por aquí
Una posible solución es hacer una consulta en SQL y meter a manubrio un registro asignando tu el campo auto y saltandote de esta manera el autonum, una mejor solución sería haciendo un update para cambiar el valor del autonum pero eso no me permite hacerlo...


Re: Algun experto en Access por aquí
El valor del autocontador sólo se inicializa a cero para cada tabla cuando se compacta la base de datos, bueno eso si no quedan registros, si quedan se inicializaría al registro con mayor valor del autocontador.Nihil escribió:Si, podría ser una solución
La única forma que conozco de forzar a añadir el valor que tu quieres es mediante una "consulta de datos anexados", donde le pasaras el valor que te interese al campo autonumérico, claro lógicamente ese valor no debe de existir en la tabla destino, puesto que el autocontador es campo clave.
Para ello, y puesto que supongo que podrías borrar varios registros antes de meter uno nuevo, habría que guardar en una tabla temporal todos aquellos valores del campo autonumérico que vas eliminando antes de ser eliminados mediante un proceso, para luego utilizar los valores de esta tabla temporal para ir añadiendolos de menor a mayor, por lo que primero obtendriamos el menor valor de la tabla temporal, lo añadiriamos y luego lo borrariamos de la temporal para que me siga dando el siguiente valor más pequeño de la tabla temporal, así hasta que ya no queden registros en la tabla temporal, por lo que el valor del autocontador ya empezaría a continuar con el valor del contador que le tocaba.
Sin ir meterte en código para hacer esto se puede realizar con formularios y consultas de eliminacion y de datos anexados. No se si me explico.


Re: Algun experto en Access por aquí
Efectivamente, esa es la única manera de hacerlo que he visto, al final estos saltos en el autonumerico se debe evidentemente a errores en los registros que al final te acabas cargando, es decir es algo muy puntual y hacer una consulta para meter el registro con el valor del autonum que tu quieras no es algo muy complicado, sería mucho mejor opder hacer el update y cambiar un valor por otro pero se ve que este tiop de campos no es updatable.
Voy a ver si investigo como crear un nuevo registro copiando los datos de otro y así me ahorro el trabajo de pasarlos a mano
Muchas gracias por tu ayuda.
Voy a ver si investigo como crear un nuevo registro copiando los datos de otro y así me ahorro el trabajo de pasarlos a mano

Muchas gracias por tu ayuda.

