Access no reconoce la columna Identidad en una tabla de SQL Server vinculada

Ú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 para Word.

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. Le escuchamos.

UserVoice de Office

Vea también

Correcciones o soluciones alternativas para problemas recientes en Access

Manténgase un paso por delante con Microsoft 365

¿Necesita más ayuda?

Ampliar sus conocimientos de Office
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×