Pregunta

Recibo el siguiente error en un ADP de MS Access cuando intento agregar un registro en un formulario vinculado a una tabla de MS SQL Server 2000:

Error de tiempo de ejecución '31004':

El valor de un campo (autonumber) no se puede recuperar antes de ser guardado.

Guarde el registro que contiene el campo (Autonumber) antes de realizar esta acción.nota: recuperado en realidad está mal escrito en el error.

Alguien sabe que significa esto?

Hice una búsqueda en la web y solo pude encontrar la respuesta en un sitio determinado al que solo tienen acceso los expertos.

¿Fue útil?

Solución

En primer lugar, si va a consultar el intercambio de expertos, hágalo en Firefox, verá las respuestas desbloqueadas en la parte inferior de la página.

En segundo lugar, ¿tiene un subformulario en ese formulario que utiliza el campo de clave/número automático en el formulario maestro?¿Necesita que se guarden los datos que se encuentran en ese subformulario (es decir, que tengan su propia clave) antes de guardar el formulario principal?Podría llegar a un punto muerto en el que A y B requieran que el otro se salve primero.

Aparte de eso, de alguna manera debes acceder a ese campo de numeración automática cuando lo guardas.Lo mejor que puedo sugerir es leer el código línea por línea.

Otros consejos

¿Está intentando asignar el valor de un campo de Identidad a una variable o algo más antes de guardar el registro?

Por cualquier motivo, su aplicación intenta leer el valor del campo de identidad antes de guardar el registro, que es lo que genera ese campo de identidad.En otras palabras, no existe ningún valor para el campo Autonumeración hasta que se guarda la fila.

Creo que necesitaríamos ver más código o saber más sobre los pasos que conducen a este error para resolverlo con más detalle.

Debería haber agregado algunas líneas de código para mostrarnos cómo administra sus datos y qué está haciendo exactamente.Pero sospecho que hay un problema relacionado con una actualización del conjunto de registros.¿Puedes identificar cuándo se crea el valor de autonumeración?¿Está disponible en un control en un formulario?¿Puedes agregar un control para mostrar este valor y verificar cómo se genera al agregar un nuevo registro?¿Está actualizado correctamente el conjunto de registros subyacente?¿Puedes agregar algo como me.recordset.update en algunos eventos de formulario?Yo probaría el de OnCurrent...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top