Error al actualizar un campo al agregar un nuevo registro a un formulario


Principiante: Se requieren conocimientos de la interfaz de usuario en equipos de usuario único.

En este artículo se aplica a una base de datos de Microsoft Access (.mdb) o una base de datos de Microsoft Office Access 2007 (.accdb) y a un proyecto de Microsoft Access (.adp). Versión para un Microsoft Access 2000 de este artículo, consulte
207684 .
Para una versión de Microsoft Access 97 de este artículo, consulte
174005 .

Síntomas


Al escribir datos en un nuevo registro en un formulario que está basado en una consulta o una instrucción SQL, recibirá uno de los siguientes mensajes de error:
No se puede actualizar el campo.
- o -
Operación de varios pasos generó errores. Comprobar cada valor de estado.
- o -
Posición de inicio es anterior al principio o más allá del final del conjunto de filas. Se devolvió ninguna fila.
Al hacer clic en Aceptar, se puede seguir editando y, a continuación, puede guardar el registro.

Causa


Este comportamiento se produce cuando intenta actualizar un campo de sólo lectura de un registro mediante la propiedad ValorPredeterminado (DefaultValue) o Visual Basic para Aplicaciones.

Solución


No utilice la propiedad ValorPredeterminado (DefaultValue) o Visual Basic para Aplicaciones para editar controles de sólo lectura.

Más información


Cuando se crea un formulario basado en una consulta, cualquier control que está enlazado a un campo de consulta que contiene una expresión es de sólo lectura. Dado que la expresión de consulta no está enlazada a ningún campo específico de la tabla subyacente, no puede editar los valores de estos campos. Sin embargo, cuando se establece la propiedad ValorPredeterminado (DefaultValue) de ese control, Access intenta escribir un nuevo valor para ese control cada vez que agregue un nuevo registro.

Pasos para reproducir el comportamiento

  1. Inicie Microsoft Access 2002 o Microsoft Office Access 2003 y, a continuación, abra la base de datos de ejemplo Neptuno.mdb o el proyecto de ejemplo NorthwindCS.adp.
  2. Abra el formulario subformulario de pedidos en la vista Diseño.
  3. Haga clic en el cuadro de texto Precio total . En el menú Ver , haga clic en Propiedadesy, a continuación, establezca la propiedad ValorPredeterminado (DefaultValue) a 0 (cero).
  4. Cierre y guarde el formulario Orders Subform.
  5. Abra el formulario pedidos en la vista formulario y, a continuación, agregue un nuevo elemento en cualquier orden. Observe que recibe uno de los mensajes de error que se mencionan en la sección "Síntomas" de este artículo.