Solución de problemas de errores que pueden producirse al actualizar datos en formularios y consultas de Access

Número de KB original: 328828

Nota:

Requiere conocimientos básicos de macros, codificación e interoperabilidad. Este artículo se aplica a una base de datos de Microsoft Access (.mdb y .accdb) y a un proyecto de Microsoft Access (.adp).

En este artículo se describen los errores que pueden producirse en Microsoft Access al actualizar datos en consultas y en formularios. En este artículo también se describen las causas de los errores y cómo solucionarlos.

Al intentar actualizar datos en una consulta o en un formulario, puede recibir uno de los siguientes mensajes de error:

La operación debe usar una consulta actualizable.

o:

Este objeto Recordset no se puede actualizar.

Solución de problemas de información sobre problemas que pueden producirse al actualizar datos en una consulta

  • Cuando la consulta se basa en tres o más tablas y hay una relación de varios a uno a varios, no se pueden actualizar los datos directamente en la consulta. Puede actualizar los datos en un formulario o en una página de acceso a datos. Puede hacerlo en función de la consulta cuando la RecordsetType propiedad del formulario se establece en Dynaset(Inconsistent Novedades).

  • Cuando la consulta es una consulta de tabla cruzada, no se pueden actualizar los datos de la consulta.

  • Cuando la consulta es una consulta de paso a través de Microsoft SQL, no se pueden actualizar los datos de la consulta.

  • Cuando la consulta calcula una suma, un promedio, un recuento u otro tipo de total en los valores de un campo, no se pueden actualizar los datos de la consulta. Además, no se puede actualizar una consulta que haga referencia a un campo de la fila Actualizar a desde una ficha cruzada, una consulta, una consulta de selección o una subconsulta que contenga totales o funciones agregadas. Para solucionar este problema, use la función Agregado de dominio en la fila Actualizar a de una consulta de actualización. Puede hacer referencia a campos de una consulta de tabla cruzada, una consulta de selección o una subconsulta que contenga totales o funciones de agregado.

  • Cuando la consulta es una consulta union, no se pueden actualizar los datos de la consulta.

  • Cuando la propiedad Valores únicos de la consulta se establece en , no se pueden actualizar los datos de la consulta. Para solucionar este problema, establezca la propiedad Valores únicos de la consulta en No.

  • Cuando la consulta incluye una tabla ODBC vinculada sin índice único o una tabla Paradox sin una clave principal, no se pueden actualizar los datos de la consulta. Para solucionar este problema, agregue una clave principal o un índice único a la tabla vinculada.

  • Cuando no tiene permisos de actualización de datos para la consulta o la tabla subyacente, no puede actualizar los datos. Para resolver este problema, asigne permisos para actualizar los datos.

  • Cuando la consulta incluye más de una tabla o una consulta, y las tablas o las consultas no están unidas por una línea de combinación en la vista Diseño , no se pueden actualizar los datos de la consulta. Para resolver este problema, debe unir las tablas correctamente para poder actualizarlas.

  • Cuando el campo que desea actualizar es un campo calculado, no se pueden actualizar los datos de la consulta.

  • Cuando el campo que intenta actualizar es de solo lectura, la base de datos está abierta como de solo lectura o la base de datos se encuentra en una unidad de solo lectura, no se pueden actualizar los datos de la consulta. Para evitar este problema, no abra la base de datos como de solo lectura. Si la base de datos se encuentra en una unidad de solo lectura, quite el atributo de solo lectura de la unidad o mueva la base de datos a una unidad que no sea de solo lectura.

  • Cuando el campo del registro que intenta actualizar se elimina o otro usuario lo bloquea, no se pueden actualizar los datos de la consulta. Un registro bloqueado se puede actualizar en cuanto se desbloquea el registro.

  • Cuando la consulta se basa en tablas con una relación uno a varios, los tipos de campos que es posible que no pueda modificar son los siguientes:

    • Campo de combinación desde el lado "uno".
    • El campo de combinación lateral "muchos" no aparece en la hoja de datos.
    • Campo de combinación desde el lado "muchos" después de actualizar los datos en el lado "uno".
    • Existe un campo en blanco de la tabla en el lado "uno" de una relación uno a varios con una combinación externa.
    • La clave única completa de la tabla ODBC no es la salida.

    Puede resolver cualquiera de estos problemas si realiza la acción correcta en la lista siguiente:

    • Habilite las actualizaciones en cascada entre las dos tablas.
    • Agregue el campo de combinación del lado "muchos" a la consulta para que pueda agregar nuevos registros.
    • Guarde el registro. Puede realizar cambios en el campo de combinación lateral "muchos".
    • Escriba valores en los campos de la tabla en el lado "muchos". Esto solo se puede hacer cuando el campo unido del lado "uno" contiene un valor para ese registro.
    • Seleccione todos los campos de clave principal de las tablas ODBC para permitir las inserciones en ellas.

Solución de problemas de información sobre problemas que pueden producirse al actualizar datos en un formulario

  • No se pueden actualizar los datos de un formulario si el formulario se basa en un procedimiento almacenado con más de una tabla.

  • No se pueden actualizar los datos de un formulario si el formulario se basa en un conjunto de registros de objetos de datos ActiveX (ADO). Los formularios de acceso permiten editar datos de un conjunto de registros de ADO si el conjunto de registros de ADO se crea mediante una combinación de MSDataShape y los proveedores OLEDB de SQL Server.