¿Cómo corregir el error 3022 de la base de datos Access “Los cambios solicitados en la tabla no se han realizado correctamente”?
Resumen: Este blog habla sobre las diferentes situaciones y las posibles causas que pueden dar lugar al error 3022 de la base de datos Access. También discute las soluciones para corregir el error 3022.
El error de Access 3022 “Los cambios que solicitó en la tabla no se realizaron correctamente” puede producirse en cualquiera de estas situaciones:
- Al intentar introducir un nuevo registro en una tabla existente con un campo “Autonumber”.
- Crear un formulario o un informe
- Al acceder a un archivo de base de datos almacenado en un recurso compartido de red
Consejo Si desea restaurar rápidamente su archivo inaccesible de base de datos Access (.ACCDB/.MDB) sin pérdida de datos, utilice el software Stellar Repair for Access. El software ayuda a reparar el archivo de base de datos y recuperar todo su contenido sin ninguna modificación. Descargue la herramienta de reparación de Access desde el siguiente enlace para comprobar su funcionalidad. |
Se trata de un error de ejecución de Microsoft Access que se notifica con el siguiente mensaje:
Figura 1 – Error 3022 de Microsoft Access
Posibles causas del error de acceso 3022 y sus soluciones
A continuación se indican las posibles razones del error, junto con las soluciones:
Causa 1 – El conjunto de especificaciones está dañado
Según Microsoft, el error 3022 de Access puede producirse debido a un conjunto de especificaciones dañado.
Solución: compactar el conjunto de especificaciones
Intente compactar el conjunto de especificaciones actual de su base de datos Access. Si la compactación se realiza correctamente, pero sigue apareciendo el error 3022 de Access al abrir un componente de informe, exporte dicho componente a un nuevo conjunto de especificaciones o vuelva a crearlo. Si el proceso de compactación falla, intente reparar el archivo de base de datos.
Causa 2 – Problema con la base de datos Access
Su base de datos Access puede comportarse de forma diferente debido a la corrupción de la tabla.
Solución – Compactar y reparar la base de datos
Realizar una operación de compactación y reparación en la base de datos puede ayudar a solucionar el problema. Siga estos pasos:
- Abra su base de datos Access.
- En la ventana que aparece, pulse la cruz (x) para cerrar la tabla de la base de datos (como se muestra en la imagen siguiente).
Figura 2 – Cerrar la tabla de la base de datos
- Haga clic en la pestaña Herramientas de base de datos y, en el menú Herramientas, haga clic en Compactar y reparar base de datos.
Figura 3 – Seleccione Compactar y Reparar Base de Datos
- En la ventana Base de datos a compactar desde que aparece, haga clic en Examinar para seleccionar la base de datos que desea compactar y reparar. Haga doble clic en la base de datos.
Puede encontrar la copia de su base de datos compactada y reparada en la misma ubicación que la base de datos original.
Causa 3 – El campo Autonumber está sembrado incorrectamente
Otro motivo común que puede provocar el error 3022 de MS Access es que el campo Autonumber de clave primaria no esté correctamente sembrado.
Solución – Restablecer manualmente el campo Autonumber
Existen dos métodos para restablecer manualmente el campo Autonumber.
Método 1: Utilizar una consulta de definición de datos
Puede restablecer el campo “Autonumber” borrándolo. Para ello, abra la tabla en la vista Diseño y vuelva a insertarla. A continuación se detallan los pasos a seguir:
- Abra una base de datos en Access, haga clic en la pestaña Crear y seleccione Diseño de consultas en el grupo Consultas.
Figura 4 – Diseño de la consulta de selección
- Haga clic en Cerrar cuando se abra el cuadro de diálogo Mostrar tabla.
Figura 5 – Cerrar el cuadro Mostrar tabla
- En la pestaña Diseño, seleccione la opción Vista SQL del grupo Resultados.
Figura 6 – Seleccionar vista SQL
- En la pantalla Consulta1, introduzca el siguiente código:
ALTER TABLE Table1 ALTER COLUMN AutoNumFieldName COUNTER(iMaxID,1);
Figura 7 – Consulta en Access
- Ahora ejecute la consulta anterior haciendo clic en la opción Ejecutar del grupo Resultados.
Método 2 – Ejecutar código VBA
Si ha estado introduciendo nuevos registros en una tabla de Access utilizando la aplicación Visual Basic (VBA), haga lo siguiente para restablecer el campo Autonumber.
- En Access, haga clic en la pestaña Crear y, a continuación, en Módulo en el grupo Macros y código.
Figura 8 – Seleccionar módulo
- Ahora escriba el siguiente código en el Editor de Visual Basic.
Sub ResetAuto()
Dim iMaxID As Long
Dim sqlFixID As String
iMaxID = DMax(“”, “”) + 1
sqlFixID = “ALTER TABLE ALTER COLUMN COUNTER(” & & “,1)”
DoCmd.RunSQL sqlFixID
End Sub
Figura 9 – Código para restablecer el campo AutoNumber
- Haga clic en Ejecutar para ejecutar el código anterior.
Figura 10 – Opción Ejecutar
Abra la tabla e intente insertar un nuevo registro. Si esto no soluciona el error de ejecución 3022, es posible que la tabla esté dañada. Utilice el software Stellar Repair for Access para reparar su base de datos y recuperar sus objetos, como tablas, registros eliminados, formularios, módulos, etc.
Conclusión
Puede encontrarse con el error 3022 de la base de datos Access al intentar introducir un nuevo registro en un campo Autonumber. Además, el error puede producirse al intentar abrir un formulario o un archivo de base de datos. Asegúrese de comprender la causa de este error antes de aplicar las soluciones que se describen en este blog. Si no puede acceder al archivo de base de datos, utilice el software Stellar Repair for Access para restaurar la base de datos y sus objetos.