Applies ToAccess para Microsoft 365 Access 2021 Access 2019 Access 2016

Última actualización: 23 de enero de 2020

PROBLEMA

Cuando se crea un vínculo a una tabla en SQL Server que tiene una Columna Identidad, Access por lo general identificará dicha columna como una columna Autonumeración.

Muestra que la columna Identidad se identifica como un campo Autonumeración

En las compilaciones del Canal actual (16.0.12325.*) de la versión 1912 de Office 365 y Office 2016/2019, las Columnas de identidad no se identifican correctamente y, en su lugar, solo se reconocen como un Número.

La columna Identidad no se identificó correctamente como Autonumeración

Esto sucederá al crear nuevos vínculos mediante la interfaz de usuario o mediante código, pero solo para los nuevos vínculos.  Los vínculos existentes no se verán afectados, a menos de que el vínculo sea Actualizado.

Access utiliza la identificación adecuada de una Columna Identidad para una serie de propósitos, por lo que esto puede afectar a las aplicaciones de varias maneras.

Por ejemplo, una Columna Identidad se usa normalmente para identificar un registro agregado recientemente.  Cuando la Columna Identidad no se usa, es posible que Access no pueda encontrar correctamente la fila recién agregada, lo que provocará que los campos de esa fila se muestren como #Deleted.

Fila mostrando los campos que dicen Eliminado

Puede ver problemas similares al usar la propiedad RecordSet.LastModified para recuperar los valores del último registro agregado. El siguiente código:

Set rst = CurrentDb().OpenRecordset("tblWithIdentityColumn")

rst.AddNew
rst!CompanyName = "Contoso"
rst.Update

rst.Bookmark = rst.LastModified
MsgBox rst!CompanyName

Puede provocar el error 3167:

Error que indica que el registro se eliminó.

En ambos casos, el registro se agregará correctamente, pero Access no podrá encontrarlo correctamente.

Por lo general, Access también pasará por alto los intentos para actualizar la Columna Identidad directamente. Sin embargo, en estas compilaciones se permite el intento, pero se produce un error y se genera un mensaje de error:

[SQL Server] No se puede insertar un valor explícito para la columna identidad en la tabla 'tblOrders' cuando IDENTITY_INSERT está establecido en OFF. (#544)

ESTADO: CORREGIDO

La corrección para este problema ahora está disponible para la versión 1912.  Es posible que necesite forzar explícitamente una actualización para obtener la corrección.  El número de compilación con la corrección debería ser 12325.20344.

Si es participante del modo aplazado de Insider (versión 2001) o el modo anticipado de Insider (versión 2002). La corrección aún no se ha publicado en esos canales, por lo que es posible que quiera pasar al Canal actual.

Nota: Después de cambiar de versión, debe actualizar todos los vínculos afectados para asegurarse de que funcionan de forma correcta.

Icono de expertos (cerebro, engranajes)

Preguntar a los expertos

Lea nuestro blog, conéctese con expertos, comente las novedades, las actualizaciones y los procedimientos recomendados más recientes.

Microsoft Tech Community

Icono de comunidad

Obtener ayuda de la comunidad

Pregunte y encuentre soluciones facilitadas por agentes de soporte técnico, MVP, ingenieros y otros usuarios de Office.

Foro de Office sobre respuestas

Icono de solicitud de característica (bombilla, idea)

Sugerir una característica nueva

Estaremos encantados de escuchar sus sugerencias y comentarios. Comparta sus ideas. Su opinión nos importa.

Enviar comentarios

Vea también

Correcciones o soluciones alternativas para problemas recientes en Access

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.