Resumen:
Este blog está completamente dedicado a proporcionar la solución con respecto a uno de los errores más comunes de MS Access. es decir, Error de acceso 3022: “Los cambios que solicitó en la tabla no tuvieron éxito”. Para saber cómo solucionar este código de error específico, debe probar las siguientes soluciones mencionadas en esta publicación.
Escenario práctico:
Obtengo el error de acceso 3022: los cambios que solicitó en la tabla no tuvieron éxito porque crearían valores duplicados en el índice primario, la clave principal o la relación …
El código es un modo de edición que he creado que elimina todos los registros de la tabla donde se encuentran los criterios. Puede haber registros ilimitados basados en lo que está en tblMulti.
Hay un PK típico en cada uno y está configurado para autonumerar los duplicados permitidos.
No puedo encontrar dónde me equivoqué. ¿Puedes mirar esto y apuntarme en una dirección para arreglarlo?
Acerca de Access Run-time error ‘3022’:
Puede buscar este error de acceso ms cuando intente insertar un nuevo registro en la tabla de acceso que ya contenía un campo Autonumérico. Este problema específico ocurre en Microsoft Office Access 2007 o en Microsoft Office Access 2003.
En ese momento, la aplicación arroja el siguiente mensaje de error:
Los cambios que solicitó en la tabla no tuvieron éxito porque crearían valores duplicados en el índice, la clave principal o la relación. Cambie los datos en el campo o los campos que contienen datos duplicados, elimine el índice o redefina el índice para permitir entradas duplicadas y vuelva a intentarlo.
PANTALLA DEL ERROR:
Nota: verifique que la tabla no tenga ninguna relación o índice.
El “Error de tiempo de ejecución de Access” 3022 “: los cambios que solicitó en la tabla no tuvieron éxito generalmente ocurren cuando crearían valores duplicados en el índice, la clave principal o la relación.
Por lo tanto, debe cambiar los datos en el campo que contengan datos duplicados, eliminar el índice o redefinir el índice para permitir entradas duplicadas y volver a intentarlo. Este problema generalmente surge al momento de guardar cambios en un informe o generar un informe.
Este software asegura sin costura reparación y recuperación de la base de datos ACCDB y MDB. Es Restaura todos los objetos, incluidas tablas, informes, consultas, registros, formularios e índices, junto con módulos, macros, etc. Solucione los problemas de Microsoft Access ahora en 3 sencillos pasos:
- Descargue Stellar Access base de datos reparación herramienta calificado como Excelente en Cnet.
- Haga clic en la opción Examinar y Buscar para localizar la base de datos de Access corrupta.
- Haga clic en el botón Reparar para reparar y obtener una vista previa de los objetos de la base de datos.
Causa
- Bueno, la causa más común de ocurrencia de este error de acceso ‘3022’ es corrupción en el conjunto de especificaciones.
- La base de datos de acceso fue compactada de alguna manera.
- La tabla contiene un campo de autonumeración que no está correctamente resembrado.
- Debe tener instalado Microsoft Jet 4.0 Database Engine Service Pack 8 (SP8).
- Puede haber agregado los datos de la tabla vinculada 1 a la tabla vinculada 2 utilizando la opción de la base de datos actual en lugar de otra base de datos Eliminar el registro de la tabla vinculada 1 y volver a agregar el registro exacto de la tabla vinculada utilizando la opción de base de datos actual .
Solución para corregir el error “Los cambios que solicitó a la tabla no fueron correctos”
Necesita compactar el conjunto de especificaciones actual para compactar una base de datos FRx. Si estos procedimientos de compactación fallan, póngase en contacto con el Soporte de FRx para reparar el archivo. Pero si tiene éxito, pero el componente del informe aún muestra el mensaje de error, intente exportar el componente a un nuevo conjunto de especificaciones o recrear el componente.
Solución 1 ::
Solucione los cambios que solicitó en la tabla que no tuvieron éxito en Access 2003/2007
Para solucionar este problema en la base de datos de Access 2007, debe volver a crear las consultas de anexión en la base de datos dbFrontEnd.accdb. Para hacerlo, toque Agregar en el grupo Tipo de consulta en la ficha Diseño y luego haga clic en la opción Otra base de datos.
Acceso 2007
Para solucionar este problema en la base de datos de Access 2007, debe volver a crear las consultas de anexión en la base de datos dbFrontEnd.mdb. Para esto, solo haga un clic en la consulta Agregar presente en el menú Consulta en la vista de diseño de la consulta y luego haga clic en Otra base de datos.
Para solucionar este problema, lo primero que debe hacer es compactar la base de datos y luego restablecer el campo Autonumérico. Para compactar la base de datos, siga estos pasos:
- Inicie su aplicación de acceso.
- Después de eso, abra la base de datos de Access. Nota: Si esto abre el cuadro de diálogo Advertencia de seguridad, luego toque para abrir la opción.
En Access 2007
o Debe tocar el botón de Microsoft Office, vaya a la opción Administrar y luego haga clic en Compactar y reparar la base de datos.
En Access 2003
- Vaya al menú de herramientas, haga clic en Utilidades de la base de datos y haga clic en Compactar y reparar base de datos.
- Si ve el cuadro de diálogo Advertencia de seguridad, toque la opción Abrir.
Para reiniciar el campo Autonumérico, puede probar uno de los siguientes métodos:
además leer
10 errores de base de datos de acceso común que afectan el rendimiento
Cómo encontrar y eliminar registros duplicados de MS Access en Access 2013 y 2016
Método 1: utilice una consulta de definición de datos
Abrir la base de datos que tiene la tabla en Access 2007.
- Vaya a la pestaña Crear; haga clic en Diseño de consulta en el Otro
- En el cuadro de diálogo Mostrar tabla, toque para cerrar la opción.
- Ahora vaya a la pestaña Diseño, haga clic en Vista SQL en los Resultados
- Escriba lo siguiente en la ventana Query1:
ALTER TABLE TableNameALTER COLUMN AutoNumFieldNameCOUNTER (iMaxID, 1);
Nota:
TableName es marcador de posición para el nombre de la tabla. AutoNumFieldName es un marcador de posición para el nombre del campo Autonumérico. iMaxID es un marcador de posición para el valor máximo actual en el campo más 1.
- Desde la pestaña Diseño, toque la opción Ejecutar en Resultados
Access 2003
- Haga clic en consultas debajo de los objetos en la ventana de la base de datos.
- Luego, haga clic en Nuevo, haga clic en la Vista de diseño y luego haga clic en Aceptar.
- En el cuadro de diálogo Abrir tabla mostrada, haga clic en la opción cerrar.
- Desde el menú de consulta, haga clic en SQL Specific y luego haga clic en Data Definition.
- Desde la ventana Consulta de definición de datos, escriba el siguiente comando. ALTER TABLE TableNameALTER COLUMN AutoNumFieldNameCOUNTER (iMaxID, 1); Nota:
Aquí, TableName significa claramente el nombre de la tabla. Y AutoNumFieldName indica el nombre del campo Autonumérico. Mientras que el iMaxID representa el valor máximo actual en el campo más 1.
- En el menú Consulta, haga clic en Ejecutar.
Método 2: ejecute el código de Visual Basic para Aplicaciones
Acceso 2007
- Ahora vaya a la pestaña Crear, haga clic en la flecha hacia abajo debajo de Macro y luego haga clic en Módulo.
Access 2003
- Vaya a la ventana de la base de datos, haga clic en Módulos en Objetos, y luego haga clic en Nuevo.
- Luego, en el Editor de Visual Basic, pegue el siguiente código.
Sub ResetAuto()
Dim iMaxID As Long
Dim sqlFixID As StringiMaxID = DMax(“<AutonumberFieldName>”, “<TableName>”) + 1
sqlFixID = “ALTER TABLE <TableName> ALTER COLUMN <AutonumberFieldName> COUNTER(” & <iMaxID> & “,1)”
DoCmd.RunSQL sqlFixIDEnd Sub
Nota El marcador de posición <AutonumberFieldName> representa el nombre del campo Autonumérico. El marcador de posición <TableName> representa el nombre de la tabla.
- Desde el menú de ejecución, haga clic en Ejecutar Sub / UserForm.
Nota:
Cierre la tabla antes de usar cualquiera de los métodos. No necesita guardar la consulta o el módulo después de haber utilizado con éxito cualquiera de los dos métodos anteriores.
Solución 2 ::
Para resolver el error ‘3022’: los cambios que solicitó a la tabla no tuvieron éxito en la base de datos de acceso 2013/2016. El usuario necesita diseñar las tablas para eliminar la posibilidad de ingresar valores duplicados en el campo o campo de la clave principal que usa un índice único.
Si la clave primaria utilizada debe admitir valores duplicados, debe eliminar la clave principal actual y agregar un campo Autonumérico a su tabla que funcione como clave principal.
Para eliminar la clave principal
La eliminación de la clave principal no eliminará el campo o los campos de su tabla. Más bien, quita la designación de la clave primaria de ese campo.
También elimina el índice de la clave principal que se creó para la clave principal.
- Antes de eliminar la clave principal, asegúrese de que no contenga ninguna relación de tabla. Si aún intenta eliminar la clave principal que contiene las relaciones, Access le advierte que primero debe eliminar la relación.
- Ahora, en el panel de navegación, haga clic con el botón derecho en la tabla en la que desea eliminar la clave principal y toque la opción Vista de diseño.
- Pulse en el selector de fila actual para la clave primaria más reciente.
- Si la clave principal contiene un solo campo, haga clic en el selector de fila para ese campo.
- Pero si consta de varios campos, presione el selector de fila para cualquier campo en la clave principal.
- Ahora vaya a la pestaña Diseño en el grupo Herramientas y haga clic en la opción Clave principal.
Después de hacer este procedimiento completo verá que el indicador clave se elimina del campo o campos que especificó previamente como la clave principal.
Para agregar una clave principal de Autonum
Cuando cualquier usuario crea una nueva tabla en la vista de la hoja de datos, Access de forma predeterminada crea una clave principal para usted y le asigna el tipo de datos Autonumérico.
Si tiene una tabla existente a la que desea agregar un campo de clave principal, luego la abre en la vista de diseño:
- Vaya al Panel de navegación y haga clic con el botón derecho en la tabla a la que desea agregar la clave principal luego de golpear la Vista de diseño.
- Ahora ubique la primera fila vacía en la cuadrícula de diseño de tabla.
- En la columna Nombre de campo, asigne un nombre.
- En la columna Tipo de datos, presione la flecha desplegable y toque la opción Autonumérico.
- Dentro de Propiedades de campo, en Nuevos valores, haga clic en la opción Incrementar para usar valores numéricos incrementales para la clave principal, o haga clic en Aleatorio para usar números aleatorios.
Es posible que desee ver los índices de la tabla para evaluar su impacto en el rendimiento o para asegurarse de que determinados campos estén indexados.
Envolver:
Esperemos que todas las correcciones manuales mencionadas anteriormente lo ayuden a resolver este error en tiempo de ejecución 3022 de MS Access. Después de usar estas correcciones, comparta sus opiniones en la sección de comentarios.
Este software asegura sin costura reparación y recuperación de la base de datos ACCDB y MDB. Es Restaura todos los objetos, incluidas tablas, informes, consultas, registros, formularios e índices, junto con módulos, macros, etc. Solucione los problemas de Microsoft Access ahora en 3 sencillos pasos:
- Descargue Stellar Access base de datos reparación herramienta calificado como Excelente en Cnet.
- Haga clic en la opción Examinar y Buscar para localizar la base de datos de Access corrupta.
- Haga clic en el botón Reparar para reparar y obtener una vista previa de los objetos de la base de datos.