none
Los indices autonumericos cambian al insertar un registro en el medio de una tabla RRS feed

  • Pregunta

  • Buenos días!

    Estoy teniendo un problema grave, y me temo que se debe al pasar de access 2003 a access 2010

    Hasta ahora, cuando insertaba un registro (mediante una consulta SQL) EN MEDIO de una tabla que tiene un autonumérico como índice, este NO CAMBIABA. Solo cambiaba al añadir nuevo registro. Me explico

     - Tengo una tabla con un indice ID autonumerico. El proximo valor de ID será 1000

     - Mediante un query, inserto un registro con el ID 400

    Esto es lo que me ocurre:

     - Si la inserción se hacía desde un access 2003 no pasaba nada. El autonumerico seguía donde estaba. Si mas tarde intentaba añadir un NUEVO registro (no insertar), me asignaba el número 1000.

     - Si la inserción la hago desde un access 2007, el autonumerico se me REPOSICIONA. Si intento añadir un nuevo registro, me asigna el número 401. Esto es MUY MALO para mi, pues a partir de ahora todos los nuevos registros dan error por duplicidad en el índice.

    Se debe seguro a la version de access? Es algo referente a la versión de mdac? Hay algo que pueda hacer para solucionar este problema (es decir, si hay algún elemento de configuración que haga que los autonumericos no cambien al INSERTR registros)?

    Muchas gracias

    domingo, 18 de diciembre de 2016 15:23

Todas las respuestas

  • Hola!

    eso se debe, probablemente, a la corrupción de la base de datos, yo probaría a crear una base de datos en blanco e importar a ella todos los objetos de esta, dudo que tenga nada que ver con la versión de Access.


    Saludos a todos desde Huelva

    Emilio

    http://www.mvp-access.es/emilio/


    domingo, 18 de diciembre de 2016 18:19
  • No tiene que ver con la corrupción

    Cojo una BD y hago una copia de la misma (CTRL-C CTRL-V).

    En una inserto el registro con access 2003. En la copia inserto con access 2010. La BD con el registro insertado con access 2003 no me cambia el indice del autonumerico. En la otra con access 2010 sí que lo hace.

    Me tiene amargado :(

    domingo, 18 de diciembre de 2016 21:22
  • Pues entonces será el Access el que se ha corrompido, desinstálalo, limpia su rastro del registro e instálalo de nuevo.

    Saludos a todos desde Huelva Emilio http://www.mvp-access.es/emilio/

    lunes, 19 de diciembre de 2016 17:17
  • Hola

    Yo no usaría los autonuméricos como haces tu. Piensa que desde la versión 2003 a la 2007 el motor de base de datos cambió radicalmente.

    ¿Por qué le quieres asignar el valor al autonumérico? si es así, deberías plantearte cambiar la forma de crear y asignar el valor (usando una tabla de contadores a la que acceder con bloqueo pesimista para obtener el último valor, usar funciones de agregado de domínio para obtener el valor máximo y agregar uno para usarlo, pero esto no te garantiza que no existan huecos, etc...)

    Salu2,


    José Mª Fueyo

    jueves, 22 de diciembre de 2016 12:34